diff --git a/DEPS b/DEPS index 26c360d8..9e98ce5 100644 --- a/DEPS +++ b/DEPS
@@ -199,11 +199,11 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling Skia # and whatever else without interference from each other. - 'skia_revision': 'e1314a391ff26e5c030c852c2f2060636b2961a2', + 'skia_revision': '8ef3c539a26e0339e7c1fd6d000217e9094afbb7', # 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': 'cbbe339c1ca9754b3123fe2bdb83c0f58ee5d728', + 'v8_revision': '6069442cab5b767e9722d20cabda6d4864fb7210', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling swarming_client # and whatever else without interference from each other. @@ -211,7 +211,7 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling ANGLE # and whatever else without interference from each other. - 'angle_revision': 'a5ab7974a28b5c02ee68fa365377c1761a0f891a', + 'angle_revision': '0be050a44a4308ace01229b89bd4560457356007', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling SwiftShader # and whatever else without interference from each other. @@ -278,7 +278,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': '78e694f2c857a147351c25b670f3cad92b235926', + 'devtools_frontend_revision': 'a8ae70ef3fe1d1588f0a1ae59b3553d37d4ff28a', # 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. @@ -1506,7 +1506,7 @@ Var('chromium_git') + '/external/github.com/gpuweb/cts.git' + '@' + '66460536ee975a3e98931b7b40a661a63fd9cd57', 'src/third_party/webrtc': - Var('webrtc_git') + '/src.git' + '@' + 'd0acbd864518f94c4d8fd895c5a258336429b2df', + Var('webrtc_git') + '/src.git' + '@' + '41bfcf4a63611409220fcd458a03deaa2cd23619', 'src/third_party/libgifcodec': Var('skia_git') + '/libgifcodec' + '@'+ Var('libgifcodec_revision'), @@ -1578,7 +1578,7 @@ Var('chromium_git') + '/v8/v8.git' + '@' + Var('v8_revision'), 'src-internal': { - 'url': 'https://chrome-internal.googlesource.com/chrome/src-internal.git@8e707aa7eab58e9282759c787c2e30c5fa32471e', + 'url': 'https://chrome-internal.googlesource.com/chrome/src-internal.git@e559f121cf3f7752e172ee986dfea26eb3c09996', 'condition': 'checkout_src_internal', }, @@ -1597,7 +1597,7 @@ 'packages': [ { 'package': 'chromeos_internal/apps/media_app/app', - 'version': 'ZTzFb8MH_DsgeSVwPK-Z8T08CNQI0SJXgeMi4VULjpMC', + 'version': '-M0KYOsVs6mvdd9kcwZUPZ8VZIbrvwGOuX0g2NzHtDYC', }, ], 'condition': 'checkout_chromeos and checkout_src_internal',
diff --git a/ash/resources/vector_icons/BUILD.gn b/ash/resources/vector_icons/BUILD.gn index 4e70e22..2029b78 100644 --- a/ash/resources/vector_icons/BUILD.gn +++ b/ash/resources/vector_icons/BUILD.gn
@@ -316,7 +316,6 @@ "tray_action_new_lock_screen_note.icon", "two_files.icon", "unified_menu_accessibility.icon", - "unified_menu_arrow_back.icon", "unified_menu_battery_alert.icon", "unified_menu_battery_alert_outline.icon", "unified_menu_battery_bolt.icon",
diff --git a/ash/resources/vector_icons/unified_menu_arrow_back.icon b/ash/resources/vector_icons/unified_menu_arrow_back.icon deleted file mode 100644 index fd90d3b..0000000 --- a/ash/resources/vector_icons/unified_menu_arrow_back.icon +++ /dev/null
@@ -1,15 +0,0 @@ -// Copyright 2018 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. - -CANVAS_DIMENSIONS, 20, -MOVE_TO, 6.44f, 9, -R_LINE_TO, 5.02f, -4.77f, -LINE_TO, 10.18f, 3, -LINE_TO, 3, 10, -R_LINE_TO, 7.18f, 7, -R_LINE_TO, 1.27f, -1.23f, -LINE_TO, 6.44f, 11, -H_LINE_TO, 17, -V_LINE_TO, 9, -CLOSE
diff --git a/ash/strings/ash_strings_en-GB.xtb b/ash/strings/ash_strings_en-GB.xtb index 041604ef..75f9519 100644 --- a/ash/strings/ash_strings_en-GB.xtb +++ b/ash/strings/ash_strings_en-GB.xtb
@@ -577,6 +577,7 @@ <translation id="5992218262414051481">High contrast mode enabled. Press Ctrl+Search+H again to toggle it off.</translation> <translation id="6018164090099858612">Exiting mirror mode</translation> <translation id="602001110135236999">Scroll left</translation> +<translation id="602472752137106327">Show windows from all desks, radio button selected</translation> <translation id="6025324406281560198"><ph name="SECURITY_STATUS" />, <ph name="CONNECTION_STATUS" />, signal strength <ph name="SIGNAL_STRENGTH" />, managed by your administrator</translation> <translation id="6030495522958826102">Menu moved to the bottom-left corner of the screen.</translation> <translation id="6032620807120418574">Click anywhere to record full screen</translation> @@ -675,6 +676,7 @@ <translation id="685782768769951078">{NUM_DIGITS,plural, =1{One digit remaining}other{# digits remaining}}</translation> <translation id="6878400149835617132">Shortcut turned off</translation> <translation id="6886172995547742638">Your <ph name="DEVICE_TYPE" /> may experience lower performance. Use a certified <ph name="PREFERRED_MINIMUM_POWER" />W or higher USB-C power adaptor.</translation> +<translation id="688631446150864480">Press the Down arrow key to switch windows</translation> <translation id="6896758677409633944">Copy</translation> <translation id="6910714959251846841">This update requires powerwashing of your device. Learn more about the latest <ph name="SYSTEM_APP_NAME" /> update.</translation> <translation id="6919251195245069855">Couldn’t recognise your smart card. Try again.</translation> @@ -840,6 +842,7 @@ <translation id="8297006494302853456">Weak</translation> <translation id="8308637677604853869">Previous menu</translation> <translation id="8341451174107936385"><ph name="UNLOCK_MORE_FEATURES" /> <ph name="GET_STARTED" /></translation> +<translation id="8345019317483336363"><ph name="WINDOW_TITLE" /> window selected</translation> <translation id="8351131234907093545">Create note</translation> <translation id="8371779926711439835">Forward by letter</translation> <translation id="8375916635258623388">This <ph name="DEVICE_NAME" /> and your phone will connect automatically</translation> @@ -863,6 +866,7 @@ <translation id="8477270416194247200">Press Alt+Search or Shift to cancel.</translation> <translation id="8492573885090281069"><ph name="DISPLAY_NAME" /> doesn't support <ph name="SPECIFIED_RESOLUTION" />. The resolution was changed to <ph name="FALLBACK_RESOLUTION" />. Click confirm to keep changes. The previous settings will be restored in <ph name="TIMEOUT_SECONDS" />.</translation> <translation id="8513108775083588393">Auto-rotate</translation> +<translation id="851458219935658693">Show windows from the current desk, radio button selected</translation> <translation id="8517041960877371778">Your <ph name="DEVICE_TYPE" /> may not charge while it is turned on.</translation> <translation id="8553395910833293175">Already assigned to all desks.</translation> <translation id="8563862697512465947">Notification Settings</translation>
diff --git a/ash/system/tray/detailed_view_delegate.cc b/ash/system/tray/detailed_view_delegate.cc index ba09d53..41af66aa 100644 --- a/ash/system/tray/detailed_view_delegate.cc +++ b/ash/system/tray/detailed_view_delegate.cc
@@ -10,12 +10,12 @@ #include "ash/system/tray/hover_highlight_view.h" #include "ash/system/tray/tray_constants.h" #include "ash/system/tray/tray_popup_utils.h" -#include "ash/system/unified/custom_shape_button.h" #include "ash/system/unified/top_shortcut_button.h" #include "ash/system/unified/unified_system_tray_controller.h" #include "components/vector_icons/vector_icons.h" #include "ui/base/l10n/l10n_util.h" #include "ui/gfx/paint_vector_icon.h" +#include "ui/gfx/scoped_canvas.h" #include "ui/gfx/vector_icon_types.h" #include "ui/views/border.h" #include "ui/views/controls/label.h" @@ -33,16 +33,19 @@ switch (container) { case TriView::Container::START: - FALLTHROUGH; - case TriView::Container::END: + case TriView::Container::END: { + const int left_padding = container == TriView::Container::START + ? kUnifiedBackButtonLeftPadding + : 0; layout = std::make_unique<views::BoxLayout>( - views::BoxLayout::Orientation::kHorizontal, gfx::Insets(), - kUnifiedTopShortcutSpacing); + views::BoxLayout::Orientation::kHorizontal, + gfx::Insets(0, left_padding, 0, 0), kUnifiedTopShortcutSpacing); layout->set_main_axis_alignment( views::BoxLayout::MainAxisAlignment::kCenter); layout->set_cross_axis_alignment( views::BoxLayout::CrossAxisAlignment::kCenter); break; + } case TriView::Container::CENTER: tri_view->SetFlexForContainer(TriView::Container::CENTER, 1.f); @@ -60,49 +63,24 @@ gfx::Size(0, kUnifiedDetailedViewTitleRowHeight)); } -gfx::ImageSkia CreateBackButtonIcon() { - return gfx::CreateVectorIcon(kUnifiedMenuArrowBackIcon, - AshColorProvider::Get()->GetContentLayerColor( - ContentLayerType::kIconColorPrimary)); -} - -class BackButton : public CustomShapeButton { +class BackButton : public TopShortcutButton { public: BackButton(views::Button::PressedCallback callback) - : CustomShapeButton(std::move(callback)) { - gfx::ImageSkia image = CreateBackButtonIcon(); - SetImage(views::Button::STATE_NORMAL, image); - SetImageHorizontalAlignment(ALIGN_RIGHT); - SetImageVerticalAlignment(ALIGN_MIDDLE); - SetTooltipText( - l10n_util::GetStringUTF16(IDS_ASH_STATUS_TRAY_PREVIOUS_MENU)); - SetBorder(views::CreateEmptyBorder( - gfx::Insets((kTrayItemSize - image.width()) / 2))); - } - + : TopShortcutButton(std::move(callback), + kUnifiedMenuExpandIcon, + IDS_ASH_STATUS_TRAY_PREVIOUS_MENU) {} + BackButton(const BackButton&) = delete; + BackButton& operator=(const BackButton&) = delete; ~BackButton() override = default; - // CustomShapeButton: - gfx::Size CalculatePreferredSize() const override { - return gfx::Size(kTrayItemSize * 3 / 2, kTrayItemSize); + // Use the same icon as CollapseButton with rotation. + void PaintButtonContents(gfx::Canvas* canvas) override { + gfx::ScopedCanvas scoped(canvas); + canvas->Translate(gfx::Vector2d(size().width() / 2, size().height() / 2)); + canvas->sk_canvas()->rotate(-90); + gfx::ImageSkia image = GetImageToPaint(); + canvas->DrawImageInt(image, -image.width() / 2, -image.height() / 2); } - - void OnThemeChanged() override { - CustomShapeButton::OnThemeChanged(); - SetImage(views::Button::STATE_NORMAL, CreateBackButtonIcon()); - } - - SkPath CreateCustomShapePath(const gfx::Rect& bounds) const override { - SkPath path; - SkScalar bottom_radius = SkIntToScalar(kTrayItemSize / 2); - SkScalar radii[8] = { - 0, 0, bottom_radius, bottom_radius, bottom_radius, bottom_radius, 0, 0}; - path.addRoundRect(gfx::RectToSkRect(bounds), radii); - return path; - } - - private: - DISALLOW_COPY_AND_ASSIGN(BackButton); }; } // namespace
diff --git a/ash/system/tray/tray_constants.h b/ash/system/tray/tray_constants.h index 40c8f93b..feeecd7 100644 --- a/ash/system/tray/tray_constants.h +++ b/ash/system/tray/tray_constants.h
@@ -136,6 +136,7 @@ constexpr int kUnifiedNotificationHiddenLineHeight = 20; constexpr int kUnifiedTopShortcutContainerTopPadding = 12; constexpr int kUnifiedNotificationMinimumHeight = 40; +constexpr int kUnifiedBackButtonLeftPadding = 16; constexpr gfx::Insets kUnifiedTopShortcutPadding(0, 16); constexpr gfx::Insets kUnifiedNotificationHiddenPadding(6, 16); constexpr gfx::Insets kUnifiedCircularButtonFocusPadding(4);
diff --git a/ash/wm/desks/zero_state_button.h b/ash/wm/desks/zero_state_button.h index 6a67487..73b7c12 100644 --- a/ash/wm/desks/zero_state_button.h +++ b/ash/wm/desks/zero_state_button.h
@@ -85,7 +85,7 @@ public: ZeroStateDefaultDeskButton(DesksBarView* bar_view); ZeroStateDefaultDeskButton(const ZeroStateDefaultDeskButton&) = delete; - ZeroStateDefaultDeskButton operator=(const ZeroStateDefaultDeskButton&) = + ZeroStateDefaultDeskButton& operator=(const ZeroStateDefaultDeskButton&) = delete; ~ZeroStateDefaultDeskButton() override = default; @@ -110,7 +110,7 @@ public: ZeroStateNewDeskButton(); ZeroStateNewDeskButton(const ZeroStateNewDeskButton&) = delete; - ZeroStateNewDeskButton operator=(const ZeroStateNewDeskButton&) = delete; + ZeroStateNewDeskButton& operator=(const ZeroStateNewDeskButton&) = delete; ~ZeroStateNewDeskButton() override = default; // DeskButtonBase:
diff --git a/build/fuchsia/linux.sdk.sha1 b/build/fuchsia/linux.sdk.sha1 index d91bc8c..0f602e6 100644 --- a/build/fuchsia/linux.sdk.sha1 +++ b/build/fuchsia/linux.sdk.sha1
@@ -1 +1 @@ -0.20210129.3.1 +0.20210131.2.1
diff --git a/build/fuchsia/mac.sdk.sha1 b/build/fuchsia/mac.sdk.sha1 index d91bc8c..0f602e6 100644 --- a/build/fuchsia/mac.sdk.sha1 +++ b/build/fuchsia/mac.sdk.sha1
@@ -1 +1 @@ -0.20210129.3.1 +0.20210131.2.1
diff --git a/cc/paint/paint_op_buffer.cc b/cc/paint/paint_op_buffer.cc index 9faaf7f..fac59ff9 100644 --- a/cc/paint/paint_op_buffer.cc +++ b/cc/paint/paint_op_buffer.cc
@@ -1478,11 +1478,8 @@ canvas->scale(1.f / scale_adjustment.width(), 1.f / scale_adjustment.height()); } - canvas->drawImage( - decoded_image.image().get(), op->left, op->top, - SkSamplingOptions(decoded_image.filter_quality(), - SkSamplingOptions::kMedium_asMipmapLinear), - &paint); + canvas->drawImage(decoded_image.image().get(), op->left, op->top, + SkSamplingOptions(decoded_image.filter_quality()), &paint); } void DrawImageRectOp::RasterWithFlags(const DrawImageRectOp* op,
diff --git a/cc/paint/paint_op_buffer_unittest.cc b/cc/paint/paint_op_buffer_unittest.cc index 91296bb..faac2f8 100644 --- a/cc/paint/paint_op_buffer_unittest.cc +++ b/cc/paint/paint_op_buffer_unittest.cc
@@ -1470,9 +1470,7 @@ for (size_t i = 0; i < len; ++i) { buffer->push<DrawImageOp>( test_images[i], test_floats[i], test_floats[i + 1], - SkSamplingOptions(test_flags[i].getFilterQuality(), - SkSamplingOptions::kMedium_asMipmapLinear), - &test_flags[i]); + SkSamplingOptions(test_flags[i].getFilterQuality()), &test_flags[i]); } // Test optional flags @@ -1490,9 +1488,8 @@ : SkCanvas::kFast_SrcRectConstraint; buffer->push<DrawImageRectOp>( test_images[i], test_rects[i], test_rects[i + 1], - SkSamplingOptions(test_flags[i].getFilterQuality(), - SkSamplingOptions::kMedium_asMipmapLinear), - &test_flags[i], constraint); + SkSamplingOptions(test_flags[i].getFilterQuality()), &test_flags[i], + constraint); } // Test optional flags.
diff --git a/cc/test/fake_content_layer_client.cc b/cc/test/fake_content_layer_client.cc index 748cd991..b93ec64 100644 --- a/cc/test/fake_content_layer_client.cc +++ b/cc/test/fake_content_layer_client.cc
@@ -71,9 +71,7 @@ display_list->push<DrawImageOp>( it->image, static_cast<float>(it->point.x()), static_cast<float>(it->point.y()), - SkSamplingOptions(it->flags.getFilterQuality(), - SkSamplingOptions::kMedium_asMipmapLinear), - &it->flags); + SkSamplingOptions(it->flags.getFilterQuality()), &it->flags); display_list->push<RestoreOp>(); display_list->EndPaintOfUnpaired(PaintableRegion());
diff --git a/cc/tiles/gpu_image_decode_cache.cc b/cc/tiles/gpu_image_decode_cache.cc index 0157835..77c2e457 100644 --- a/cc/tiles/gpu_image_decode_cache.cc +++ b/cc/tiles/gpu_image_decode_cache.cc
@@ -304,8 +304,7 @@ const SkFilterQuality filter_quality = CalculateDesiredFilterQuality(draw_image); - const SkSamplingOptions sampling(filter_quality, - SkSamplingOptions::kMedium_asMipmapLinear); + const SkSamplingOptions sampling(filter_quality); bool decode_to_f16_using_n32_intermediate = decode_info.colorType() == kRGBA_F16_SkColorType &&
diff --git a/cc/tiles/image_decode_cache_utils.cc b/cc/tiles/image_decode_cache_utils.cc index 8dbd6b3..4ac8523 100644 --- a/cc/tiles/image_decode_cache_utils.cc +++ b/cc/tiles/image_decode_cache_utils.cc
@@ -41,10 +41,8 @@ n32_pixmap.info().makeWH(scaled_pixmap->width(), scaled_pixmap->height()); if (!n32_resized_bitmap.tryAllocPixels(n32_resize_info)) return false; - if (!n32_pixmap.scalePixels( - n32_resized_bitmap.pixmap(), - SkSamplingOptions(filter_quality, - SkSamplingOptions::kMedium_asMipmapLinear))) + if (!n32_pixmap.scalePixels(n32_resized_bitmap.pixmap(), + SkSamplingOptions(filter_quality))) return false; // Convert back to f16 and return return n32_resized_bitmap.readPixels(*scaled_pixmap, 0, 0);
diff --git a/cc/tiles/software_image_decode_cache_utils.cc b/cc/tiles/software_image_decode_cache_utils.cc index 9359817..aabf012 100644 --- a/cc/tiles/software_image_decode_cache_utils.cc +++ b/cc/tiles/software_image_decode_cache_utils.cc
@@ -154,10 +154,8 @@ result = ImageDecodeCacheUtils::ScaleToHalfFloatPixmapUsingN32Intermediate( decoded_pixmap, &target_pixmap, filter_quality); } else { - result = decoded_pixmap.scalePixels( - target_pixmap, - SkSamplingOptions(filter_quality, - SkSamplingOptions::kMedium_asMipmapLinear)); + result = decoded_pixmap.scalePixels(target_pixmap, + SkSamplingOptions(filter_quality)); } DCHECK(result) << key.ToString();
diff --git a/cc/trees/draw_properties_unittest.cc b/cc/trees/draw_properties_unittest.cc index 085712b..cac65443 100644 --- a/cc/trees/draw_properties_unittest.cc +++ b/cc/trees/draw_properties_unittest.cc
@@ -6098,6 +6098,52 @@ EXPECT_TRUE(AnimationAffectedByInvalidScale(child2)); } +TEST_F(DrawPropertiesTest, AnimationScaleFromSmallToOne) { + LayerImpl* root = root_layer(); + root->SetBounds(gfx::Size(1, 1)); + auto* parent = AddLayer<LayerImpl>(); + parent->SetBounds(gfx::Size(1, 1)); + auto* child = AddLayer<LayerImpl>(); + child->SetBounds(gfx::Size(1, 1)); + auto* grandchild = AddLayer<LayerImpl>(); + grandchild->SetBounds(gfx::Size(1, 1)); + SetElementIdsForTesting(); + + gfx::Transform parent_scale; + parent_scale.Scale(1, 2); + gfx::Transform small_scale; + small_scale.Scale(0.1, 0.2); + + CopyProperties(root, parent); + CreateTransformNode(parent).local = parent_scale; + CopyProperties(parent, child); + CreateTransformNode(child).local = small_scale; + CopyProperties(child, grandchild); + CreateTransformNode(grandchild).local = small_scale; + + TransformOperations small_scale_operations; + small_scale_operations.AppendMatrix(small_scale); + TransformOperations scale_one_operations; + + // Both child and grandchild animate scale from 0.1x0.2 to 1. + AddAnimatedTransformToElementWithAnimation( + child->element_id(), timeline_impl(), 1.0, small_scale_operations, + scale_one_operations); + AddAnimatedTransformToElementWithAnimation( + grandchild->element_id(), timeline_impl(), 1.0, small_scale_operations, + scale_one_operations); + UpdateActiveTreeDrawProperties(); + + EXPECT_FLOAT_EQ(2.f, MaximumAnimationToScreenScale(grandchild)); + EXPECT_FLOAT_EQ(2.f, MaximumAnimationToScreenScale(child)); + EXPECT_FLOAT_EQ(2.f, MaximumAnimationToScreenScale(parent)); + EXPECT_FLOAT_EQ(1.f, MaximumAnimationToScreenScale(root)); + EXPECT_FALSE(AnimationAffectedByInvalidScale(grandchild)); + EXPECT_FALSE(AnimationAffectedByInvalidScale(child)); + EXPECT_FALSE(AnimationAffectedByInvalidScale(parent)); + EXPECT_FALSE(AnimationAffectedByInvalidScale(root)); +} + TEST_F(DrawPropertiesTest, VisibleContentRectInChildRenderSurface) { LayerImpl* root = root_layer(); LayerImpl* clip = AddLayer<LayerImpl>();
diff --git a/cc/trees/property_tree.cc b/cc/trees/property_tree.cc index c66218b6..d8d0cd532 100644 --- a/cc/trees/property_tree.cc +++ b/cc/trees/property_tree.cc
@@ -2091,21 +2091,19 @@ if (animation_scale.affected_by_invalid_scale || failed_for_multiple_scale_animations) { // Will use the parent's maximum_to_screen_scale. - } else if (!animation_scale.affected_by_animation_scale) { - // No affecting scale animation. Calculate the current to_screen scale. + } else if (!node->to_screen_is_potentially_animated) { + // No transform animations. Calculate the current to_screen scale. gfx::Vector2dF to_screen_scales = MathUtil::ComputeTransform2dScaleComponents( transform_tree.ToScreen(transform_id), kInvalidScale); animation_scale.maximum_to_screen_scale = std::max(to_screen_scales.x(), to_screen_scales.y()); return animation_scale; - } else if (ancestor_affected_by_animation_scale) { - DCHECK(!node_affected_by_animation_scale); + } else if (!node->has_potential_animation) { gfx::Vector2dF local_scales = MathUtil::ComputeTransform2dScaleComponents(node->local, 1.0f); local_maximum_scale = std::max(local_scales.x(), local_scales.y()); } else { - DCHECK(node_affected_by_animation_scale); DCHECK_NE(node->maximum_animation_scale, kInvalidScale); local_maximum_scale = node->maximum_animation_scale; }
diff --git a/chrome/VERSION b/chrome/VERSION index 88cf38a..edda934 100644 --- a/chrome/VERSION +++ b/chrome/VERSION
@@ -1,4 +1,4 @@ MAJOR=90 MINOR=0 -BUILD=4404 +BUILD=4406 PATCH=0
diff --git a/chrome/app/resources/generated_resources_en-GB.xtb b/chrome/app/resources/generated_resources_en-GB.xtb index ef1dd4d..6eeaa9a 100644 --- a/chrome/app/resources/generated_resources_en-GB.xtb +++ b/chrome/app/resources/generated_resources_en-GB.xtb
@@ -424,6 +424,7 @@ <translation id="1465827627707997754">Pizza slice</translation> <translation id="1468571364034902819">Can't use this profile</translation> <translation id="1470084204649225129">{NUM_TABS,plural, =1{Add tab to new group}other{Add tabs to new group}}</translation> +<translation id="1470350905258700113">Use this device</translation> <translation id="1470946456740188591">To turn caret browsing on or off, use the shortcut Ctrl+Search+7</translation> <translation id="1472675084647422956">Show more</translation> <translation id="1474785664565228650">The change in microphone setting requires Parallels Desktop to relaunch. Relaunch Parallels Desktop to proceed.</translation> @@ -1399,6 +1400,7 @@ <translation id="2541002089857695151">Optimise full-screen casting?</translation> <translation id="2541706104884128042">New bedtime set</translation> <translation id="2542050502251273923">Sets the debugging level of the network connection manager and other services using ff_debug.</translation> +<translation id="2544292303401268586">Your administrator requested that you restart your device to update apps. This may take several minutes to complete.</translation> <translation id="2544853746127077729">Authentication certificate rejected by network</translation> <translation id="2546283357679194313">Cookies and site data</translation> <translation id="2548347166720081527">Allowed <ph name="PERMISSION" /></translation> @@ -2781,6 +2783,7 @@ <translation id="409579654357498729">Add to Cloud Print</translation> <translation id="4096508467498758490">Disable developer mode extensions</translation> <translation id="4097406557126260163">Apps and extensions</translation> +<translation id="409742781329613461">Tips for Chrome</translation> <translation id="4097560579602855702">Search Google</translation> <translation id="4098667039111970300">Stylus tools in toolbar</translation> <translation id="4099060993766194518">Restore default search engine?</translation> @@ -4095,6 +4098,7 @@ <translation id="5678550637669481956">Read and write access to <ph name="VOLUME_NAME" /> has been granted.</translation> <translation id="5678955352098267522">Read your data on <ph name="WEBSITE_1" /></translation> <translation id="5680050361008726776">Remove '<ph name="ESIM_PROFILE_NAME" />'?</translation> +<translation id="5683806393796685434">Please enter your activation code</translation> <translation id="5684181005476681636">Wi-Fi details</translation> <translation id="5684661240348539843">Asset Identifier</translation> <translation id="5687326903064479980">Time Zone</translation> @@ -4347,6 +4351,7 @@ <translation id="5978277834170881274">Use basic spell check</translation> <translation id="5979084224081478209">Check passwords</translation> <translation id="5979156418378918004">{NUM_EXTENSIONS,plural, =1{You turned 1 potentially harmful extension back on}other{You turned {NUM_EXTENSIONS} potentially harmful extensions back on}}</translation> +<translation id="5979353814339191480">This option applies to Chromebooks with a data plan or mobile network dongle, or when tethering to a portable hotspot</translation> <translation id="5979421442488174909">&Translate to <ph name="LANGUAGE" /></translation> <translation id="5979469435153841984">To bookmark pages, click the star in the address bar</translation> <translation id="5984222099446776634">Recently Visited</translation> @@ -4827,6 +4832,7 @@ <translation id="653659894138286600">Scan documents and images</translation> <translation id="6537613839935722475">The name can use letters, numbers and hyphens (-)</translation> <translation id="6537880577641744343">Commander</translation> +<translation id="6538098297809675636">Error detecting code</translation> <translation id="654039047105555694"><ph name="BEGIN_BOLD" />Note:<ph name="END_BOLD" /> Only enable if you know what you are doing or if you have been asked to do so, as collection of data may reduce performance.</translation> <translation id="6541638731489116978">This site has been blocked from accessing your motion sensors.</translation> <translation id="6545665334409411530">Repeat rate</translation> @@ -6025,6 +6031,7 @@ <translation id="7904526211178107182">Make Linux ports available to other devices on your network.</translation> <translation id="7907837847548254634">Show a quick highlight on the focused object</translation> <translation id="7908378463497120834">Sorry, at least one partition on your external storage device could not be mounted.</translation> +<translation id="7909324225945368569">Rename your profile</translation> <translation id="7909969815743704077">Downloaded in Incognito</translation> <translation id="7910768399700579500">&New folder</translation> <translation id="7911118814695487383">Linux</translation> @@ -6644,6 +6651,7 @@ <translation id="8642900771896232685">2 seconds</translation> <translation id="8642947597466641025">Make Text Larger</translation> <translation id="8643443571868262066"><ph name="FILE_NAME" /> may be dangerous. Send to Google Advanced Protection for scanning?</translation> +<translation id="8644047503904673749">{COUNT,plural, =0{No cookies}=1{1 cookie is blocked}other{# cookies are blocked}}</translation> <translation id="8644655801811752511">Can’t reset this security key. Try resetting the key immediately after inserting it.</translation> <translation id="8645354835496065562">Continue allowing sensor access</translation> <translation id="8645920082661222035">Predicts and warns you about dangerous events before they happen</translation>
diff --git a/chrome/app/resources/generated_resources_ru.xtb b/chrome/app/resources/generated_resources_ru.xtb index a24d510..daed9ff 100644 --- a/chrome/app/resources/generated_resources_ru.xtb +++ b/chrome/app/resources/generated_resources_ru.xtb
@@ -1101,7 +1101,7 @@ <translation id="2218019600945559112">Мышь и сенсорная панель</translation> <translation id="2218320521449013367">При удалении вредоносного ПО произошла ошибка.</translation> <translation id="2218515861914035131">Вставить как обычный текст</translation> -<translation id="2220409419896228519">Добавляйте закладки для любимых приложений Google</translation> +<translation id="2220409419896228519">Добавьте закладки для любимых приложений Google</translation> <translation id="2220529011494928058">Сообщить о проблеме</translation> <translation id="2220572644011485463">PIN-код или пароль</translation> <translation id="2221261048068091179"><ph name="FIRST_SWITCH" /> и <ph name="SECOND_SWITCH" /></translation> @@ -5262,7 +5262,7 @@ <translation id="7043108582968290193">Готово! Несовместимых приложений не обнаружено.</translation> <translation id="7044124535091449260">Подробнее о доступе для сайта…</translation> <translation id="7044606776288350625">Синхронизация данных</translation> -<translation id="7047059339731138197">Выберите фон.</translation> +<translation id="7047059339731138197">Выберите фон</translation> <translation id="7048024426273850086">Сеть <ph name="NETWORK_INDEX" /> из <ph name="NETWORK_COUNT" />, телефон – "<ph name="PHONE_NAME" />", оператор – <ph name="PROVIDER_NAME" />, уровень сигнала – <ph name="SIGNAL_STRENGTH" /> %, заряд батареи – <ph name="BATTERY_STATUS" /> %, подключиться</translation> <translation id="7049293980323620022">Сохранить файл?</translation> <translation id="7051943809462976355">Поиск мыши…</translation>
diff --git a/chrome/browser/ash/reset/metrics.h b/chrome/browser/ash/reset/metrics.h index 772d5255..4c73175 100644 --- a/chrome/browser/ash/reset/metrics.h +++ b/chrome/browser/ash/reset/metrics.h
@@ -5,7 +5,7 @@ #ifndef CHROME_BROWSER_ASH_RESET_METRICS_H_ #define CHROME_BROWSER_ASH_RESET_METRICS_H_ -namespace chromeos { +namespace ash { namespace reset { enum class DialogViewType { @@ -33,6 +33,6 @@ }; } // namespace reset -} // namespace chromeos +} // namespace ash #endif // CHROME_BROWSER_ASH_RESET_METRICS_H_
diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc index ed32ac6c..788dab4 100644 --- a/chrome/browser/chrome_content_browser_client.cc +++ b/chrome/browser/chrome_content_browser_client.cc
@@ -195,6 +195,7 @@ #include "chrome/grit/browser_resources.h" #include "chrome/grit/generated_resources.h" #include "chrome/installer/util/google_update_settings.h" +#include "chromeos/components/camera_app_ui/url_constants.h" #include "components/autofill/core/common/autofill_switches.h" #include "components/blocked_content/popup_blocker.h" #include "components/browsing_data/content/browsing_data_helper.h" @@ -4660,6 +4661,11 @@ return true; } + if (url.DomainIs(chromeos::kChromeUICameraAppHost) && + IsSystemFeatureDisabled(policy::SystemFeature::kCamera)) { + return true; + } + return false; } #endif
diff --git a/chrome/browser/chrome_content_browser_client_unittest.cc b/chrome/browser/chrome_content_browser_client_unittest.cc index 6beabb0f..1865719 100644 --- a/chrome/browser/chrome_content_browser_client_unittest.cc +++ b/chrome/browser/chrome_content_browser_client_unittest.cc
@@ -25,6 +25,7 @@ #include "chrome/common/webui_url_constants.h" #include "chrome/test/base/chrome_render_view_host_test_harness.h" #include "chrome/test/base/testing_profile.h" +#include "chromeos/components/camera_app_ui/url_constants.h" #include "components/browsing_data/content/browsing_data_helper.h" #include "components/captive_portal/core/buildflags.h" #include "components/content_settings/core/browser/host_content_settings_map.h" @@ -528,6 +529,24 @@ test_content_browser_client.HandleWebUI(&dest_url, &profile_); EXPECT_EQ(GURL(chrome::kChromeUIAppDisabledURL), dest_url); } + +TEST_F(ChromeContentSettingsRedirectTest, RedirectCameraAppURL) { + TestChromeContentBrowserClient test_content_browser_client; + const GURL camera_app_url(chromeos::kChromeUICameraAppMainURL); + GURL dest_url = camera_app_url; + test_content_browser_client.HandleWebUI(&dest_url, &profile_); + EXPECT_EQ(camera_app_url, dest_url); + + base::Value list(base::Value::Type::LIST); + list.Append(policy::SystemFeature::kCamera); + testing_local_state_.Get()->Set( + policy::policy_prefs::kSystemFeaturesDisableList, std::move(list)); + + dest_url = camera_app_url; + test_content_browser_client.HandleWebUI(&dest_url, &profile_); + EXPECT_EQ(GURL(chrome::kChromeUIAppDisabledURL), dest_url); +} + namespace { constexpr char kEmail[] = "test@test.com"; std::unique_ptr<KeyedService> CreateTestPolicyCertService(
diff --git a/chrome/browser/chromeos/BUILD.gn b/chrome/browser/chromeos/BUILD.gn index 58c01e0..f682c161 100644 --- a/chrome/browser/chromeos/BUILD.gn +++ b/chrome/browser/chromeos/BUILD.gn
@@ -3168,6 +3168,7 @@ "//chromeos/dbus/chromebox_for_meetings", "//chromeos/services/chromebox_for_meetings/public/cpp", "//chromeos/services/chromebox_for_meetings/public/mojom", + "//components/reporting/proto:record_constants", ] } }
diff --git a/chrome/browser/chromeos/chromebox_for_meetings/logger/reporting_pipeline.cc b/chrome/browser/chromeos/chromebox_for_meetings/logger/reporting_pipeline.cc index b20e820..8a7ed260 100644 --- a/chrome/browser/chromeos/chromebox_for_meetings/logger/reporting_pipeline.cc +++ b/chrome/browser/chromeos/chromebox_for_meetings/logger/reporting_pipeline.cc
@@ -10,7 +10,7 @@ #include "base/bind_post_task.h" #include "base/callback_helpers.h" #include "chrome/browser/policy/messaging_layer/public/report_queue_configuration.h" -#include "record_constants.pb.h" +#include "components/reporting/proto/record_constants.pb.h" namespace chromeos { namespace cfm {
diff --git a/chrome/browser/chromeos/fileapi/external_file_url_loader_factory.cc b/chrome/browser/chromeos/fileapi/external_file_url_loader_factory.cc index 816a2f6b..dc2a9f9 100644 --- a/chrome/browser/chromeos/fileapi/external_file_url_loader_factory.cc +++ b/chrome/browser/chromeos/fileapi/external_file_url_loader_factory.cc
@@ -274,17 +274,19 @@ head_.content_length = size; isolated_file_system_scope_ = std::move(isolated_file_system_scope); - mojo::DataPipe pipe(kDefaultPipeSize); - if (!pipe.consumer_handle.is_valid() || !pipe.producer_handle.is_valid()) { + mojo::ScopedDataPipeProducerHandle producer_handle; + mojo::ScopedDataPipeConsumerHandle consumer_handle; + if (mojo::CreateDataPipe(kDefaultPipeSize, producer_handle, + consumer_handle) != MOJO_RESULT_OK) { CompleteWithError(net::ERR_FAILED); return; } head_.response_start = base::TimeTicks::Now(); client_->OnReceiveResponse(head_.Clone()); - client_->OnStartLoadingResponseBody(std::move(pipe.consumer_handle)); + client_->OnStartLoadingResponseBody(std::move(consumer_handle)); data_producer_ = std::make_unique<FileSystemReaderDataPipeProducer>( - std::move(pipe.producer_handle), std::move(stream_reader), size, + std::move(producer_handle), std::move(stream_reader), size, base::BindOnce(&ExternalFileURLLoader::OnFileWritten, weak_ptr_factory_.GetWeakPtr())); data_producer_->Write();
diff --git a/chrome/browser/chromeos/login/screens/reset_screen.cc b/chrome/browser/chromeos/login/screens/reset_screen.cc index 00a3aff0..cc7f4429 100644 --- a/chrome/browser/chromeos/login/screens/reset_screen.cc +++ b/chrome/browser/chromeos/login/screens/reset_screen.cc
@@ -36,6 +36,10 @@ namespace chromeos { namespace { +// TODO(https://crbug.com/1164001): remove after //chrome/browser/chromeos +// source migration is finished. +namespace reset = ::ash::reset; + constexpr const char kUserActionCancelReset[] = "cancel-reset"; constexpr const char kUserActionResetRestartPressed[] = "restart-pressed"; constexpr const char kUserActionResetPowerwashPressed[] = "powerwash-pressed";
diff --git a/chrome/browser/devtools/devtools_sanity_browsertest.cc b/chrome/browser/devtools/devtools_sanity_browsertest.cc index 6828ed1..388b1a6 100644 --- a/chrome/browser/devtools/devtools_sanity_browsertest.cc +++ b/chrome/browser/devtools/devtools_sanity_browsertest.cc
@@ -1658,8 +1658,13 @@ load_timing.push_end = base::TimeTicks::Now(); params->client->OnReceiveResponse(std::move(response)); - mojo::DataPipe pipe; // The response's body is empty. The pipe is not filled. - params->client->OnStartLoadingResponseBody(std::move(pipe.consumer_handle)); + + // The response's body is empty. The pipe is not filled. + mojo::ScopedDataPipeProducerHandle producer_handle; + mojo::ScopedDataPipeConsumerHandle consumer_handle; + EXPECT_EQ(mojo::CreateDataPipe(nullptr, producer_handle, consumer_handle), + MOJO_RESULT_OK); + params->client->OnStartLoadingResponseBody(std::move(consumer_handle)); params->client->OnComplete(network::URLLoaderCompletionStatus()); return true; }
diff --git a/chrome/browser/download/notification/download_notification_browsertest.cc b/chrome/browser/download/notification/download_notification_browsertest.cc index 3a61669..7472ca8 100644 --- a/chrome/browser/download/notification/download_notification_browsertest.cc +++ b/chrome/browser/download/notification/download_notification_browsertest.cc
@@ -221,15 +221,19 @@ static void SendBody(content::URLLoaderInterceptor::RequestParams* params, std::string data) { - mojo::DataPipe pipe(data.size()); - ASSERT_TRUE(pipe.producer_handle.is_valid()); + mojo::ScopedDataPipeProducerHandle producer_handle; + mojo::ScopedDataPipeConsumerHandle consumer_handle; + ASSERT_EQ( + mojo::CreateDataPipe(data.size(), producer_handle, consumer_handle), + MOJO_RESULT_OK); + uint32_t write_size = data.size(); - MojoResult result = pipe.producer_handle->WriteData( - data.c_str(), &write_size, MOJO_WRITE_DATA_FLAG_NONE); + MojoResult result = producer_handle->WriteData(data.c_str(), &write_size, + MOJO_WRITE_DATA_FLAG_NONE); ASSERT_EQ(MOJO_RESULT_OK, result); ASSERT_EQ(data.size(), write_size); - ASSERT_TRUE(pipe.consumer_handle.is_valid()); - params->client->OnStartLoadingResponseBody(std::move(pipe.consumer_handle)); + ASSERT_TRUE(consumer_handle.is_valid()); + params->client->OnStartLoadingResponseBody(std::move(consumer_handle)); } const std::map<std::string, Handler> handlers_;
diff --git a/chrome/browser/extensions/chrome_url_request_util.cc b/chrome/browser/extensions/chrome_url_request_util.cc index f75ac134..939a308 100644 --- a/chrome/browser/extensions/chrome_url_request_util.cc +++ b/chrome/browser/extensions/chrome_url_request_util.cc
@@ -163,8 +163,10 @@ head->content_length = data->size(); head->mime_type = *read_mime_type; DetermineCharset(head->mime_type, data.get(), &head->charset); - mojo::DataPipe pipe(data->size()); - if (!pipe.consumer_handle.is_valid()) { + mojo::ScopedDataPipeProducerHandle producer_handle; + mojo::ScopedDataPipeConsumerHandle consumer_handle; + if (mojo::CreateDataPipe(data->size(), producer_handle, consumer_handle) != + MOJO_RESULT_OK) { client_->OnComplete(network::URLLoaderCompletionStatus(net::ERR_FAILED)); client_.reset(); MaybeDeleteSelf(); @@ -178,11 +180,11 @@ head->mime_type.c_str()); } client_->OnReceiveResponse(std::move(head)); - client_->OnStartLoadingResponseBody(std::move(pipe.consumer_handle)); + client_->OnStartLoadingResponseBody(std::move(consumer_handle)); uint32_t write_size = data->size(); - MojoResult result = pipe.producer_handle->WriteData( - data->front(), &write_size, MOJO_WRITE_DATA_FLAG_NONE); + MojoResult result = producer_handle->WriteData(data->front(), &write_size, + MOJO_WRITE_DATA_FLAG_NONE); OnFileWritten(result); }
diff --git a/chrome/browser/offline_pages/offline_page_url_loader.cc b/chrome/browser/offline_pages/offline_page_url_loader.cc index 4d4b2f83f..352d61e 100644 --- a/chrome/browser/offline_pages/offline_page_url_loader.cc +++ b/chrome/browser/offline_pages/offline_page_url_loader.cc
@@ -27,7 +27,7 @@ namespace { -constexpr size_t kBufferSize = 4096; +constexpr uint32_t kBufferSize = 4096; content::WebContents* GetWebContents(int frame_tree_node_id) { return content::WebContents::FromFrameTreeNodeId(frame_tree_node_id); @@ -254,8 +254,9 @@ &OfflinePageURLLoader::OnMojoDisconnect, weak_ptr_factory_.GetWeakPtr())); client_.Bind(std::move(client)); - mojo::DataPipe pipe(kBufferSize); - if (!pipe.consumer_handle.is_valid()) { + mojo::ScopedDataPipeConsumerHandle consumer_handle; + if (mojo::CreateDataPipe(kBufferSize, producer_handle_, consumer_handle) != + MOJO_RESULT_OK) { Finish(net::ERR_FAILED); return; } @@ -283,9 +284,7 @@ response_head->content_length = file_size; client_->OnReceiveResponse(std::move(response_head)); - client_->OnStartLoadingResponseBody(std::move(pipe.consumer_handle)); - - producer_handle_ = std::move(pipe.producer_handle); + client_->OnStartLoadingResponseBody(std::move(consumer_handle)); handle_watcher_ = std::make_unique<mojo::SimpleWatcher>( FROM_HERE, mojo::SimpleWatcher::ArmingPolicy::MANUAL,
diff --git a/chrome/browser/plugins/plugin_response_interceptor_url_loader_throttle.cc b/chrome/browser/plugins/plugin_response_interceptor_url_loader_throttle.cc index e6348dc2..b8f419e2 100644 --- a/chrome/browser/plugins/plugin_response_interceptor_url_loader_throttle.cc +++ b/chrome/browser/plugins/plugin_response_interceptor_url_loader_throttle.cc
@@ -89,13 +89,18 @@ &PluginResponseInterceptorURLLoaderThrottle::ResumeLoad, weak_factory_.GetWeakPtr())); - mojo::DataPipe data_pipe(data_pipe_size); + mojo::ScopedDataPipeProducerHandle producer_handle; + mojo::ScopedDataPipeConsumerHandle consumer_handle; + CHECK_EQ( + mojo::CreateDataPipe(data_pipe_size, producer_handle, consumer_handle), + MOJO_RESULT_OK); + uint32_t len = static_cast<uint32_t>(payload.size()); CHECK_EQ(MOJO_RESULT_OK, - data_pipe.producer_handle->WriteData( - payload.c_str(), &len, MOJO_WRITE_DATA_FLAG_ALL_OR_NONE)); + producer_handle->WriteData(payload.c_str(), &len, + MOJO_WRITE_DATA_FLAG_ALL_OR_NONE)); - new_client->OnStartLoadingResponseBody(std::move(data_pipe.consumer_handle)); + new_client->OnStartLoadingResponseBody(std::move(consumer_handle)); network::URLLoaderCompletionStatus status(net::OK); status.decoded_body_length = len;
diff --git a/chrome/browser/renderer_context_menu/render_view_context_menu.cc b/chrome/browser/renderer_context_menu/render_view_context_menu.cc index cefeba95..9c34020 100644 --- a/chrome/browser/renderer_context_menu/render_view_context_menu.cc +++ b/chrome/browser/renderer_context_menu/render_view_context_menu.cc
@@ -2823,6 +2823,9 @@ if (browser_context_->IsOffTheRecord() || !params_.link_url.is_valid()) return false; + if (Profile::FromBrowserContext(browser_context_)->IsEphemeralGuestProfile()) + return false; + if (!IsURLAllowedInIncognito(params_.link_url, browser_context_)) return false;
diff --git a/chrome/browser/resources/chromeos/emoji_picker/BUILD.gn b/chrome/browser/resources/chromeos/emoji_picker/BUILD.gn index b68aefa..0bc5d86 100644 --- a/chrome/browser/resources/chromeos/emoji_picker/BUILD.gn +++ b/chrome/browser/resources/chromeos/emoji_picker/BUILD.gn
@@ -29,6 +29,7 @@ "index.html", "types.js", "events.js", + "store.js", "emoji_test_ordering.json", ] grdp_files = [ @@ -72,6 +73,7 @@ ":emoji_group", ":emoji_group_button", ":events", + ":store", ":types", "//third_party/polymer/v3_0/components-chromium/polymer:polymer_bundled", "//ui/webui/resources/js:assert.m", @@ -109,6 +111,10 @@ js_library("events") { } +js_library("store") { + deps = [ ":types" ] +} + js_type_check("closure_compile") { is_polymer3 = true deps = [ @@ -117,6 +123,7 @@ ":emoji_picker", ":events", ":icons", + ":store", ":types", ] }
diff --git a/chrome/browser/resources/chromeos/emoji_picker/emoji_group.js b/chrome/browser/resources/chromeos/emoji_picker/emoji_group.js index 483295f..ca484e8 100644 --- a/chrome/browser/resources/chromeos/emoji_picker/emoji_group.js +++ b/chrome/browser/resources/chromeos/emoji_picker/emoji_group.js
@@ -5,7 +5,7 @@ import {html, PolymerElement} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js'; import {createCustomEvent, EMOJI_BUTTON_EVENT} from './events.js'; -import {EmojiGroup} from './types.js'; +import {Codepoints, EmojiGroup} from './types.js'; class EmojiGroupComponent extends PolymerElement { static get is() { @@ -32,6 +32,9 @@ EMOJI_BUTTON_EVENT, {emoji: ev.path[0].textContent.trim()})); } + /** + * @param {Codepoints} codepoints + */ _renderEmoji(codepoints) { return String.fromCodePoint(...codepoints); }
diff --git a/chrome/browser/resources/chromeos/emoji_picker/emoji_picker.html b/chrome/browser/resources/chromeos/emoji_picker/emoji_picker.html index 30dd778..dae29ef1 100644 --- a/chrome/browser/resources/chromeos/emoji_picker/emoji_picker.html +++ b/chrome/browser/resources/chromeos/emoji_picker/emoji_picker.html
@@ -46,7 +46,9 @@ whereas the other groups are created from the emoji metadata. --> <div id="group-history"> - <emoji-group data="[[history]]"></emoji-group> + <template is="dom-if" if="[[history.emoji.length]]"> + <emoji-group data="[[history]]"></emoji-group> + </template> </div> <template is="dom-repeat" items="[[emojiData]]"> <div id="group-[[index]]">
diff --git a/chrome/browser/resources/chromeos/emoji_picker/emoji_picker.js b/chrome/browser/resources/chromeos/emoji_picker/emoji_picker.js index 813b21f..b16cb50d 100644 --- a/chrome/browser/resources/chromeos/emoji_picker/emoji_picker.js +++ b/chrome/browser/resources/chromeos/emoji_picker/emoji_picker.js
@@ -5,14 +5,14 @@ import './icons.js'; import './emoji_group.js'; import './emoji_group_button.js'; - import 'chrome://resources/cr_elements/cr_icons_css.m.js'; import {assert} from 'chrome://resources/js/assert.m.js'; import {html, PolymerElement} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js'; import {createCustomEvent, DATA_LOADED_EVENT, EMOJI_BUTTON_EVENT, GROUP_BUTTON_EVENT} from './events.js'; -import {EmojiData, EmojiGroup} from './types.js'; +import {RecentEmojiStore} from './store.js'; +import {Codepoints, Emoji, EmojiData, EmojiGroup} from './types.js'; const EMOJI_ORDERING_JSON = '/emoji_13_1_ordering.json'; @@ -29,6 +29,17 @@ {icon: 'emoji_picker:flag', group: '8', active: false}, ]; +/** + * Constructs the emoji group data structure from a given list of emoji + * strings. Note: returned emoji have no variants. + * + * @param {!Array<Codepoints>} recentEmoji list of recently used emoji strings. + * @return {!Array<!Emoji>} list of emoji data structures + */ +function makeRecentlyUsed(recentEmoji) { + return recentEmoji.map(emoji => ({base: emoji, alternates: []})); +} + export class EmojiPicker extends PolymerElement { static get is() { return 'emoji-picker'; @@ -56,22 +67,13 @@ constructor() { super(); + this.recentEmojiStore = new RecentEmojiStore(); + this.groups = GROUP_TABS; this.emojiData = []; - // TODO(https://crbug.com/1164828): replace placeholder frequently used - // data. this.history = { 'group': 'Recently Used', - 'emoji': [ - { - 'base': [128512], - 'alternates': [], - }, - { - 'base': [128513], - 'alternates': [], - }, - ], + 'emoji': makeRecentlyUsed(this.recentEmojiStore.data), }; this.search = ''; } @@ -114,6 +116,9 @@ */ insertEmoji(emoji) { chrome.send('insertEmoji', [emoji]); + this.recentEmojiStore.bumpEmoji(emoji); + this.set( + ['history', 'emoji'], makeRecentlyUsed(this.recentEmojiStore.data)); } _formatEmojiData(emojiData) {
diff --git a/chrome/browser/resources/chromeos/emoji_picker/store.js b/chrome/browser/resources/chromeos/emoji_picker/store.js new file mode 100644 index 0000000..0f9aebb --- /dev/null +++ b/chrome/browser/resources/chromeos/emoji_picker/store.js
@@ -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. + +import {Codepoints} from './types.js'; + +const LOCALSTORAGE_KEY = 'emoji-recently-used'; +const MAX_RECENTS = 14; + +/** + * Recently used emoji, most recent first. Each emoji is stored as an array + * of codepoints. + * @typedef {!Array<Codepoints>} + */ +let RecentlyUsedEmoji; + +/** + * @return {RecentlyUsedEmoji} recently used emoji, most recent first. + */ +function load() { + const stored = window.localStorage.getItem(LOCALSTORAGE_KEY); + if (!stored) { + return []; + } + return /** @type {?} */ (JSON.parse(stored)); +} + +/** + * @param {RecentlyUsedEmoji} data recently used emoji, most recent first. + */ +function save(data) { + window.localStorage.setItem(LOCALSTORAGE_KEY, JSON.stringify(data)); +} + +export class RecentEmojiStore { + constructor() { + this.data = load(); + } + + /** + * Moves the given emoji to the front of the MRU list, inserting it if + * it did not previously exist. + * @param {!string} newEmoji most recently used emoji. + */ + bumpEmoji(newEmoji) { + // find and remove newEmoji from array if it previously existed. + const oldIndex = + this.data.findIndex(x => String.fromCodePoint(...x) === newEmoji); + if (oldIndex !== -1) { + this.data.splice(oldIndex, 1); + } + // insert newEmoji's codepoints to front of array. + // first, split newEmoji into an array of strings where each string is + // one codepoint. then, convert each codepoint to its numerical value. + this.data.unshift([...newEmoji].map(x => x.codePointAt(0))); + // slice from end of array if it exceeds MAX_RECENTS. + if (this.data.length > MAX_RECENTS) { + // setting length is sufficient to truncate an array. + this.data.length = MAX_RECENTS; + } + save(this.data); + } +}
diff --git a/chrome/browser/resources/chromeos/emoji_picker/types.js b/chrome/browser/resources/chromeos/emoji_picker/types.js index ecff78e9..7b768da4 100644 --- a/chrome/browser/resources/chromeos/emoji_picker/types.js +++ b/chrome/browser/resources/chromeos/emoji_picker/types.js
@@ -3,7 +3,12 @@ // found in the LICENSE file. /** - * @typedef {{base: number, alternates: Array<Array<number>>}} + * @typedef {!Array<!number>} + */ +export let Codepoints; + +/** + * @typedef {{base: Codepoints, alternates: !Array<Codepoints>}} */ export let Emoji;
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_en-GB.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_en-GB.xtb index a7a8cec2..18455b20 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_en-GB.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_en-GB.xtb
@@ -730,6 +730,7 @@ <translation id="6122831415929794347">Turn off Safe Browsing?</translation> <translation id="6127379762771434464">Item removed</translation> <translation id="6137022273846704445"><ph name="APP_NAME" />’s language</translation> +<translation id="6138832295072039549">Change your site settings here</translation> <translation id="6140709049082532940">Enhanced protection:</translation> <translation id="6140912465461743537">Country/Region</translation> <translation id="614940544461990577">Try:</translation>
diff --git a/chrome/browser/ui/browser_commands.cc b/chrome/browser/ui/browser_commands.cc index 0a136730..b2374b3e 100644 --- a/chrome/browser/ui/browser_commands.cc +++ b/chrome/browser/ui/browser_commands.cc
@@ -447,6 +447,10 @@ } Browser* OpenEmptyWindow(Profile* profile) { + if (Browser::GetCreationStatusForProfile(profile) != + Browser::CreationStatus::kOk) { + return nullptr; + } Browser* browser = Browser::Create( Browser::CreateParams(Browser::TYPE_NORMAL, profile, true)); AddTabAt(browser, GURL(), -1, true);
diff --git a/chrome/browser/ui/browser_commands.h b/chrome/browser/ui/browser_commands.h index 1cd6219..8375445 100644 --- a/chrome/browser/ui/browser_commands.h +++ b/chrome/browser/ui/browser_commands.h
@@ -52,6 +52,7 @@ // Opens a new window with the default blank tab. This bypasses metrics and // various internal bookkeeping; NewEmptyWindow (above) is preferred. +// Returns nullptr if browser creation is not possible. Browser* OpenEmptyWindow(Profile* profile); // Opens a new window with the tabs from |profile|'s TabRestoreService.
diff --git a/chrome/browser/ui/webui/ntp/ntp_resource_cache.cc b/chrome/browser/ui/webui/ntp/ntp_resource_cache.cc index 9cc2833..54a952c 100644 --- a/chrome/browser/ui/webui/ntp/ntp_resource_cache.cc +++ b/chrome/browser/ui/webui/ntp/ntp_resource_cache.cc
@@ -44,6 +44,7 @@ #include "components/policy/core/common/policy_service.h" #include "components/policy/policy_constants.h" #include "components/prefs/pref_service.h" +#include "components/reading_list/features/reading_list_switches.h" #include "components/strings/grit/components_strings.h" #include "content/public/browser/browser_thread.h" #include "content/public/browser/notification_service.h" @@ -306,7 +307,9 @@ profile_->GetAllOffTheRecordProfiles()[0]); replacements["incognitoTabDescription"] = - l10n_util::GetStringUTF8(IDS_NEW_TAB_OTR_SUBTITLE); + l10n_util::GetStringUTF8(reading_list::switches::IsReadingListEnabled() + ? IDS_NEW_TAB_OTR_SUBTITLE_WITH_READING_LIST + : IDS_NEW_TAB_OTR_SUBTITLE); replacements["incognitoTabHeading"] = l10n_util::GetStringUTF8(IDS_NEW_TAB_OTR_TITLE); replacements["incognitoTabWarning"] =
diff --git a/chrome/browser/ui/webui/settings/reset_settings_handler.cc b/chrome/browser/ui/webui/settings/reset_settings_handler.cc index bcb312b..7f63fe9 100644 --- a/chrome/browser/ui/webui/settings/reset_settings_handler.cc +++ b/chrome/browser/ui/webui/settings/reset_settings_handler.cc
@@ -304,8 +304,8 @@ const base::ListValue* args) { UMA_HISTOGRAM_ENUMERATION( "Reset.ChromeOS.PowerwashDialogShown", - chromeos::reset::DialogViewType::kFromOptions, - chromeos::reset::DialogViewType::kCount); + ash::reset::DialogViewType::kFromOptions, + ash::reset::DialogViewType::kCount); } #endif // BUILDFLAG(IS_CHROMEOS_ASH)
diff --git a/chrome/build/linux.pgo.txt b/chrome/build/linux.pgo.txt index 832e7198..23e09ca5 100644 --- a/chrome/build/linux.pgo.txt +++ b/chrome/build/linux.pgo.txt
@@ -1 +1 @@ -chrome-linux-master-1611981053-953d34bbc0eb9ae706fe41033a14ec20d3caeac5.profdata +chrome-linux-master-1612137494-cded536caff9d01ac1835dd55c669c59d578e24b.profdata
diff --git a/chrome/build/mac.pgo.txt b/chrome/build/mac.pgo.txt index 4d6437d9..99dff6b2 100644 --- a/chrome/build/mac.pgo.txt +++ b/chrome/build/mac.pgo.txt
@@ -1 +1 @@ -chrome-mac-master-1611981053-3dc7fb00a743418c187713d6f8856fe9d8c1ccb7.profdata +chrome-mac-master-1612137494-0a2ece1f87e6a27e7b4f415cb3a2d66eae4a3d7f.profdata
diff --git a/chrome/build/win32.pgo.txt b/chrome/build/win32.pgo.txt index b5d5874..803405e3a 100644 --- a/chrome/build/win32.pgo.txt +++ b/chrome/build/win32.pgo.txt
@@ -1 +1 @@ -chrome-win32-master-1611964758-ff8f0736fcffd7d9ae05060c277b8d9085cb0fe5.profdata +chrome-win32-master-1612137494-8950a727092eac823a194e54fd2c106357d34e54.profdata
diff --git a/chrome/build/win64.pgo.txt b/chrome/build/win64.pgo.txt index 5eb7324..3e9cc3e9 100644 --- a/chrome/build/win64.pgo.txt +++ b/chrome/build/win64.pgo.txt
@@ -1 +1 @@ -chrome-win64-master-1611964758-6e9aa8357def8176e90e48c13fde39b26e4a38cf.profdata +chrome-win64-master-1612137494-3e8b5d5bb5f2180f5f4ce3ce83942a5f436395e4.profdata
diff --git a/chrome/test/data/webui/chromeos/emoji_picker/BUILD.gn b/chrome/test/data/webui/chromeos/emoji_picker/BUILD.gn index 124e7749..4344ade 100644 --- a/chrome/test/data/webui/chromeos/emoji_picker/BUILD.gn +++ b/chrome/test/data/webui/chromeos/emoji_picker/BUILD.gn
@@ -11,13 +11,24 @@ "js_module_root=../../chrome/test/data/webui/", "js_module_root=./gen/chrome/test/data/webui/", ] - deps = [ ":emoji_picker_test" ] + deps = [ + ":emoji_picker_store_test", + ":emoji_picker_test", + ] } js_library("emoji_picker_test") { deps = [ "//chrome/browser/resources/chromeos/emoji_picker:emoji_picker", - "//chrome/browser/resources/chromeos/emoji_picker:emoji_picker", + "//ui/webui/resources/js:assert.m", + ] + externs_list = [ "$externs_path/mocha-2.5.js" ] +} + +js_library("emoji_picker_store_test") { + deps = [ + "//chrome/browser/resources/chromeos/emoji_picker:store", + "//chrome/test/data/webui:chai_assert", "//ui/webui/resources/js:assert.m", ] externs_list = [ "$externs_path/mocha-2.5.js" ]
diff --git a/chrome/test/data/webui/chromeos/emoji_picker/emoji_picker_browsertest.js b/chrome/test/data/webui/chromeos/emoji_picker/emoji_picker_browsertest.js index 1e42450..80f92cb 100644 --- a/chrome/test/data/webui/chromeos/emoji_picker/emoji_picker_browsertest.js +++ b/chrome/test/data/webui/chromeos/emoji_picker/emoji_picker_browsertest.js
@@ -13,6 +13,7 @@ GEN('#include "content/public/test/browser_test.h"'); GEN('#include "chromeos/constants/chromeos_features.h"'); +// This file bootstraps the other tests written in Javascript. class EmojiPickerBrowserTest extends PolymerTest { /** @override */ get browsePreload() { @@ -25,8 +26,7 @@ } } -// this browser test bootstraps the other tests written in javascript. - +// Tests behaviour of <emoji-picker> component. var EmojiPickerMainTest = class extends EmojiPickerBrowserTest { /** @override */ get browsePreload() { @@ -35,7 +35,19 @@ } }; - TEST_F('EmojiPickerMainTest', 'All', function() { mocha.run(); +}); + +// Tests functionality of recently used storage. +var EmojiPickerStoreTest = class extends EmojiPickerBrowserTest { + /** @override */ + get browsePreload() { + return 'chrome://emoji-picker/test_loader.html?module=' + + 'chromeos/emoji_picker/emoji_picker_store_test.js'; + } +}; + +TEST_F('EmojiPickerStoreTest', 'All', function() { + mocha.run(); }); \ No newline at end of file
diff --git a/chrome/test/data/webui/chromeos/emoji_picker/emoji_picker_store_test.js b/chrome/test/data/webui/chromeos/emoji_picker/emoji_picker_store_test.js new file mode 100644 index 0000000..1d0a88a --- /dev/null +++ b/chrome/test/data/webui/chromeos/emoji_picker/emoji_picker_store_test.js
@@ -0,0 +1,55 @@ +// 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 {RecentEmojiStore} from 'chrome://emoji-picker/store.js'; +import {assert} from 'chrome://resources/js/assert.m.js'; + +import {assertDeepEquals} from '../../chai_assert.js'; + +const TEST_EMOJI = { + waving: {string: '👋', codepoints: [128075]}, + grin: {string: '😀', codepoints: [128512]}, +}; + +suite('RecentEmojiStore', () => { + let store; + + setup(() => { + window.localStorage.clear(); + store = new RecentEmojiStore(); + }); + + test('store should be initially empty', () => { + assert(store.data.length === 0); + }); + + test('store data should be persisted', () => { + store.bumpEmoji(TEST_EMOJI.grin.string); + + const newStore = new RecentEmojiStore(); + assertDeepEquals(store.data, newStore.data); + }); + + test('one emoji in recently used', () => { + store.bumpEmoji(TEST_EMOJI.grin.string); + assertDeepEquals([TEST_EMOJI.grin.codepoints], store.data); + + store.bumpEmoji(TEST_EMOJI.grin.string); + assertDeepEquals( + [TEST_EMOJI.grin.codepoints], store.data, + 'clicking an existing emoji should not duplicate it'); + }); + + test('two emoji in recently used', () => { + store.bumpEmoji(TEST_EMOJI.grin.string); + store.bumpEmoji(TEST_EMOJI.waving.string); + assertDeepEquals( + [TEST_EMOJI.waving.codepoints, TEST_EMOJI.grin.codepoints], store.data); + + store.bumpEmoji(TEST_EMOJI.grin.string); + assertDeepEquals( + [TEST_EMOJI.grin.codepoints, TEST_EMOJI.waving.codepoints], store.data, + 'clicking an existing emoji should move it to the front'); + }); +});
diff --git a/chrome/test/data/webui/chromeos/emoji_picker/emoji_picker_test.js b/chrome/test/data/webui/chromeos/emoji_picker/emoji_picker_test.js index 69dba04..f477079 100644 --- a/chrome/test/data/webui/chromeos/emoji_picker/emoji_picker_test.js +++ b/chrome/test/data/webui/chromeos/emoji_picker/emoji_picker_test.js
@@ -8,7 +8,7 @@ import {assert} from 'chrome://resources/js/assert.m.js'; import {flush} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js'; -import {deepQuerySelector} from './emoji_picker_test_util.js'; +import {deepQuerySelector, timeout, waitForCondition} from './emoji_picker_test_util.js'; const ACTIVE_CLASS = 'emoji-group-active'; @@ -21,6 +21,7 @@ return element ? element.classList.contains(ACTIVE_CLASS) : false; } + suite('<emoji-picker>', () => { /** @type {!EmojiPicker} */ let emojiPicker; @@ -30,6 +31,8 @@ setup(() => { // Reset DOM state. document.body.innerHTML = ''; + window.localStorage.clear(); + emojiPicker = /** @type {!EmojiPicker} */ (document.createElement('emoji-picker')); emojiPicker.emojiDataUrl = '/emoji_test_ordering.json'; @@ -68,4 +71,25 @@ assert(isGroupButtonActive(secondButton)); assert(!isGroupButtonActive(firstButton)); }); + + test('recently used should be hidden when empty', () => { + const recentlyUsed = findInEmojiPicker(['#group-history > emoji-group']); + assert(!recentlyUsed); + }); + + test('recently used should be populated after emoji is clicked', async () => { + // yield to allow emoji-group and emoji buttons to render. + const emojiButton = await waitForCondition( + () => findInEmojiPicker( + ['#group-0 > emoji-group', '.emoji-group-emoji', 'button'])); + emojiButton.click(); + + // wait until emoji exists in recently used section. + const recentlyUsed = await waitForCondition( + () => findInEmojiPicker(['#group-history > emoji-group', 'button'])); + + // check text is correct. + const recentText = recentlyUsed.innerText; + assert(recentText.includes(String.fromCodePoint(128512))); + }); });
diff --git a/chrome/test/data/webui/chromeos/emoji_picker/emoji_picker_test_util.js b/chrome/test/data/webui/chromeos/emoji_picker/emoji_picker_test_util.js index 2dddcd46..304f92af 100644 --- a/chrome/test/data/webui/chromeos/emoji_picker/emoji_picker_test_util.js +++ b/chrome/test/data/webui/chromeos/emoji_picker/emoji_picker_test_util.js
@@ -31,3 +31,29 @@ return el; } + +/** + * Constructs a promise which resolves when the given condition function + * evaluates to a truthy value. + * @param {!function(): T} condition condition function to check. + * @param {number=} interval polling interval in milliseconds. + * @return {!Promise<T>} promise resolving to truthy return value of condition. + * @template T return type of condition function. + */ +export async function waitForCondition(condition, interval = 10) { + /** @type {T} */ + let result; + while (!(result = condition())) { + await timeout(interval); + } + return result; +} + +/** + * Constructs a promise which resolves after the given amount of time. + * @param {!number} ms timeout in milliseconds. + * @return {!Promise} timeout promise. + */ +export function timeout(ms) { + return new Promise(resolve => setTimeout(resolve, ms)); +}
diff --git a/chrome/test/ppapi/ppapi_browsertest.cc b/chrome/test/ppapi/ppapi_browsertest.cc index 2cd6fed..50791f1 100644 --- a/chrome/test/ppapi/ppapi_browsertest.cc +++ b/chrome/test/ppapi/ppapi_browsertest.cc
@@ -402,15 +402,19 @@ return; } - mojo::DataPipe send_pipe; - mojo::DataPipe receive_pipe; + mojo::ScopedDataPipeProducerHandle send_producer_handle; + EXPECT_EQ( + mojo::CreateDataPipe(nullptr, send_producer_handle, send_pipe_handle_), + MOJO_RESULT_OK); - receive_pipe_handle_ = std::move(receive_pipe.producer_handle); - send_pipe_handle_ = std::move(send_pipe.consumer_handle); + mojo::ScopedDataPipeConsumerHandle receive_consumer_handle; + EXPECT_EQ(mojo::CreateDataPipe(nullptr, receive_pipe_handle_, + receive_consumer_handle), + MOJO_RESULT_OK); std::move(callback).Run(net::OK, LocalAddress(), RemoteAddress(), - std::move(receive_pipe.consumer_handle), - std::move(send_pipe.producer_handle)); + std::move(receive_consumer_handle), + std::move(send_producer_handle)); ClosePipeIfNeeded(); } @@ -435,16 +439,19 @@ return; } - mojo::DataPipe send_pipe; - mojo::DataPipe receive_pipe; + mojo::ScopedDataPipeProducerHandle send_producer_handle; + EXPECT_EQ( + mojo::CreateDataPipe(nullptr, send_producer_handle, send_pipe_handle_), + MOJO_RESULT_OK); - receive_pipe_handle_ = std::move(receive_pipe.producer_handle); - send_pipe_handle_ = std::move(send_pipe.consumer_handle); + mojo::ScopedDataPipeConsumerHandle receive_consumer_handle; + EXPECT_EQ(mojo::CreateDataPipe(nullptr, receive_pipe_handle_, + receive_consumer_handle), + MOJO_RESULT_OK); - std::move(callback).Run(net::OK, RemoteAddress(), - receiver_.BindNewPipeAndPassRemote(), - std::move(receive_pipe.consumer_handle), - std::move(send_pipe.producer_handle)); + std::move(callback).Run( + net::OK, RemoteAddress(), receiver_.BindNewPipeAndPassRemote(), + std::move(receive_consumer_handle), std::move(send_producer_handle)); ClosePipeIfNeeded(); } @@ -487,14 +494,18 @@ // that use a real NetworkContext already make sure that the class correctly // closes the sockets when upgrading. - mojo::DataPipe send_pipe; - mojo::DataPipe receive_pipe; - receive_pipe_handle_ = std::move(receive_pipe.producer_handle); - send_pipe_handle_ = std::move(send_pipe.consumer_handle); + mojo::ScopedDataPipeProducerHandle send_producer_handle; + EXPECT_EQ( + mojo::CreateDataPipe(nullptr, send_producer_handle, send_pipe_handle_), + MOJO_RESULT_OK); - std::move(callback).Run(net::OK, std::move(receive_pipe.consumer_handle), - std::move(send_pipe.producer_handle), - net::SSLInfo()); + mojo::ScopedDataPipeConsumerHandle receive_consumer_handle; + EXPECT_EQ(mojo::CreateDataPipe(nullptr, receive_pipe_handle_, + receive_consumer_handle), + MOJO_RESULT_OK); + + std::move(callback).Run(net::OK, std::move(receive_consumer_handle), + std::move(send_producer_handle), net::SSLInfo()); if (tcp_failure_type_ == TCPFailureType::kSSLWriteClosePipe) { observer_.reset();
diff --git a/chromeos/components/camera_app_ui/resources/tsconfig.json b/chromeos/components/camera_app_ui/resources/tsconfig.json new file mode 100644 index 0000000..ea17e02 --- /dev/null +++ b/chromeos/components/camera_app_ui/resources/tsconfig.json
@@ -0,0 +1,9 @@ +{ + "compilerOptions": { + "allowJs": true, + "checkJs": true, + "noEmit": true, + "target": "esnext" + }, + "files": ["js/main.js"] +}
diff --git a/chromeos/strings/chromeos_strings_en-GB.xtb b/chromeos/strings/chromeos_strings_en-GB.xtb index 06170c07..4c7fe02 100644 --- a/chromeos/strings/chromeos_strings_en-GB.xtb +++ b/chromeos/strings/chromeos_strings_en-GB.xtb
@@ -62,6 +62,7 @@ <translation id="2338501278241028356">Turn on Bluetooth to discover nearby devices</translation> <translation id="2364498172489649528">Passed</translation> <translation id="2391082728065870591">Send feedback report</translation> +<translation id="2418150275289244458">Open in settings</translation> <translation id="2446553403094072641">Floating point accuracy</translation> <translation id="2448312741937722512">Types</translation> <translation id="2461822463642141190">Current</translation> @@ -273,6 +274,7 @@ <translation id="7177485034254901881">This <ph name="DEVICE_TYPE" /> is managed by <ph name="MANAGER" />. Administrators may remotely configure the device.</translation> <translation id="7216409898977639127">Mobile provider</translation> <translation id="7274587244503383581"><ph name="PRINTED_PAGES_NUMBER" />/<ph name="TOTAL_PAGES_NUMBER" /></translation> +<translation id="7343649194310845056">Network devices</translation> <translation id="7359657277149375382">File type</translation> <translation id="7375053625150546623">EAP</translation> <translation id="7427315641433634153">MSCHAP</translation> @@ -282,6 +284,7 @@ <translation id="7490813197707563893">MAC address</translation> <translation id="7497215489070763236">Server CA certificate</translation> <translation id="7502658306369382406">IPv6 address</translation> +<translation id="7550715992156305117">Diagnostic routines</translation> <translation id="7561454561030345039">This action is managed by your administrator</translation> <translation id="7569444139234840525"><ph name="QUERY_TEXT" /> · /<ph name="PHONETICS" />/</translation> <translation id="7595982850646262331"><ph name="TIME_VALUE" /> left</translation>
diff --git a/components/metrics/structured/BUILD.gn b/components/metrics/structured/BUILD.gn index 0408de8..b5781c6 100644 --- a/components/metrics/structured/BUILD.gn +++ b/components/metrics/structured/BUILD.gn
@@ -32,16 +32,16 @@ ] } -# TODO(crbug.com/1112471): Get this to run cleanly under Python 3. -python2_action("gen_structured_events") { +action("gen_structured_events") { script = "//tools/metrics/structured/gen_events.py" # Re-generate the outputs if the codegen code changes: inputs = [ "//tools/metrics/structured/codegen.py", - "//tools/metrics/structured/compile_time_validation.py", - "//tools/metrics/structured/events_template.py", "//tools/metrics/structured/gen_events.py", + "//tools/metrics/structured/model.py", + "//tools/metrics/structured/model_util.py", + "//tools/metrics/structured/templates.py", ] sources = [ "//tools/metrics/structured/structured.xml" ]
diff --git a/components/metrics/structured/structured_metrics_provider_unittest.cc b/components/metrics/structured/structured_metrics_provider_unittest.cc index 914cd0a4..218a8de 100644 --- a/components/metrics/structured/structured_metrics_provider_unittest.cc +++ b/components/metrics/structured/structured_metrics_provider_unittest.cc
@@ -59,12 +59,12 @@ } })"; -// The name hash of "TestEventOne". -constexpr uint64_t kEventOneHash = UINT64_C(15619026293081468407); -// The name hash of "TestEventTwo". -constexpr uint64_t kEventTwoHash = UINT64_C(15791833939776536363); -// The name hash of "TestEventThree". -constexpr uint64_t kEventThreeHash = UINT64_C(16464330721839207086); +// The name hash of "chrome::TestProjectOne::TestEventOne". +constexpr uint64_t kEventOneHash = UINT64_C(13593049295042080097); +// The name hash of "chrome::TestProjectTwo::TestEventTwo". +constexpr uint64_t kEventTwoHash = UINT64_C(8995967733561999410); +// The name hash of "chrome::TestProjectTwo::TestEventThree". +constexpr uint64_t kEventThreeHash = UINT64_C(5848687377041124372); // The name hash of "TestMetricOne". constexpr uint64_t kMetricOneHash = UINT64_C(637929385654885975);
diff --git a/components/page_load_metrics/browser/observers/prerender_page_load_metrics_observer.cc b/components/page_load_metrics/browser/observers/prerender_page_load_metrics_observer.cc index 8b7c369..b92e75d0 100644 --- a/components/page_load_metrics/browser/observers/prerender_page_load_metrics_observer.cc +++ b/components/page_load_metrics/browser/observers/prerender_page_load_metrics_observer.cc
@@ -8,6 +8,24 @@ #include "content/public/browser/web_contents.h" #include "third_party/blink/public/mojom/web_feature/web_feature.mojom.h" +namespace { + +// The purpose of this observer is to estimate how many prerendering pages will +// use certain features. The plan for prerendering is to delay loading of +// cross-origin iframes, so we want to ignore feature uses inside cross-origin +// iframes. To do this, just check if the |url| is cross-origin to +// |first_party_url|. This may not be an accurate count if a third-party +// subframe embeds a first-party subframe, or if there is a way for a frame to +// access cross-origin storage, but it's probably not significant. +// +// This check is somewhat heavy so it should be done after cheaper early +// returns. +bool IsFirstParty(const GURL& url, const GURL& first_party_url) { + return url::IsSameOriginWith(url, first_party_url); +} + +} // namespace + void PrerenderPageLoadMetricsObserver::OnFirstContentfulPaintInPage( const page_load_metrics::mojom::PageLoadTiming& timing) { did_fcp_ = true; @@ -18,24 +36,37 @@ const GURL& first_party_url, bool blocked_by_policy, page_load_metrics::StorageType access_type) { - if (access_type != page_load_metrics::StorageType::kLocalStorage || - did_local_storage_) - return; + // TODO(falken): Account for `blocked_by_policy`? - // The purpose of this observer is to estimate how many prerendering pages - // will use certain features. The plan for prerendering is to delay loading - // of cross-origin iframes, so we want to ignore feature uses inside - // cross-origin iframes. To do this, just check if the |url| is cross-origin - // to |first_party_url|. This may not be an accurate count if a third-party - // subframe embeds a first-party subframe, or if there is a way for a frame - // to access cross-origin storage, but it's probably not significant. - if (!url::IsSameOriginWith(url, first_party_url)) - return; + switch (access_type) { + case page_load_metrics::StorageType::kLocalStorage: + if (did_local_storage_) + return; + if (!IsFirstParty(url, first_party_url)) + return; - did_local_storage_ = true; - RecordFeatureUse( - did_fcp_ ? blink::mojom::WebFeature::kLocalStorageFirstUsedAfterFcp - : blink::mojom::WebFeature::kLocalStorageFirstUsedBeforeFcp); + did_local_storage_ = true; + RecordFeatureUse( + did_fcp_ ? blink::mojom::WebFeature::kLocalStorageFirstUsedAfterFcp + : blink::mojom::WebFeature::kLocalStorageFirstUsedBeforeFcp); + break; + case page_load_metrics::StorageType::kSessionStorage: + if (did_session_storage_) + return; + if (!IsFirstParty(url, first_party_url)) + return; + + did_session_storage_ = true; + RecordFeatureUse( + did_fcp_ + ? blink::mojom::WebFeature::kSessionStorageFirstUsedAfterFcp + : blink::mojom::WebFeature::kSessionStorageFirstUsedBeforeFcp); + break; + case page_load_metrics::StorageType::kFileSystem: + case page_load_metrics::StorageType::kIndexedDb: + case page_load_metrics::StorageType::kCacheStorage: + return; + } } void PrerenderPageLoadMetricsObserver::RecordFeatureUse(
diff --git a/components/page_load_metrics/browser/observers/prerender_page_load_metrics_observer.h b/components/page_load_metrics/browser/observers/prerender_page_load_metrics_observer.h index ee6b087..223640d 100644 --- a/components/page_load_metrics/browser/observers/prerender_page_load_metrics_observer.h +++ b/components/page_load_metrics/browser/observers/prerender_page_load_metrics_observer.h
@@ -35,6 +35,7 @@ bool did_fcp_ = false; bool did_local_storage_ = false; + bool did_session_storage_ = false; }; #endif // COMPONENTS_PAGE_LOAD_METRICS_BROWSER_OBSERVERS_PRERENDER_PAGE_LOAD_METRICS_OBSERVER_H_
diff --git a/components/page_load_metrics/browser/observers/prerender_page_load_metrics_observer_unittest.cc b/components/page_load_metrics/browser/observers/prerender_page_load_metrics_observer_unittest.cc index ba6455cf..b82e1ac 100644 --- a/components/page_load_metrics/browser/observers/prerender_page_load_metrics_observer_unittest.cc +++ b/components/page_load_metrics/browser/observers/prerender_page_load_metrics_observer_unittest.cc
@@ -60,6 +60,20 @@ static_cast<base::Histogram::Sample>( blink::mojom::WebFeature::kLocalStorageFirstUsedAfterFcp)); } + + int GetSessionStorageBeforeFcpCount() { + return tester()->histogram_tester().GetBucketCount( + kFeaturesHistogramName, + static_cast<base::Histogram::Sample>( + blink::mojom::WebFeature::kSessionStorageFirstUsedBeforeFcp)); + } + + int GetSessionStorageAfterFcpCount() { + return tester()->histogram_tester().GetBucketCount( + kFeaturesHistogramName, + static_cast<base::Histogram::Sample>( + blink::mojom::WebFeature::kSessionStorageFirstUsedAfterFcp)); + } }; TEST_F(PrerenderPageLoadMetricsObserverTest, NoLocalStorage) { @@ -115,10 +129,92 @@ GURL(kOtherOriginUrl), GURL(kDefaultTestUrl), false, page_load_metrics::StorageType::kLocalStorage); - // Cross-origin local storage is not logged. + // Cross-origin storage is not logged. EXPECT_EQ(GetPageVisits(), 1); EXPECT_EQ(GetLocalStorageBeforeFcpCount(), 0); EXPECT_EQ(GetLocalStorageAfterFcpCount(), 0); } +TEST_F(PrerenderPageLoadMetricsObserverTest, NoSessionStorage) { + NavigateAndCommit(GURL(kDefaultTestUrl)); + + EXPECT_EQ(GetPageVisits(), 1); + EXPECT_EQ(GetSessionStorageBeforeFcpCount(), 0); + EXPECT_EQ(GetSessionStorageAfterFcpCount(), 0); +} + +TEST_F(PrerenderPageLoadMetricsObserverTest, SessionStorageBeforeFcp) { + NavigateAndCommit(GURL(kDefaultTestUrl)); + + // Access session storage. + tester()->SimulateStorageAccess( + GURL(kDefaultTestUrl), GURL(kDefaultTestUrl), false, + page_load_metrics::StorageType::kSessionStorage); + + // Reach FCP. + SimulateFirstContentfulPaint(); + + // Access session storage again. + tester()->SimulateStorageAccess( + GURL(kDefaultTestUrl), GURL(kDefaultTestUrl), false, + page_load_metrics::StorageType::kSessionStorage); + + EXPECT_EQ(GetPageVisits(), 1); + EXPECT_EQ(GetSessionStorageBeforeFcpCount(), 1); + // The UMA counts the first use, so AfterFcp is 0. + EXPECT_EQ(GetSessionStorageAfterFcpCount(), 0); +} + +TEST_F(PrerenderPageLoadMetricsObserverTest, SessionStorageAfterFcp) { + NavigateAndCommit(GURL(kDefaultTestUrl)); + + // Reach FCP. + SimulateFirstContentfulPaint(); + + // Access session storage. + tester()->SimulateStorageAccess( + GURL(kDefaultTestUrl), GURL(kDefaultTestUrl), false, + page_load_metrics::StorageType::kSessionStorage); + + EXPECT_EQ(GetPageVisits(), 1); + EXPECT_EQ(GetSessionStorageBeforeFcpCount(), 0); + EXPECT_EQ(GetSessionStorageAfterFcpCount(), 1); +} + +TEST_F(PrerenderPageLoadMetricsObserverTest, ThirdPartySessionStorage) { + NavigateAndCommit(GURL(kDefaultTestUrl)); + + tester()->SimulateStorageAccess( + GURL(kOtherOriginUrl), GURL(kDefaultTestUrl), false, + page_load_metrics::StorageType::kSessionStorage); + + // Cross-origin storage is not logged. + EXPECT_EQ(GetPageVisits(), 1); + EXPECT_EQ(GetSessionStorageBeforeFcpCount(), 0); + EXPECT_EQ(GetSessionStorageAfterFcpCount(), 0); +} + +TEST_F(PrerenderPageLoadMetricsObserverTest, MultipleStorage) { + NavigateAndCommit(GURL(kDefaultTestUrl)); + + // Access local storage. + tester()->SimulateStorageAccess( + GURL(kDefaultTestUrl), GURL(kDefaultTestUrl), false, + page_load_metrics::StorageType::kLocalStorage); + + // Reach FCP. + SimulateFirstContentfulPaint(); + + // Access session storage. + tester()->SimulateStorageAccess( + GURL(kDefaultTestUrl), GURL(kDefaultTestUrl), false, + page_load_metrics::StorageType::kSessionStorage); + + EXPECT_EQ(GetPageVisits(), 1); + EXPECT_EQ(GetLocalStorageBeforeFcpCount(), 1); + EXPECT_EQ(GetLocalStorageAfterFcpCount(), 0); + EXPECT_EQ(GetSessionStorageBeforeFcpCount(), 0); + EXPECT_EQ(GetSessionStorageAfterFcpCount(), 1); +} + } // namespace
diff --git a/components/policy/resources/policy_templates_tr.xtb b/components/policy/resources/policy_templates_tr.xtb index ffa2c853..233200d 100644 --- a/components/policy/resources/policy_templates_tr.xtb +++ b/components/policy/resources/policy_templates_tr.xtb
@@ -752,7 +752,7 @@ Kullanılabilir veri türleri şunlardır: <ph name="DATA_TYPE_BROWSING_HISTORY" />, <ph name="DATA_TYPE_DOWNLOAD_HISTORY" />, <ph name="DATA_TYPE_COOKIES_AND_OTHER_SITE_DATA" />, <ph name="DATA_TYPE_CACHED_IMAGES_AND_FILES" />, <ph name="DATA_TYPE_PASSWORD" />, <ph name="DATA_TYPE_AUTOFILL" />, <ph name="DATA_TYPE_SITE_SETTINGS" /> ve <ph name="DATA_TYPE_HOSTED_APP_DATA" />. Tarayıcı, <ph name="TIME_TO_LIVE_IN_HOURS" /> saatten daha eski olan belirli türlerdeki verileri otomatik olarak kaldırır. Ayarlanabilecek minimum değer 1 saattir. Bazı nadir durumlarda verilerin silinmesi daha uzun sürebilir, ancak sonunda veriler silinir.</translation> -<translation id="2057317273526988987">URL listesine erişimi engelle</translation> +<translation id="2057317273526988987">URL listesine erişime izin ver</translation> <translation id="2061810934846663491">Uzaktan erişim ana makineleri için gereken alan adlarını yapılandır</translation> <translation id="2069350366303315077">Politika, Etkin değerine ayarlanırsa <ph name="PRODUCT_NAME" />, misafir oturumunu zorunlu kılıp profil ile oturum açma işlemlerini engeller. Misafir oturumları, tüm pencerelerin gizli modda olduğu <ph name="PRODUCT_NAME" /> profilleridir.
diff --git a/components/strings/components_strings_en-GB.xtb b/components/strings/components_strings_en-GB.xtb index c6cbc51..83ec0392 100644 --- a/components/strings/components_strings_en-GB.xtb +++ b/components/strings/components_strings_en-GB.xtb
@@ -147,6 +147,7 @@ <translation id="1462951478840426066">Use the fonts on your computer so that you can create high-fidelity content</translation> <translation id="1463543813647160932">5 x 7</translation> <translation id="1467432559032391204">Left</translation> +<translation id="1468463683985534315">Web app origin association parser service</translation> <translation id="1472675084647422956">Show more</translation> <translation id="1473183651233018052">JIS B10</translation> <translation id="147358896496811705">2A0</translation> @@ -181,6 +182,7 @@ <translation id="1567040042588613346">This policy is working as intended but the same value is set elsewhere and is superseded by this policy.</translation> <translation id="1569487616857761740">Enter expiry date</translation> <translation id="1581080074034554886">CVC</translation> +<translation id="1583294866416602487">Plex</translation> <translation id="1583429793053364125">Something went wrong while displaying this web page.</translation> <translation id="1586541204584340881">Which extensions you have installed</translation> <translation id="1588438908519853928">Normal</translation> @@ -378,6 +380,7 @@ <translation id="2359629602545592467">Multiple</translation> <translation id="2359808026110333948">Continue</translation> <translation id="2367567093518048410">Level</translation> +<translation id="2372464001869762664">Once you confirm, card details from your Google Account will be shared with this site. Find the CVC in your Plex account details.</translation> <translation id="2380886658946992094">Legal</translation> <translation id="2384307209577226199">Enterprise default</translation> <translation id="2385809941344967209">Update Chrome from your Chrome settings</translation>
diff --git a/content/browser/accessibility/browser_accessibility_win_unittest.cc b/content/browser/accessibility/browser_accessibility_win_unittest.cc index fee4cebe..a8e3350 100644 --- a/content/browser/accessibility/browser_accessibility_win_unittest.cc +++ b/content/browser/accessibility/browser_accessibility_win_unittest.cc
@@ -226,7 +226,7 @@ base::win::ScopedBstr name; hr = text_accessible->get_accName(childid_self, name.Receive()); ASSERT_EQ(S_OK, hr); - EXPECT_EQ(L"old text", base::string16(name.Get())); + EXPECT_EQ(L"old text", std::wstring(name.Get())); name.Reset(); text_dispatch.Reset(); @@ -254,7 +254,7 @@ hr = text_accessible->get_accName(childid_self, name.Receive()); ASSERT_EQ(S_OK, hr); - EXPECT_EQ(L"new text", base::string16(name.Get())); + EXPECT_EQ(L"new text", std::wstring(name.Get())); text_dispatch.Reset(); text_accessible.Reset(); @@ -436,7 +436,7 @@ base::win::ScopedBstr text; EXPECT_EQ(S_OK, text_field_obj->get_text(0, text_len, text.Receive())); - EXPECT_EQ(text_value, base::UTF16ToUTF8(base::string16(text.Get()))); + EXPECT_EQ(text_value, base::WideToUTF8(std::wstring(text.Get()))); text.Reset(); EXPECT_EQ(S_OK, text_field_obj->get_text(0, 4, text.Receive())); @@ -592,7 +592,7 @@ EXPECT_EQ(S_OK, text_field_obj->get_text(0, IA2_TEXT_OFFSET_LENGTH, text.Receive())); - EXPECT_EQ(text_value, base::UTF16ToUTF8(base::string16(text.Get()))); + EXPECT_EQ(text_value, base::WideToUTF8(std::wstring(text.Get()))); // Delete the manager and test that all BrowserAccessibility instances are // deleted. @@ -635,7 +635,7 @@ base::win::ScopedBstr text; EXPECT_EQ(S_OK, root_obj->get_text(0, text_name_len, text.Receive())); EXPECT_EQ(text1_name + text2_name, - base::UTF16ToUTF8(base::string16(text.Get()))); + base::WideToUTF8(std::wstring(text.Get()))); LONG hyperlink_count; EXPECT_EQ(S_OK, root_obj->get_nHyperlinks(&hyperlink_count)); @@ -666,14 +666,14 @@ } TEST_F(BrowserAccessibilityWinTest, TestComplexHypertext) { - const base::string16 text1_name = L"One two three."; - const base::string16 combo_box_name = L"City:"; - const base::string16 combo_box_value = L"Happyland"; - const base::string16 text2_name = L" Four five six."; - const base::string16 check_box_name = L"I agree"; - const base::string16 check_box_value = L"Checked"; - const base::string16 button_text_name = L"Red"; - const base::string16 link_text_name = L"Blue"; + const base::string16 text1_name = STRING16_LITERAL("One two three."); + const base::string16 combo_box_name = STRING16_LITERAL("City:"); + const base::string16 combo_box_value = STRING16_LITERAL("Happyland"); + const base::string16 text2_name = STRING16_LITERAL(" Four five six."); + const base::string16 check_box_name = STRING16_LITERAL("I agree"); + const base::string16 check_box_value = STRING16_LITERAL("Checked"); + const base::string16 button_text_name = STRING16_LITERAL("Red"); + const base::string16 link_text_name = STRING16_LITERAL("Blue"); // Each control (combo / check box, button and link) will be represented by an // embedded object character. const base::string16 embed(1, BrowserAccessibilityComWin::kEmbeddedCharacter); @@ -770,7 +770,7 @@ EXPECT_EQ(S_OK, hyperlink.As(&hypertext)); EXPECT_EQ(S_OK, hypertext->get_text(0, IA2_TEXT_OFFSET_LENGTH, text.Receive())); - EXPECT_STREQ(combo_box_value.c_str(), text.Get()); + EXPECT_EQ(combo_box_value, base::WideToUTF16(text.Get())); text.Reset(); hyperlink.Reset(); hypertext.Reset(); @@ -781,7 +781,7 @@ EXPECT_EQ(S_OK, hyperlink.As(&hypertext)); EXPECT_EQ(S_OK, hypertext->get_text(0, IA2_TEXT_OFFSET_LENGTH, text.Receive())); - EXPECT_STREQ(check_box_name.c_str(), text.Get()); + EXPECT_EQ(check_box_name, base::WideToUTF16(text.Get())); text.Reset(); hyperlink.Reset(); hypertext.Reset(); @@ -791,7 +791,7 @@ EXPECT_EQ(S_OK, hyperlink.As(&hypertext)); EXPECT_EQ(S_OK, hypertext->get_text(0, IA2_TEXT_OFFSET_LENGTH, text.Receive())); - EXPECT_STREQ(button_text_name.c_str(), text.Get()); + EXPECT_EQ(button_text_name, base::WideToUTF16(text.Get())); text.Reset(); hyperlink.Reset(); hypertext.Reset(); @@ -800,7 +800,7 @@ EXPECT_EQ(S_OK, root_obj->get_hyperlink(3, &hyperlink)); EXPECT_EQ(S_OK, hyperlink.As(&hypertext)); EXPECT_EQ(S_OK, hypertext->get_text(0, 4, text.Receive())); - EXPECT_STREQ(link_text_name.c_str(), text.Get()); + EXPECT_EQ(link_text_name, base::WideToUTF16(text.Get())); text.Reset(); hyperlink.Reset(); hypertext.Reset(); @@ -1268,9 +1268,9 @@ } TEST_F(BrowserAccessibilityWinTest, TestWordBoundariesInTextControls) { - const base::string16 line1(L"This is a very LONG line of text that "); - const base::string16 line2(L"should wrap on more than one lines "); - const base::string16 text(line1 + line2); + const std::string line1("This is a very LONG line of text that "); + const std::string line2("should wrap on more than one lines "); + const std::string text(line1 + line2); std::vector<int32_t> line1_word_starts; line1_word_starts.push_back(0); @@ -1309,8 +1309,8 @@ textarea.AddState(ax::mojom::State::kMultiline); textarea_div.AddState(ax::mojom::State::kEditable); textarea_text.AddState(ax::mojom::State::kEditable); - textarea.SetValue(base::UTF16ToUTF8(text)); - textarea_text.SetName(base::UTF16ToUTF8(text)); + textarea.SetValue(text); + textarea_text.SetName(text); textarea.AddStringAttribute(ax::mojom::StringAttribute::kHtmlTag, "textarea"); textarea.child_ids.push_back(textarea_div.id); textarea_div.child_ids.push_back(textarea_text.id); @@ -1322,8 +1322,8 @@ textarea_line2.role = ax::mojom::Role::kInlineTextBox; textarea_line1.AddState(ax::mojom::State::kEditable); textarea_line2.AddState(ax::mojom::State::kEditable); - textarea_line1.SetName(base::UTF16ToUTF8(line1)); - textarea_line2.SetName(base::UTF16ToUTF8(line2)); + textarea_line1.SetName(line1); + textarea_line2.SetName(line2); textarea_line1.AddIntListAttribute(ax::mojom::IntListAttribute::kWordStarts, line1_word_starts); textarea_line2.AddIntListAttribute(ax::mojom::IntListAttribute::kWordStarts, @@ -1342,8 +1342,8 @@ text_field.AddState(ax::mojom::State::kFocusable); text_field_div.AddState(ax::mojom::State::kEditable); text_field_text.AddState(ax::mojom::State::kEditable); - text_field.SetValue(base::UTF16ToUTF8(line1)); - text_field_text.SetName(base::UTF16ToUTF8(line1)); + text_field.SetValue(line1); + text_field_text.SetName(line1); text_field.AddStringAttribute(ax::mojom::StringAttribute::kHtmlTag, "input"); text_field.html_attributes.push_back(std::make_pair("type", "text")); text_field.child_ids.push_back(text_field_div.id); @@ -1353,7 +1353,7 @@ text_field_line.id = 10; text_field_line.role = ax::mojom::Role::kInlineTextBox; text_field_line.AddState(ax::mojom::State::kEditable); - text_field_line.SetName(base::UTF16ToUTF8(line1)); + text_field_line.SetName(line1); text_field_line.AddIntListAttribute(ax::mojom::IntListAttribute::kWordStarts, line1_word_starts); text_field_text.child_ids.push_back(text_field_line.id); @@ -1400,7 +1400,7 @@ LONG space_offset = static_cast<LONG>(text.find(' ', offset)); EXPECT_EQ(space_offset + 1, end); LONG length = end - start; - EXPECT_STREQ(text.substr(start, length).c_str(), word.Get()); + EXPECT_EQ(base::ASCIIToWide(text.substr(start, length)), word.Get()); word.Reset(); offset = end; } @@ -1417,7 +1417,7 @@ LONG space_offset = static_cast<LONG>(line1.find(' ', offset)); EXPECT_EQ(space_offset + 1, end); LONG length = end - start; - EXPECT_STREQ(text.substr(start, length).c_str(), word.Get()); + EXPECT_EQ(base::ASCIIToWide(text.substr(start, length)), word.Get()); word.Reset(); offset = end; } @@ -2484,9 +2484,8 @@ EXPECT_EQ(S_OK, hr); EXPECT_EQ(0, start_offset); EXPECT_EQ(1, end_offset); - EXPECT_NE( - base::string16::npos, - base::string16(text_attributes.Get()).find(L"font-family:Helvetica")); + EXPECT_NE(std::wstring::npos, + std::wstring(text_attributes.Get()).find(L"font-family:Helvetica")); text_attributes.Reset(); // Test the style of text_before. @@ -2496,10 +2495,10 @@ EXPECT_EQ(S_OK, hr); EXPECT_EQ(0, start_offset); EXPECT_EQ(7, end_offset); - base::string16 attributes(text_attributes.Get()); - EXPECT_NE(base::string16::npos, attributes.find(L"font-family:Helvetica")); - EXPECT_NE(base::string16::npos, attributes.find(L"font-weight:bold")); - EXPECT_NE(base::string16::npos, attributes.find(L"font-style:italic")); + std::wstring attributes(text_attributes.Get()); + EXPECT_NE(std::wstring::npos, attributes.find(L"font-family:Helvetica")); + EXPECT_NE(std::wstring::npos, attributes.find(L"font-weight:bold")); + EXPECT_NE(std::wstring::npos, attributes.find(L"font-style:italic")); text_attributes.Reset(); } @@ -2509,22 +2508,21 @@ EXPECT_EQ(S_OK, hr); EXPECT_EQ(0, start_offset); EXPECT_EQ(3, end_offset); + EXPECT_NE(std::wstring::npos, + std::wstring(text_attributes.Get()).find(L"font-family:Helvetica")); + EXPECT_EQ(std::wstring::npos, + std::wstring(text_attributes.Get()).find(L"font-weight:")); + EXPECT_EQ(std::wstring::npos, + std::wstring(text_attributes.Get()).find(L"font-style:")); EXPECT_NE( - base::string16::npos, - base::string16(text_attributes.Get()).find(L"font-family:Helvetica")); - EXPECT_EQ(base::string16::npos, - base::string16(text_attributes.Get()).find(L"font-weight:")); - EXPECT_EQ(base::string16::npos, - base::string16(text_attributes.Get()).find(L"font-style:")); - EXPECT_NE(base::string16::npos, base::string16(text_attributes.Get()) - .find(L"text-underline-style:solid")); - EXPECT_EQ( - base::string16::npos, - base::string16(text_attributes.Get()).find(L"text-underline-type:")); + std::wstring::npos, + std::wstring(text_attributes.Get()).find(L"text-underline-style:solid")); + EXPECT_EQ(std::wstring::npos, + std::wstring(text_attributes.Get()).find(L"text-underline-type:")); // For compatibility with Firefox, spelling attributes should also be // propagated to the parent of static text leaves. - EXPECT_NE(base::string16::npos, - base::string16(text_attributes.Get()).find(L"invalid:spelling")); + EXPECT_NE(std::wstring::npos, + std::wstring(text_attributes.Get()).find(L"invalid:spelling")); text_attributes.Reset(); hr = ax_link_text->GetCOM()->get_attributes(2, &start_offset, &end_offset, @@ -2532,20 +2530,19 @@ EXPECT_EQ(S_OK, hr); EXPECT_EQ(0, start_offset); EXPECT_EQ(3, end_offset); + EXPECT_NE(std::wstring::npos, + std::wstring(text_attributes.Get()).find(L"font-family:Helvetica")); + EXPECT_EQ(std::wstring::npos, + std::wstring(text_attributes.Get()).find(L"font-weight:")); + EXPECT_EQ(std::wstring::npos, + std::wstring(text_attributes.Get()).find(L"font-style:")); EXPECT_NE( - base::string16::npos, - base::string16(text_attributes.Get()).find(L"font-family:Helvetica")); - EXPECT_EQ(base::string16::npos, - base::string16(text_attributes.Get()).find(L"font-weight:")); - EXPECT_EQ(base::string16::npos, - base::string16(text_attributes.Get()).find(L"font-style:")); - EXPECT_NE(base::string16::npos, base::string16(text_attributes.Get()) - .find(L"text-underline-style:solid")); - EXPECT_EQ( - base::string16::npos, - base::string16(text_attributes.Get()).find(L"text-underline-type:")); - EXPECT_NE(base::string16::npos, - base::string16(text_attributes.Get()).find(L"invalid:spelling")); + std::wstring::npos, + std::wstring(text_attributes.Get()).find(L"text-underline-style:solid")); + EXPECT_EQ(std::wstring::npos, + std::wstring(text_attributes.Get()).find(L"text-underline-type:")); + EXPECT_NE(std::wstring::npos, + std::wstring(text_attributes.Get()).find(L"invalid:spelling")); text_attributes.Reset(); // Test the style of text_after. @@ -2555,16 +2552,16 @@ EXPECT_EQ(S_OK, hr); EXPECT_EQ(8, start_offset); EXPECT_EQ(15, end_offset); - base::string16 attributes(text_attributes.Get()); - EXPECT_NE(base::string16::npos, attributes.find(L"font-family:Helvetica")); - EXPECT_EQ(base::string16::npos, attributes.find(L"font-weight:")); - EXPECT_EQ(base::string16::npos, attributes.find(L"font-style:")); - EXPECT_EQ(base::string16::npos, base::string16(text_attributes.Get()) - .find(L"text-underline-style:solid")); + std::wstring attributes(text_attributes.Get()); + EXPECT_NE(std::wstring::npos, attributes.find(L"font-family:Helvetica")); + EXPECT_EQ(std::wstring::npos, attributes.find(L"font-weight:")); + EXPECT_EQ(std::wstring::npos, attributes.find(L"font-style:")); + EXPECT_EQ(std::wstring::npos, std::wstring(text_attributes.Get()) + .find(L"text-underline-style:solid")); EXPECT_EQ( - base::string16::npos, - base::string16(text_attributes.Get()).find(L"text-underline-type:")); - EXPECT_EQ(base::string16::npos, attributes.find(L"invalid:spelling")); + std::wstring::npos, + std::wstring(text_attributes.Get()).find(L"text-underline-type:")); + EXPECT_EQ(std::wstring::npos, attributes.find(L"invalid:spelling")); text_attributes.Reset(); } @@ -2574,15 +2571,14 @@ EXPECT_EQ(S_OK, hr); EXPECT_EQ(0, start_offset); EXPECT_EQ(7, end_offset); - EXPECT_NE( - base::string16::npos, - base::string16(text_attributes.Get()).find(L"font-family:Helvetica")); - EXPECT_NE(base::string16::npos, - base::string16(text_attributes.Get()).find(L"font-weight:bold")); - EXPECT_NE(base::string16::npos, - base::string16(text_attributes.Get()).find(L"font-style:italic")); - EXPECT_EQ(base::string16::npos, - base::string16(text_attributes.Get()).find(L"invalid:spelling")); + EXPECT_NE(std::wstring::npos, + std::wstring(text_attributes.Get()).find(L"font-family:Helvetica")); + EXPECT_NE(std::wstring::npos, + std::wstring(text_attributes.Get()).find(L"font-weight:bold")); + EXPECT_NE(std::wstring::npos, + std::wstring(text_attributes.Get()).find(L"font-style:italic")); + EXPECT_EQ(std::wstring::npos, + std::wstring(text_attributes.Get()).find(L"invalid:spelling")); text_attributes.Reset(); hr = ax_after->GetCOM()->get_attributes(6, &start_offset, &end_offset, @@ -2590,21 +2586,18 @@ EXPECT_EQ(S_OK, hr); EXPECT_EQ(0, start_offset); EXPECT_EQ(7, end_offset); - EXPECT_NE( - base::string16::npos, - base::string16(text_attributes.Get()).find(L"font-family:Helvetica")); - EXPECT_EQ(base::string16::npos, - base::string16(text_attributes.Get()).find(L"font-weight:")); - EXPECT_EQ(base::string16::npos, - base::string16(text_attributes.Get()).find(L"font-style:")); - EXPECT_EQ( - base::string16::npos, - base::string16(text_attributes.Get()).find(L"text-underline-style:")); - EXPECT_EQ( - base::string16::npos, - base::string16(text_attributes.Get()).find(L"text-underline-type:")); - EXPECT_EQ(base::string16::npos, - base::string16(text_attributes.Get()).find(L"invalid:spelling")); + EXPECT_NE(std::wstring::npos, + std::wstring(text_attributes.Get()).find(L"font-family:Helvetica")); + EXPECT_EQ(std::wstring::npos, + std::wstring(text_attributes.Get()).find(L"font-weight:")); + EXPECT_EQ(std::wstring::npos, + std::wstring(text_attributes.Get()).find(L"font-style:")); + EXPECT_EQ(std::wstring::npos, + std::wstring(text_attributes.Get()).find(L"text-underline-style:")); + EXPECT_EQ(std::wstring::npos, + std::wstring(text_attributes.Get()).find(L"text-underline-type:")); + EXPECT_EQ(std::wstring::npos, + std::wstring(text_attributes.Get()).find(L"invalid:spelling")); text_attributes.Reset(); manager.reset(); @@ -2692,7 +2685,7 @@ for (LONG offset = 0; offset < value1_length; ++offset) { hr = ax_combo_box->GetCOM()->get_attributes( offset, &start_offset, &end_offset, text_attributes.Receive()); - EXPECT_TRUE(base::string16(text_attributes.Get()).empty()); + EXPECT_TRUE(std::wstring(text_attributes.Get()).empty()); EXPECT_EQ(0, start_offset); EXPECT_EQ(value1_length, end_offset); text_attributes.Reset(); @@ -2705,8 +2698,8 @@ EXPECT_EQ(S_OK, hr); EXPECT_EQ(value1_length, start_offset); EXPECT_EQ(value1_length + 4, end_offset); - EXPECT_NE(base::string16::npos, - base::string16(text_attributes.Get()).find(L"invalid:spelling")); + EXPECT_NE(std::wstring::npos, + std::wstring(text_attributes.Get()).find(L"invalid:spelling")); text_attributes.Reset(); } @@ -2715,7 +2708,7 @@ ++offset) { hr = ax_combo_box->GetCOM()->get_attributes( offset, &start_offset, &end_offset, text_attributes.Receive()); - EXPECT_TRUE(base::string16(text_attributes.Get()).empty()); + EXPECT_TRUE(std::wstring(text_attributes.Get()).empty()); EXPECT_EQ(value1_length + 4, start_offset); EXPECT_EQ(combo_box_value_length, end_offset); text_attributes.Reset(); @@ -2791,7 +2784,7 @@ for (LONG offset = 0; offset < combo_box_value_length; ++offset) { hr = ax_combo_box->GetCOM()->get_attributes( offset, &start_offset, &end_offset, text_attributes.Receive()); - EXPECT_TRUE(base::string16(text_attributes.Get()).empty()); + EXPECT_TRUE(std::wstring(text_attributes.Get()).empty()); EXPECT_EQ(0, start_offset); EXPECT_EQ(combo_box_value_length, end_offset); text_attributes.Reset(); @@ -2816,7 +2809,7 @@ for (LONG offset = 0; offset < value1_length; ++offset) { hr = ax_combo_box->GetCOM()->get_attributes( offset, &start_offset, &end_offset, text_attributes.Receive()); - EXPECT_TRUE(base::string16(text_attributes.Get()).empty()); + EXPECT_TRUE(std::wstring(text_attributes.Get()).empty()); EXPECT_EQ(0, start_offset); EXPECT_EQ(value1_length, end_offset); text_attributes.Reset(); @@ -2829,8 +2822,8 @@ EXPECT_EQ(S_OK, hr); EXPECT_EQ(value1_length, start_offset); EXPECT_EQ(value1_length + 4, end_offset); - EXPECT_NE(base::string16::npos, - base::string16(text_attributes.Get()).find(L"invalid:spelling")); + EXPECT_NE(std::wstring::npos, + std::wstring(text_attributes.Get()).find(L"invalid:spelling")); text_attributes.Reset(); } @@ -2839,7 +2832,7 @@ ++offset) { hr = ax_combo_box->GetCOM()->get_attributes( offset, &start_offset, &end_offset, text_attributes.Receive()); - EXPECT_TRUE(base::string16(text_attributes.Get()).empty()); + EXPECT_TRUE(std::wstring(text_attributes.Get()).empty()); EXPECT_EQ(value1_length + 4, start_offset); EXPECT_EQ(combo_box_value_length, end_offset); text_attributes.Reset(); @@ -3146,7 +3139,7 @@ ax_root->GetCOM()->get_relation(0, &describedby_relation)); EXPECT_HRESULT_SUCCEEDED( describedby_relation->get_relationType(relation_type.Receive())); - EXPECT_EQ(L"describedBy", base::string16(relation_type.Get())); + EXPECT_EQ(L"describedBy", std::wstring(relation_type.Get())); relation_type.Reset(); EXPECT_HRESULT_SUCCEEDED(describedby_relation->get_nTargets(&n_targets)); @@ -3175,7 +3168,7 @@ ax_child1->GetCOM()->get_relation(0, &description_for_relation)); EXPECT_HRESULT_SUCCEEDED( description_for_relation->get_relationType(relation_type.Receive())); - EXPECT_EQ(L"descriptionFor", base::string16(relation_type.Get())); + EXPECT_EQ(L"descriptionFor", std::wstring(relation_type.Get())); relation_type.Reset(); EXPECT_HRESULT_SUCCEEDED(description_for_relation->get_nTargets(&n_targets)); @@ -3196,7 +3189,7 @@ ax_child2->GetCOM()->get_relation(0, &description_for_relation)); EXPECT_HRESULT_SUCCEEDED( description_for_relation->get_relationType(relation_type.Receive())); - EXPECT_EQ(L"descriptionFor", base::string16(relation_type.Get())); + EXPECT_EQ(L"descriptionFor", std::wstring(relation_type.Get())); relation_type.Reset(); EXPECT_HRESULT_SUCCEEDED(description_for_relation->get_nTargets(&n_targets));
diff --git a/content/browser/accessibility/dump_accessibility_tree_browsertest.cc b/content/browser/accessibility/dump_accessibility_tree_browsertest.cc index 753cc92..79a40ed 100644 --- a/content/browser/accessibility/dump_accessibility_tree_browsertest.cc +++ b/content/browser/accessibility/dump_accessibility_tree_browsertest.cc
@@ -281,6 +281,11 @@ DumpAccessibilityTestHelper::TestPasses().size()), DumpAccessibilityTreeTestPassToString()); +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, + AccessibilityCSSBeforeAfterBlock) { + RunCSSTest(FILE_PATH_LITERAL("before-after-block.html")); +} + IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityCSSColor) { RunCSSTest(FILE_PATH_LITERAL("color.html")); } @@ -295,6 +300,11 @@ RunCSSTest(FILE_PATH_LITERAL("content-visibility-hidden-check-failure.html")); } +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, + AccessibilityCSSContentVisibilityToHidden) { + RunCSSTest(FILE_PATH_LITERAL("content-visibility-to-hidden.html")); +} + IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityCSSFontStyle) { RunCSSTest(FILE_PATH_LITERAL("font-style.html")); }
diff --git a/content/browser/background_sync/background_sync_manager.cc b/content/browser/background_sync/background_sync_manager.cc index 2b33846..3d6b2d1 100644 --- a/content/browser/background_sync/background_sync_manager.cc +++ b/content/browser/background_sync/background_sync_manager.cc
@@ -22,7 +22,6 @@ #include "content/browser/background_sync/background_sync_network_observer.h" #include "content/browser/service_worker/embedded_worker_status.h" #include "content/browser/service_worker/service_worker_context_wrapper.h" -#include "content/browser/service_worker/service_worker_storage.h" #include "content/browser/storage_partition_impl.h" #include "content/common/service_worker/service_worker_utils.h" #include "content/public/browser/background_sync_controller.h"
diff --git a/content/browser/background_sync/background_sync_manager_unittest.cc b/content/browser/background_sync/background_sync_manager_unittest.cc index 4cbefce3..b730a9c 100644 --- a/content/browser/background_sync/background_sync_manager_unittest.cc +++ b/content/browser/background_sync/background_sync_manager_unittest.cc
@@ -33,7 +33,6 @@ #include "content/browser/service_worker/service_worker_context_core.h" #include "content/browser/service_worker/service_worker_context_wrapper.h" #include "content/browser/service_worker/service_worker_registration_object_host.h" -#include "content/browser/service_worker/service_worker_storage.h" #include "content/browser/storage_partition_impl.h" #include "content/public/browser/background_sync_parameters.h" #include "content/public/browser/permission_type.h"
diff --git a/content/browser/notifications/notification_event_dispatcher_impl.cc b/content/browser/notifications/notification_event_dispatcher_impl.cc index d5ba6897..2e419f9 100644 --- a/content/browser/notifications/notification_event_dispatcher_impl.cc +++ b/content/browser/notifications/notification_event_dispatcher_impl.cc
@@ -13,7 +13,6 @@ #include "content/browser/notifications/platform_notification_context_impl.h" #include "content/browser/service_worker/service_worker_context_wrapper.h" #include "content/browser/service_worker/service_worker_registration.h" -#include "content/browser/service_worker/service_worker_storage.h" #include "content/public/browser/browser_context.h" #include "content/public/browser/browser_task_traits.h" #include "content/public/browser/browser_thread.h"
diff --git a/content/browser/push_messaging/push_messaging_manager.cc b/content/browser/push_messaging/push_messaging_manager.cc index 02346d61..d39de525 100644 --- a/content/browser/push_messaging/push_messaging_manager.cc +++ b/content/browser/push_messaging/push_messaging_manager.cc
@@ -23,7 +23,6 @@ #include "content/browser/renderer_host/render_process_host_impl.h" #include "content/browser/service_worker/service_worker_context_core.h" #include "content/browser/service_worker/service_worker_context_wrapper.h" -#include "content/browser/service_worker/service_worker_storage.h" #include "content/public/browser/browser_context.h" #include "content/public/browser/browser_task_traits.h" #include "content/public/browser/permission_type.h"
diff --git a/content/browser/push_messaging/push_messaging_router.cc b/content/browser/push_messaging/push_messaging_router.cc index 6ec8a300..9f6b604a 100644 --- a/content/browser/push_messaging/push_messaging_router.cc +++ b/content/browser/push_messaging/push_messaging_router.cc
@@ -12,7 +12,6 @@ #include "content/browser/devtools/devtools_background_services_context_impl.h" #include "content/browser/service_worker/service_worker_context_wrapper.h" #include "content/browser/service_worker/service_worker_registration.h" -#include "content/browser/service_worker/service_worker_storage.h" #include "content/browser/storage_partition_impl.h" #include "content/public/browser/browser_context.h" #include "content/public/browser/browser_task_traits.h"
diff --git a/content/browser/renderer_host/dwrite_font_proxy_impl_win_unittest.cc b/content/browser/renderer_host/dwrite_font_proxy_impl_win_unittest.cc index fa5c3fb..a409f766 100644 --- a/content/browser/renderer_host/dwrite_font_proxy_impl_win_unittest.cc +++ b/content/browser/renderer_host/dwrite_font_proxy_impl_win_unittest.cc
@@ -126,22 +126,24 @@ TEST_F(DWriteFontProxyImplUnitTest, FindFamily) { UINT32 arial_index = 0; - dwrite_font_proxy().FindFamily(L"Arial", &arial_index); + dwrite_font_proxy().FindFamily(STRING16_LITERAL("Arial"), &arial_index); EXPECT_NE(UINT_MAX, arial_index); UINT32 times_index = 0; - dwrite_font_proxy().FindFamily(L"Times New Roman", ×_index); + dwrite_font_proxy().FindFamily(STRING16_LITERAL("Times New Roman"), + ×_index); EXPECT_NE(UINT_MAX, times_index); EXPECT_NE(arial_index, times_index); UINT32 unknown_index = 0; - dwrite_font_proxy().FindFamily(L"Not a font family", &unknown_index); + dwrite_font_proxy().FindFamily(STRING16_LITERAL("Not a font family"), + &unknown_index); EXPECT_EQ(UINT_MAX, unknown_index); } TEST_F(DWriteFontProxyImplUnitTest, GetFamilyNames) { UINT32 arial_index = 0; - dwrite_font_proxy().FindFamily(L"Arial", &arial_index); + dwrite_font_proxy().FindFamily(STRING16_LITERAL("Arial"), &arial_index); std::vector<blink::mojom::DWriteStringPairPtr> names; dwrite_font_proxy().GetFamilyNames(arial_index, &names); @@ -163,7 +165,7 @@ TEST_F(DWriteFontProxyImplUnitTest, GetFontFiles) { UINT32 arial_index = 0; - dwrite_font_proxy().FindFamily(L"Arial", &arial_index); + dwrite_font_proxy().FindFamily(STRING16_LITERAL("Arial"), &arial_index); std::vector<base::FilePath> files; std::vector<base::File> handles; @@ -190,14 +192,15 @@ blink::mojom::MapCharactersResultPtr result; dwrite_font_proxy().MapCharacters( - L"abc", + STRING16_LITERAL("abc"), blink::mojom::DWriteFontStyle::New(DWRITE_FONT_WEIGHT_NORMAL, DWRITE_FONT_STYLE_NORMAL, DWRITE_FONT_STRETCH_NORMAL), - L"", DWRITE_READING_DIRECTION_LEFT_TO_RIGHT, L"", &result); + base::string16(), DWRITE_READING_DIRECTION_LEFT_TO_RIGHT, + base::string16(), &result); EXPECT_NE(UINT32_MAX, result->family_index); - EXPECT_STRNE(L"", result->family_name.c_str()); + EXPECT_NE(base::string16(), result->family_name); EXPECT_EQ(3u, result->mapped_length); EXPECT_NE(0.0, result->scale); EXPECT_NE(0, result->font_style->font_weight); @@ -211,14 +214,15 @@ blink::mojom::MapCharactersResultPtr result; dwrite_font_proxy().MapCharacters( - L"\ufffe\uffffabc", + STRING16_LITERAL("\ufffe\uffffabc"), blink::mojom::DWriteFontStyle::New(DWRITE_FONT_WEIGHT_NORMAL, DWRITE_FONT_STYLE_NORMAL, DWRITE_FONT_STRETCH_NORMAL), - L"en-us", DWRITE_READING_DIRECTION_LEFT_TO_RIGHT, L"", &result); + STRING16_LITERAL("en-us"), DWRITE_READING_DIRECTION_LEFT_TO_RIGHT, + base::string16(), &result); EXPECT_EQ(UINT32_MAX, result->family_index); - EXPECT_STREQ(L"", result->family_name.c_str()); + EXPECT_EQ(base::string16(), result->family_name); EXPECT_EQ(2u, result->mapped_length); } @@ -228,14 +232,15 @@ blink::mojom::MapCharactersResultPtr result; dwrite_font_proxy().MapCharacters( - L"abc\ufffe\uffff", + STRING16_LITERAL("abc\ufffe\uffff"), blink::mojom::DWriteFontStyle::New(DWRITE_FONT_WEIGHT_NORMAL, DWRITE_FONT_STYLE_NORMAL, DWRITE_FONT_STRETCH_NORMAL), - L"en-us", DWRITE_READING_DIRECTION_LEFT_TO_RIGHT, L"", &result); + STRING16_LITERAL("en-us"), DWRITE_READING_DIRECTION_LEFT_TO_RIGHT, + base::string16(), &result); EXPECT_NE(UINT32_MAX, result->family_index); - EXPECT_STRNE(L"", result->family_name.c_str()); + EXPECT_NE(base::string16(), result->family_name); EXPECT_EQ(3u, result->mapped_length); EXPECT_NE(0.0, result->scale); EXPECT_NE(0, result->font_style->font_weight); @@ -245,10 +250,10 @@ TEST_F(DWriteFontProxyImplUnitTest, TestCustomFontFiles) { // Override windows fonts path to force the custom font file codepath. - impl_.SetWindowsFontsPathForTesting(L"X:\\NotWindowsFonts"); + impl_.SetWindowsFontsPathForTesting(STRING16_LITERAL("X:\\NotWindowsFonts")); UINT32 arial_index = 0; - dwrite_font_proxy().FindFamily(L"Arial", &arial_index); + dwrite_font_proxy().FindFamily(STRING16_LITERAL("Arial"), &arial_index); std::vector<base::FilePath> files; std::vector<base::File> handles; @@ -365,7 +370,7 @@ base::FilePath(FILE_PATH_LITERAL("DWrite.dll"))); std::string dwrite_version = - base::WideToUTF8(dwrite_version_info->product_version()); + base::UTF16ToUTF8(dwrite_version_info->product_version()); int dwrite_major_version_number = std::stoi(dwrite_version.substr(0, dwrite_version.find(".")));
diff --git a/content/browser/service_worker/service_worker_context_core.h b/content/browser/service_worker/service_worker_context_core.h index 90ea32b..9f2e8499 100644 --- a/content/browser/service_worker/service_worker_context_core.h +++ b/content/browser/service_worker/service_worker_context_core.h
@@ -24,7 +24,6 @@ #include "content/browser/service_worker/service_worker_process_manager.h" #include "content/browser/service_worker/service_worker_registration_status.h" #include "content/browser/service_worker/service_worker_registry.h" -#include "content/browser/service_worker/service_worker_storage.h" #include "content/common/content_export.h" #include "content/public/browser/global_routing_id.h" #include "content/public/browser/service_worker_context.h"
diff --git a/content/browser/service_worker/service_worker_context_unittest.cc b/content/browser/service_worker/service_worker_context_unittest.cc index 87c3389..b083fb8 100644 --- a/content/browser/service_worker/service_worker_context_unittest.cc +++ b/content/browser/service_worker/service_worker_context_unittest.cc
@@ -20,7 +20,6 @@ #include "content/browser/service_worker/service_worker_host.h" #include "content/browser/service_worker/service_worker_metrics.h" #include "content/browser/service_worker/service_worker_registration.h" -#include "content/browser/service_worker/service_worker_storage.h" #include "content/browser/service_worker/service_worker_test_utils.h" #include "content/browser/service_worker/service_worker_version.h" #include "content/public/browser/service_worker_context_observer.h"
diff --git a/content/browser/service_worker/service_worker_installed_scripts_sender.cc b/content/browser/service_worker/service_worker_installed_scripts_sender.cc index 6a5e8a1f..ef01e645 100644 --- a/content/browser/service_worker/service_worker_installed_scripts_sender.cc +++ b/content/browser/service_worker/service_worker_installed_scripts_sender.cc
@@ -9,7 +9,6 @@ #include "content/browser/service_worker/service_worker_consts.h" #include "content/browser/service_worker/service_worker_context_core.h" #include "content/browser/service_worker/service_worker_script_cache_map.h" -#include "content/browser/service_worker/service_worker_storage.h" namespace content {
diff --git a/content/browser/service_worker/service_worker_new_script_loader.cc b/content/browser/service_worker/service_worker_new_script_loader.cc index 8e4caf66..c020e6b 100644 --- a/content/browser/service_worker/service_worker_new_script_loader.cc +++ b/content/browser/service_worker/service_worker_new_script_loader.cc
@@ -14,7 +14,6 @@ #include "content/browser/service_worker/service_worker_consts.h" #include "content/browser/service_worker/service_worker_context_core.h" #include "content/browser/service_worker/service_worker_loader_helpers.h" -#include "content/browser/service_worker/service_worker_storage.h" #include "content/browser/service_worker/service_worker_version.h" #include "content/browser/url_loader_factory_getter.h" #include "content/common/service_worker/service_worker_utils.h"
diff --git a/content/browser/service_worker/service_worker_registry.cc b/content/browser/service_worker/service_worker_registry.cc index 592b80d..3bcc8e7 100644 --- a/content/browser/service_worker/service_worker_registry.cc +++ b/content/browser/service_worker/service_worker_registry.cc
@@ -1324,7 +1324,7 @@ uint64_t call_id, storage::mojom::ServiceWorkerDatabaseStatus database_status, uint64_t deleted_resources_size, - ServiceWorkerStorage::OriginState origin_state) { + storage::mojom::ServiceWorkerStorageOriginState origin_state) { DCHECK_CURRENTLY_ON(BrowserThread::UI); FinishRemoteCall(call_id); blink::ServiceWorkerStatusCode status = @@ -1349,7 +1349,8 @@ if (registration) registration->UnsetStored(); - if (origin_state == ServiceWorkerStorage::OriginState::kDelete) { + if (origin_state == + storage::mojom::ServiceWorkerStorageOriginState::kDelete) { context_->NotifyAllRegistrationsDeletedForOrigin( url::Origin::Create(origin)); if (special_storage_policy_) {
diff --git a/content/browser/service_worker/service_worker_registry.h b/content/browser/service_worker/service_worker_registry.h index cc859a77..c631eba 100644 --- a/content/browser/service_worker/service_worker_registry.h +++ b/content/browser/service_worker/service_worker_registry.h
@@ -11,9 +11,8 @@ #include "base/files/file_path.h" #include "base/memory/scoped_refptr.h" #include "base/threading/sequence_bound.h" -#include "content/browser/service_worker/service_worker_database.h" +#include "components/services/storage/public/mojom/service_worker_storage_control.mojom.h" #include "content/browser/service_worker/service_worker_registration.h" -#include "content/browser/service_worker/service_worker_storage.h" #include "content/common/content_export.h" #include "mojo/public/cpp/bindings/remote.h" @@ -52,8 +51,10 @@ // connection should be closed before shutdown. class CONTENT_EXPORT ServiceWorkerRegistry { public: - using ResourceList = ServiceWorkerStorage::ResourceList; - using RegistrationList = ServiceWorkerStorage::RegistrationList; + using ResourceList = + std::vector<storage::mojom::ServiceWorkerResourceRecordPtr>; + using RegistrationList = + std::vector<storage::mojom::ServiceWorkerRegistrationDataPtr>; using FindRegistrationCallback = base::OnceCallback<void( blink::ServiceWorkerStatusCode status, scoped_refptr<ServiceWorkerRegistration> registration)>; @@ -347,7 +348,7 @@ uint64_t call_id, storage::mojom::ServiceWorkerDatabaseStatus database_status, uint64_t deleted_resources_size, - ServiceWorkerStorage::OriginState origin_state); + storage::mojom::ServiceWorkerStorageOriginState origin_state); void DidUpdateRegistration( StatusCallback callback,
diff --git a/content/browser/service_worker/service_worker_registry_unittest.cc b/content/browser/service_worker/service_worker_registry_unittest.cc index c4a7a85..34174a0 100644 --- a/content/browser/service_worker/service_worker_registry_unittest.cc +++ b/content/browser/service_worker/service_worker_registry_unittest.cc
@@ -510,9 +510,10 @@ base::RunLoop loop; storage_control()->GetPurgeableResourceIdsForTest( base::BindLambdaForTesting( - [&](ServiceWorkerDatabase::Status status, + [&](storage::mojom::ServiceWorkerDatabaseStatus status, const std::vector<int64_t>& resource_ids) { - EXPECT_EQ(status, ServiceWorkerDatabase::Status::kOk); + EXPECT_EQ(status, + storage::mojom::ServiceWorkerDatabaseStatus::kOk); ids = resource_ids; loop.Quit(); })); @@ -524,9 +525,9 @@ std::vector<int64_t> ids; base::RunLoop loop; storage_control()->GetPurgingResourceIdsForTest(base::BindLambdaForTesting( - [&](ServiceWorkerDatabase::Status status, + [&](storage::mojom::ServiceWorkerDatabaseStatus status, const std::vector<int64_t>& resource_ids) { - EXPECT_EQ(status, ServiceWorkerDatabase::Status::kOk); + EXPECT_EQ(status, storage::mojom::ServiceWorkerDatabaseStatus::kOk); ids = resource_ids; loop.Quit(); })); @@ -2157,9 +2158,10 @@ base::RunLoop loop; storage_control()->GetUncommittedResourceIdsForTest( base::BindLambdaForTesting( - [&](ServiceWorkerDatabase::Status status, + [&](storage::mojom::ServiceWorkerDatabaseStatus status, const std::vector<int64_t>& resource_ids) { - EXPECT_EQ(status, ServiceWorkerDatabase::Status::kOk); + EXPECT_EQ(status, + storage::mojom::ServiceWorkerDatabaseStatus::kOk); ids = resource_ids; loop.Quit(); }));
diff --git a/content/browser/service_worker/service_worker_script_cache_map.h b/content/browser/service_worker/service_worker_script_cache_map.h index c7b570a..9da028b 100644 --- a/content/browser/service_worker/service_worker_script_cache_map.h +++ b/content/browser/service_worker/service_worker_script_cache_map.h
@@ -15,7 +15,6 @@ #include "base/macros.h" #include "base/memory/weak_ptr.h" #include "components/services/storage/public/mojom/service_worker_storage_control.mojom.h" -#include "content/browser/service_worker/service_worker_database.h" #include "content/common/content_export.h" #include "mojo/public/cpp/bindings/remote.h" #include "net/base/completion_once_callback.h"
diff --git a/content/browser/service_worker/service_worker_test_utils.cc b/content/browser/service_worker/service_worker_test_utils.cc index 58d3220..3780586 100644 --- a/content/browser/service_worker/service_worker_test_utils.cc +++ b/content/browser/service_worker/service_worker_test_utils.cc
@@ -19,10 +19,8 @@ #include "content/browser/service_worker/service_worker_consts.h" #include "content/browser/service_worker/service_worker_container_host.h" #include "content/browser/service_worker/service_worker_context_core.h" -#include "content/browser/service_worker/service_worker_database.h" #include "content/browser/service_worker/service_worker_host.h" #include "content/browser/service_worker/service_worker_registration.h" -#include "content/browser/service_worker/service_worker_storage.h" #include "content/common/frame.mojom.h" #include "content/common/frame_messages.h" #include "content/common/frame_messages.mojom.h"
diff --git a/content/browser/service_worker/service_worker_test_utils.h b/content/browser/service_worker/service_worker_test_utils.h index ce43825a7f..29d4aa3 100644 --- a/content/browser/service_worker/service_worker_test_utils.h +++ b/content/browser/service_worker/service_worker_test_utils.h
@@ -15,7 +15,6 @@ #include "base/task/post_task.h" #include "components/services/storage/public/mojom/service_worker_storage_control.mojom.h" #include "content/browser/service_worker/service_worker_cache_writer.h" -#include "content/browser/service_worker/service_worker_database.h" #include "content/browser/service_worker/service_worker_host.h" #include "content/browser/service_worker/service_worker_single_script_update_checker.h" #include "content/common/navigation_client.mojom.h"
diff --git a/content/browser/service_worker/service_worker_unregister_job.cc b/content/browser/service_worker/service_worker_unregister_job.cc index 951db17..4a92247 100644 --- a/content/browser/service_worker/service_worker_unregister_job.cc +++ b/content/browser/service_worker/service_worker_unregister_job.cc
@@ -11,7 +11,6 @@ #include "content/browser/service_worker/service_worker_context_core.h" #include "content/browser/service_worker/service_worker_job_coordinator.h" #include "content/browser/service_worker/service_worker_registration.h" -#include "content/browser/service_worker/service_worker_storage.h" #include "content/browser/service_worker/service_worker_version.h" #include "content/common/service_worker/service_worker_utils.h" #include "third_party/blink/public/mojom/service_worker/service_worker_registration.mojom.h"
diff --git a/content/browser/service_worker/service_worker_update_checker.cc b/content/browser/service_worker/service_worker_update_checker.cc index 74c77dc..6e8e9f8 100644 --- a/content/browser/service_worker/service_worker_update_checker.cc +++ b/content/browser/service_worker/service_worker_update_checker.cc
@@ -13,7 +13,6 @@ #include "content/browser/service_worker/service_worker_consts.h" #include "content/browser/service_worker/service_worker_context_core.h" #include "content/browser/service_worker/service_worker_context_wrapper.h" -#include "content/browser/service_worker/service_worker_storage.h" #include "content/browser/service_worker/service_worker_version.h" #include "content/browser/storage_partition_impl.h" #include "content/public/browser/browser_task_traits.h"
diff --git a/content/browser/service_worker/service_worker_update_checker.h b/content/browser/service_worker/service_worker_update_checker.h index f356ca6d..b35124e 100644 --- a/content/browser/service_worker/service_worker_update_checker.h +++ b/content/browser/service_worker/service_worker_update_checker.h
@@ -10,7 +10,6 @@ #include <vector> #include "base/callback.h" -#include "content/browser/service_worker/service_worker_database.h" #include "content/browser/service_worker/service_worker_single_script_update_checker.h" #include "content/browser/service_worker/service_worker_updated_script_loader.h"
diff --git a/content/browser/web_contents/web_contents_view_aura_unittest.cc b/content/browser/web_contents/web_contents_view_aura_unittest.cc index 66a21888..b33e58b 100644 --- a/content/browser/web_contents/web_contents_view_aura_unittest.cc +++ b/content/browser/web_contents/web_contents_view_aura_unittest.cc
@@ -549,7 +549,7 @@ std::vector<ui::FileInfo> file_infos; EXPECT_TRUE(data->GetVirtualFilenames(&file_infos)); ASSERT_EQ(1ULL, file_infos.size()); - EXPECT_EQ(base::FilePath(url_title + base::ASCIIToUTF16(".url")), + EXPECT_EQ(base::FilePath(base::UTF16ToWide(url_title) + L".url"), file_infos[0].display_name); ui::DropTargetEvent event(*data.get(), kClientPt, kScreenPt,
diff --git a/content/child/dwrite_font_proxy/dwrite_font_proxy_win_unittest.cc b/content/child/dwrite_font_proxy/dwrite_font_proxy_win_unittest.cc index a51415f..1a84c5f 100644 --- a/content/child/dwrite_font_proxy/dwrite_font_proxy_win_unittest.cc +++ b/content/child/dwrite_font_proxy/dwrite_font_proxy_win_unittest.cc
@@ -38,16 +38,18 @@ } static void SetupFonts(FakeFontCollection* fonts) { - fonts->AddFont(L"Aardvark") - .AddFamilyName(L"en-us", L"Aardvark") - .AddFamilyName(L"de-de", L"Erdferkel") + fonts->AddFont(STRING16_LITERAL("Aardvark")) + .AddFamilyName(STRING16_LITERAL("en-us"), STRING16_LITERAL("Aardvark")) + .AddFamilyName(STRING16_LITERAL("de-de"), STRING16_LITERAL("Erdferkel")) .AddFilePath(base::FilePath(L"X:\\Nonexistent\\Folder\\Aardvark.ttf")); - FakeFont& arial = - fonts->AddFont(L"Arial").AddFamilyName(L"en-us", L"Arial"); + FakeFont& arial = fonts->AddFont(STRING16_LITERAL("Arial")) + .AddFamilyName(STRING16_LITERAL("en-us"), + STRING16_LITERAL("Arial")); for (auto& path : arial_font_files) arial.AddFilePath(base::FilePath(path)); - fonts->AddFont(L"Times New Roman") - .AddFamilyName(L"en-us", L"Times New Roman") + fonts->AddFont(STRING16_LITERAL("Times New Roman")) + .AddFamilyName(STRING16_LITERAL("en-us"), + STRING16_LITERAL("Times New Roman")) .AddFilePath(base::FilePath(L"X:\\Nonexistent\\Folder\\Times.ttf")); } @@ -55,13 +57,13 @@ DWriteCreateFactory(DWRITE_FACTORY_TYPE_SHARED, __uuidof(IDWriteFactory), &factory); - std::vector<base::char16> font_path; + std::vector<wchar_t> font_path; font_path.resize(MAX_PATH); SHGetSpecialFolderPath(nullptr /* hwndOwner - reserved */, font_path.data(), CSIDL_FONTS, FALSE /* fCreate*/); - base::string16 arial; + std::wstring arial; arial.append(font_path.data()).append(L"\\arial.ttf"); - base::string16 arialbd; + std::wstring arialbd; arialbd.append(font_path.data()).append(L"\\arialbd.ttf"); arial_font_files.push_back(arial); arial_font_files.push_back(arialbd); @@ -72,10 +74,10 @@ std::unique_ptr<FakeFontCollection> fake_collection_; mswr::ComPtr<DWriteFontCollectionProxy> collection_; - static std::vector<base::string16> arial_font_files; + static std::vector<std::wstring> arial_font_files; static mswr::ComPtr<IDWriteFactory> factory; }; -std::vector<base::string16> DWriteFontProxyUnitTest::arial_font_files; +std::vector<std::wstring> DWriteFontProxyUnitTest::arial_font_files; mswr::ComPtr<IDWriteFactory> DWriteFontProxyUnitTest::factory; TEST_F(DWriteFontProxyUnitTest, GetFontFamilyCount) { @@ -155,8 +157,8 @@ EXPECT_NE(nullptr, family.Get()); } -void CheckLocale(const base::string16& locale_name, - const base::string16& expected_value, +void CheckLocale(const std::wstring& locale_name, + const std::wstring& expected_value, IDWriteLocalizedStrings* strings) { UINT32 locale_index = 0; BOOL locale_exists = FALSE; @@ -166,7 +168,7 @@ UINT32 name_length = 0; strings->GetLocaleNameLength(locale_index, &name_length); EXPECT_EQ(locale_name.size(), name_length); - base::string16 actual_name; + std::wstring actual_name; name_length++; actual_name.resize(name_length); strings->GetLocaleName(locale_index, const_cast<WCHAR*>(actual_name.data()), @@ -176,7 +178,7 @@ UINT32 string_length = 0; strings->GetStringLength(locale_index, &string_length); EXPECT_EQ(expected_value.size(), string_length); - base::string16 actual_value; + std::wstring actual_value; string_length++; actual_value.resize(string_length); strings->GetString(locale_index, const_cast<WCHAR*>(actual_value.data()), @@ -214,7 +216,7 @@ CheckLocale(L"en-us", L"Aardvark", names.Get()); CheckLocale(L"de-de", L"Erdferkel", names.Get()); - base::string16 unused; + std::wstring unused; unused.resize(25); hr = names->GetLocaleName(15234, const_cast<WCHAR*>(unused.data()), unused.size() - 1); @@ -335,7 +337,9 @@ TEST_F(DWriteFontProxyUnitTest, TestCustomFontFiles) { FakeFontCollection fonts; - FakeFont& arial = fonts.AddFont(L"Arial").AddFamilyName(L"en-us", L"Arial"); + FakeFont& arial = + fonts.AddFont(STRING16_LITERAL("Arial")) + .AddFamilyName(STRING16_LITERAL("en-us"), STRING16_LITERAL("Arial")); for (auto& path : arial_font_files) { base::File file(base::FilePath(path), base::File::FLAG_OPEN | base::File::FLAG_READ |
diff --git a/content/child/dwrite_font_proxy/font_fallback_win_unittest.cc b/content/child/dwrite_font_proxy/font_fallback_win_unittest.cc index 6a50dc52..2fcbe9b 100644 --- a/content/child/dwrite_font_proxy/font_fallback_win_unittest.cc +++ b/content/child/dwrite_font_proxy/font_fallback_win_unittest.cc
@@ -34,16 +34,17 @@ L"en-us", true /* ignoreUserOverride */, &number_substitution_); - std::vector<base::char16> font_path; + std::vector<wchar_t> font_path; font_path.resize(MAX_PATH); SHGetSpecialFolderPath(nullptr /* hwndOwner - reserved */, font_path.data(), CSIDL_FONTS, FALSE /* fCreate*/); - base::FilePath segoe_path = base::FilePath(base::string16(font_path.data())) + base::FilePath segoe_path = base::FilePath(std::wstring(font_path.data())) .Append(L"\\seguisym.ttf"); fake_collection_ = std::make_unique<FakeFontCollection>(); - fake_collection_->AddFont(L"Segoe UI Symbol") - .AddFamilyName(L"en-us", L"Segoe UI Symbol") + fake_collection_->AddFont(STRING16_LITERAL("Segoe UI Symbol")) + .AddFamilyName(STRING16_LITERAL("en-us"), + STRING16_LITERAL("Segoe UI Symbol")) .AddFilePath(segoe_path); DWriteFontCollectionProxy::Create(&collection_, factory_.Get(),
diff --git a/content/child/font_warmup_win_unittest.cc b/content/child/font_warmup_win_unittest.cc index 48a47b80..af27ca4 100644 --- a/content/child/font_warmup_win_unittest.cc +++ b/content/child/font_warmup_win_unittest.cc
@@ -63,9 +63,10 @@ EXPECT_TRUE(base::PathService::Get(content::DIR_TEST_DATA, &data_path)); base::FilePath gdi_path = data_path.AppendASCII("font/gdi_test.ttf"); - fonts->AddFont(L"GDITest") - .AddFamilyName(L"en-us", L"GDITest") - .AddFamilyName(L"de-de", L"GDIUntersuchung") + fonts->AddFont(STRING16_LITERAL("GDITest")) + .AddFamilyName(STRING16_LITERAL("en-us"), STRING16_LITERAL("GDITest")) + .AddFamilyName(STRING16_LITERAL("de-de"), + STRING16_LITERAL("GDIUntersuchung")) .AddFilePath(gdi_path); }
diff --git a/content/public/android/java/src/org/chromium/content/browser/remoteobjects/RemoteObjectImpl.java b/content/public/android/java/src/org/chromium/content/browser/remoteobjects/RemoteObjectImpl.java index 9d6dfa0a..16a5d259 100644 --- a/content/public/android/java/src/org/chromium/content/browser/remoteobjects/RemoteObjectImpl.java +++ b/content/public/android/java/src/org/chromium/content/browser/remoteobjects/RemoteObjectImpl.java
@@ -201,7 +201,13 @@ Class<?>[] parameterTypes = method.getParameterTypes(); Object[] args = new Object[numArguments]; for (int i = 0; i < numArguments; i++) { - args[i] = convertArgument(arguments[i], parameterTypes[i], StringCoercionMode.COERCE); + try { + args[i] = convertArgument(arguments[i], parameterTypes[i], + StringCoercionMode.COERCE, objectIdAllocator); + } catch (IllegalArgumentException e) { + callback.call(makeErrorResult(RemoteInvocationError.NON_ASSIGNABLE_TYPES)); + return; + } } Object result = null; @@ -482,7 +488,7 @@ } private static Object convertArgument(RemoteInvocationArgument argument, Class<?> parameterType, - @StringCoercionMode int stringCoercionMode) { + @StringCoercionMode int stringCoercionMode, ObjectIdAllocator objectIdAllocator) { switch (argument.which()) { case RemoteInvocationArgument.Tag.NumberValue: // See http://jdk6.java.net/plugin2/liveconnect/#JS_NUMBER_VALUES. @@ -599,8 +605,8 @@ Object result = Array.newInstance(componentType, arrayValue.length); for (int i = 0; i < arrayValue.length; i++) { - Object element = convertArgument( - arrayValue[i], componentType, StringCoercionMode.DO_NOT_COERCE); + Object element = convertArgument(arrayValue[i], componentType, + StringCoercionMode.DO_NOT_COERCE, objectIdAllocator); Array.set(result, i, element); } return result; @@ -670,6 +676,28 @@ // raising a JavaScript exception. return null; } + case RemoteInvocationArgument.Tag.ObjectIdValue: + if (parameterType == String.class) { + return stringCoercionMode == StringCoercionMode.COERCE ? "undefined" : null; + } else if (parameterType.isPrimitive()) { + return getPrimitiveZero(parameterType); + } else if (parameterType.isArray()) { + // LIVECONNECT_COMPLIANCE: Existing behavior is to convert to null. Spec + // requires raising a JavaScript exception. + return null; + } + + Object object = objectIdAllocator.getObjectById(argument.getObjectIdValue()); + if (object == null) { + // LIVECONNECT_COMPLIANCE: Existing behavior is to pass null. Spec + // requires converting if the target type is + // netscape.javascript.JSObject, otherwise raising a JavaScript + // exception. + return null; + } + if (parameterType.isInstance(object)) return object; + + throw new IllegalArgumentException("incompatible argument type with object id"); default: throw new RuntimeException("invalid wire argument type"); }
diff --git a/content/public/android/javatests/src/org/chromium/content/browser/JavaBridgeBasicsTest.java b/content/public/android/javatests/src/org/chromium/content/browser/JavaBridgeBasicsTest.java index 300fa07..5cf72fb 100644 --- a/content/public/android/javatests/src/org/chromium/content/browser/JavaBridgeBasicsTest.java +++ b/content/public/android/javatests/src/org/chromium/content/browser/JavaBridgeBasicsTest.java
@@ -784,15 +784,13 @@ @Test @SmallTest @Feature({"AndroidWebView", "Android-JavaBridge"}) - @UseMethodParameter(JavaBridgeActivityTestRule.LegacyTestParams.class) + @UseMethodParameter(JavaBridgeActivityTestRule.MojoTestParams.class) public void testReflectPublicMethod(boolean useMojo) throws Throwable { mActivityTestRule.injectObjectAndReload(new Object() { - @JavascriptInterface public Class<?> myGetClass() { return getClass(); } - @JavascriptInterface public String method() { return "foo"; } @@ -806,10 +804,9 @@ @Test @SmallTest @Feature({"AndroidWebView", "Android-JavaBridge"}) - @UseMethodParameter(JavaBridgeActivityTestRule.LegacyTestParams.class) + @UseMethodParameter(JavaBridgeActivityTestRule.MojoTestParams.class) public void testReflectPublicField(boolean useMojo) throws Throwable { mActivityTestRule.injectObjectAndReload(new Object() { - @JavascriptInterface public Class<?> myGetClass() { return getClass(); }
diff --git a/content/public/android/javatests/src/org/chromium/content/browser/JavaBridgeCoercionTest.java b/content/public/android/javatests/src/org/chromium/content/browser/JavaBridgeCoercionTest.java index 28832071550..89bf296 100644 --- a/content/public/android/javatests/src/org/chromium/content/browser/JavaBridgeCoercionTest.java +++ b/content/public/android/javatests/src/org/chromium/content/browser/JavaBridgeCoercionTest.java
@@ -621,7 +621,7 @@ @Test @SmallTest @Feature({"AndroidWebView", "Android-JavaBridge"}) - @UseMethodParameter(JavaBridgeActivityTestRule.LegacyTestParams.class) + @UseMethodParameter(JavaBridgeActivityTestRule.MojoTestParams.class) public void testPassJavaObject(boolean useMojo) throws Throwable { mActivityTestRule.executeJavaScript( "testObject.setObjectValue(testObject.getObjectInstance());"); @@ -701,7 +701,7 @@ @Test @SmallTest @Feature({"AndroidWebView", "Android-JavaBridge"}) - @UseMethodParameter(JavaBridgeActivityTestRule.LegacyTestParams.class) + @UseMethodParameter(JavaBridgeActivityTestRule.MojoTestParams.class) public void testPassJavaObjectFromCustomClassLoader(boolean useMojo) throws Throwable { // Compiled bytecode (dex) for the following class: //
diff --git a/content/public/android/junit/src/org/chromium/content/browser/remoteobjects/RemoteObjectImplTest.java b/content/public/android/junit/src/org/chromium/content/browser/remoteobjects/RemoteObjectImplTest.java index 169919cc..b13760e2 100644 --- a/content/public/android/junit/src/org/chromium/content/browser/remoteobjects/RemoteObjectImplTest.java +++ b/content/public/android/junit/src/org/chromium/content/browser/remoteobjects/RemoteObjectImplTest.java
@@ -766,6 +766,75 @@ } @Test + public void testArgumentConversionObjectId() { + Object foo = new Object(); + Object target = new Object() { + @TestJavascriptInterface + public Object getFoo() { + return foo; + } + @TestJavascriptInterface + public boolean isFoo(Object object) { + return foo == object; + } + @TestJavascriptInterface + public int isNotFoo(int number) { + return number; + } + }; + when(mIdAllocator.getObjectId(foo, TestJavascriptInterface.class)).thenReturn(42); + when(mIdAllocator.getObjectById(42)).thenReturn(foo); + + RemoteObject remoteObject = newRemoteObjectImpl(target, TestJavascriptInterface.class); + RemoteObject.InvokeMethodResponse response = mock(RemoteObject.InvokeMethodResponse.class); + remoteObject.invokeMethod("getFoo", new RemoteInvocationArgument[] {}, response); + remoteObject.invokeMethod( + "isFoo", new RemoteInvocationArgument[] {objectIdArgument(42)}, response); + remoteObject.invokeMethod( + "isFoo", new RemoteInvocationArgument[] {objectIdArgument(100)}, response); + remoteObject.invokeMethod( + "isNotFoo", new RemoteInvocationArgument[] {objectIdArgument(42)}, response); + + verify(response).call(resultIsObject(42)); + verify(response).call(resultIsBoolean(true)); + verify(response).call(resultIsBoolean(false)); + verify(response).call(resultIsNumber(0)); + } + + @Test + public void testObjectNonAssignableType() { + class CustomType {} + Object foo = new Object(); + Object target = new Object() { + @TestJavascriptInterface + public Object getFoo() { + return foo; + } + @TestJavascriptInterface + public boolean exposedNonAssignableTypeMethodWithBooleanObject(Boolean value) { + return true; + } + @TestJavascriptInterface + public boolean exposedNonAssignableTypeMethodWithCustomObject(CustomType custom) { + return true; + } + }; + when(mIdAllocator.getObjectId(foo, TestJavascriptInterface.class)).thenReturn(42); + when(mIdAllocator.getObjectById(42)).thenReturn(foo); + + RemoteObject remoteObject = newRemoteObjectImpl(target, TestJavascriptInterface.class); + RemoteObject.InvokeMethodResponse response = mock(RemoteObject.InvokeMethodResponse.class); + remoteObject.invokeMethod("getFoo", new RemoteInvocationArgument[] {}, response); + remoteObject.invokeMethod("exposedNonAssignableTypeMethodWithBooleanObject", + new RemoteInvocationArgument[] {objectIdArgument(42)}, response); + remoteObject.invokeMethod("exposedNonAssignableTypeMethodWithCustomObject", + new RemoteInvocationArgument[] {objectIdArgument(42)}, response); + + verify(response).call(resultIsObject(42)); + verify(response, times(2)).call(resultHasError(RemoteInvocationError.NON_ASSIGNABLE_TYPES)); + } + + @Test public void testResultConversionVoid() { Object target = new Object() { @TestJavascriptInterface @@ -986,6 +1055,12 @@ return argument; } + private RemoteInvocationArgument objectIdArgument(int objectId) { + RemoteInvocationArgument argument = new RemoteInvocationArgument(); + argument.setObjectIdValue(objectId); + return argument; + } + private RemoteInvocationArgument arrayArgument(RemoteInvocationArgument... elements) { RemoteInvocationArgument argument = new RemoteInvocationArgument(); argument.setArrayValue(elements);
diff --git a/content/public/common/drop_data_unittest.cc b/content/public/common/drop_data_unittest.cc index 596eea3f..8c40db86 100644 --- a/content/public/common/drop_data_unittest.cc +++ b/content/public/common/drop_data_unittest.cc
@@ -13,7 +13,7 @@ #if defined(OS_WIN) #include "base/strings/utf_string_conversions.h" -#define CONVERT_IF_NEEDED(x) base::UTF8ToUTF16((x)) +#define CONVERT_IF_NEEDED(x) base::UTF8ToWide((x)) #else #define CONVERT_IF_NEEDED(x) x #endif
diff --git a/content/test/data/accessibility/aria/aria-hidden-described-by-expected-blink.txt b/content/test/data/accessibility/aria/aria-hidden-described-by-expected-blink.txt index 8eb6cd846..7f61695 100644 --- a/content/test/data/accessibility/aria/aria-hidden-described-by-expected-blink.txt +++ b/content/test/data/accessibility/aria/aria-hidden-described-by-expected-blink.txt
@@ -3,15 +3,10 @@ ++++genericContainer ignored ++++++genericContainer ignored ++++++++genericContainer ignored invisible name='span-1' -++++++++++staticText ignored invisible ++++++++++genericContainer ignored invisible name='span-2' -++++++++++staticText ignored invisible ++++++++++genericContainer ignored invisible description='span-4' name='span-3' descriptionFrom=relatedElement describedbyIds=genericContainer -++++++++++++staticText ignored invisible ++++++++++++genericContainer ignored invisible name='span-4' -++++++++++++staticText ignored invisible -++++++++++staticText ignored invisible ++++++++genericContainer description='span-1' name='span-A' descriptionFrom=relatedElement describedbyIds=genericContainer ++++++++genericContainer description='span-2' name='span-B' descriptionFrom=relatedElement describedbyIds=genericContainer ++++++++genericContainer description='span-3' name='span-C' descriptionFrom=relatedElement describedbyIds=genericContainer -++++++++genericContainer description='span-4' name='span-D' descriptionFrom=relatedElement describedbyIds=genericContainer +++++++++genericContainer description='span-4' name='span-D' descriptionFrom=relatedElement describedbyIds=genericContainer \ No newline at end of file
diff --git a/content/test/data/accessibility/aria/aria-hidden-focused-button-expected-blink.txt b/content/test/data/accessibility/aria/aria-hidden-focused-button-expected-blink.txt index cf8de32c..450905cf 100644 --- a/content/test/data/accessibility/aria/aria-hidden-focused-button-expected-blink.txt +++ b/content/test/data/accessibility/aria/aria-hidden-focused-button-expected-blink.txt
@@ -4,7 +4,5 @@ ++++++genericContainer ignored invisible ++++++++button invisible name='Button 1' ++++++++++staticText ignored invisible name='Button 1' -++++++++staticText ignored invisible name=' ' ++++++++button invisible name='Button 2' -++++++++++staticText ignored invisible name='Button 2' -++++++++staticText ignored invisible +++++++++++staticText ignored invisible name='Button 2' \ No newline at end of file
diff --git a/content/test/data/accessibility/aria/aria-hidden-focused-input-expected-blink.txt b/content/test/data/accessibility/aria/aria-hidden-focused-input-expected-blink.txt index c857001..6842572 100644 --- a/content/test/data/accessibility/aria/aria-hidden-focused-input-expected-blink.txt +++ b/content/test/data/accessibility/aria/aria-hidden-focused-input-expected-blink.txt
@@ -3,6 +3,4 @@ ++++genericContainer ignored ++++++genericContainer ignored invisible ++++++++textField invisible name='input 1' -++++++++staticText ignored invisible name=' ' -++++++++textField invisible name='input 2' -++++++++staticText ignored invisible +++++++++textField invisible name='input 2' \ No newline at end of file
diff --git a/content/test/data/accessibility/aria/aria-hidden-single-descendant-expected-blink.txt b/content/test/data/accessibility/aria/aria-hidden-single-descendant-expected-blink.txt index d16d2ca2..351797b4 100644 --- a/content/test/data/accessibility/aria/aria-hidden-single-descendant-expected-blink.txt +++ b/content/test/data/accessibility/aria/aria-hidden-single-descendant-expected-blink.txt
@@ -4,7 +4,6 @@ ++++++genericContainer ignored invisible ++++++++button invisible name='expect invisible subtree' ++++++++++staticText ignored invisible name='expect invisible subtree' -++++++++staticText ignored invisible ++++++genericContainer ++++++++button name='expect visible subtree' ++++++++++staticText name='expect visible subtree'
diff --git a/content/test/data/accessibility/aria/aria-hidden-single-descendant-visibility-hidden-expected-blink.txt b/content/test/data/accessibility/aria/aria-hidden-single-descendant-visibility-hidden-expected-blink.txt index 0bc43546..2e7c237 100644 --- a/content/test/data/accessibility/aria/aria-hidden-single-descendant-visibility-hidden-expected-blink.txt +++ b/content/test/data/accessibility/aria/aria-hidden-single-descendant-visibility-hidden-expected-blink.txt
@@ -5,15 +5,13 @@ ++++++++genericContainer ignored invisible ++++++++++button ignored invisible name='expect invisible subtree' ++++++++++++staticText ignored invisible name='expect invisible subtree' -++++++++++staticText ignored invisible ++++++++genericContainer invisible ++++++++++button ignored invisible name='expect invisible subtree' ++++++++genericContainer ignored invisible ++++++++++button invisible name='expect invisible subtree' ++++++++++++staticText ignored invisible name='expect invisible subtree' -++++++++++staticText ignored invisible ++++++++genericContainer ++++++++++button name='expect visible subtree' ++++++++++++staticText name='expect visible subtree' ++++++++++++++inlineTextBox name='expect visible subtree' -++++++group name='Done' +++++++group name='Done' \ No newline at end of file
diff --git a/content/test/data/accessibility/css/before-after-block-expected-blink.txt b/content/test/data/accessibility/css/before-after-block-expected-blink.txt new file mode 100644 index 0000000..1cadc25 --- /dev/null +++ b/content/test/data/accessibility/css/before-after-block-expected-blink.txt
@@ -0,0 +1,11 @@ +rootWebArea htmlTag='#document' +++genericContainer ignored htmlTag='html' +++++genericContainer ignored htmlTag='body' +++++++genericContainer ignored htmlTag='div' +++++++++staticText name='A' +++++++++++inlineTextBox name='A' +++++++++genericContainer ignored htmlTag='::before' +++++++++staticText name='bold' +++++++++++inlineTextBox name='bold' +++++++++staticText name=' element' +++++++++++inlineTextBox name=' element' \ No newline at end of file
diff --git a/content/test/data/accessibility/css/before-after-block.html b/content/test/data/accessibility/css/before-after-block.html new file mode 100644 index 0000000..06c0b7ea --- /dev/null +++ b/content/test/data/accessibility/css/before-after-block.html
@@ -0,0 +1,12 @@ +<!-- +@BLINK-ALLOW:htmlTag* +--> +<html> +<head><style> + b::before, i::after { + content: ""; + display: block; + } +</style></head> +<body><div>A <b>bold</b> element</div></body> +</html> \ No newline at end of file
diff --git a/content/test/data/accessibility/css/before-after-code-expected-blink.txt b/content/test/data/accessibility/css/before-after-code-expected-blink.txt new file mode 100644 index 0000000..e9b332d --- /dev/null +++ b/content/test/data/accessibility/css/before-after-code-expected-blink.txt
@@ -0,0 +1,59 @@ +rootWebArea +++genericContainer ignored +++++genericContainer ignored +++++++genericContainer +++++++++staticText name='start' +++++++++++inlineTextBox name='start' +++++++genericContainer ignored +++++++++staticText name='text with ' +++++++++++inlineTextBox name='text with ' +++++++++staticText name='[' +++++++++++inlineTextBox name='[' +++++++++staticText name=':before' +++++++++++inlineTextBox name=':before' +++++++++staticText name=']' +++++++++++inlineTextBox name=']' +++++++++staticText name=' and ' +++++++++++inlineTextBox name=' and ' +++++++++staticText name='[' +++++++++++inlineTextBox name='[' +++++++++staticText name=':after' +++++++++++inlineTextBox name=':after' +++++++++staticText name=']' +++++++++++inlineTextBox name=']' +++++++++staticText name=' content, then a' +++++++++++inlineTextBox name='content, then a' +++++++++genericContainer ignored +++++++++++staticText name=' ' +++++++++staticText name='bold' +++++++++++inlineTextBox name='bold' +++++++++staticText name=' element with a ' +++++++++++inlineTextBox name=' element ' +++++++++++inlineTextBox name='with a ' +++++++++staticText name='[' +++++++++++inlineTextBox name='[' +++++++++staticText name='block' +++++++++++inlineTextBox name='block' +++++++++staticText name=']' +++++++++++inlineTextBox name=']' +++++++++staticText name=' before content then a ' +++++++++++inlineTextBox name='before content ' +++++++++++inlineTextBox name='then a ' +++++++++staticText name='italic' +++++++++++inlineTextBox name='italic' +++++++++genericContainer ignored +++++++++++staticText name=' ' +++++++++staticText name='element with a ' +++++++++++inlineTextBox name='element with a ' +++++++++staticText name='[' +++++++++++inlineTextBox name='[' +++++++++staticText name='block' +++++++++++inlineTextBox name='block' +++++++++staticText name=']' +++++++++++inlineTextBox name=']' +++++++++staticText name=' after content' +++++++++++inlineTextBox name=' after ' +++++++++++inlineTextBox name='content' +++++++genericContainer +++++++++staticText name='end' +++++++++++inlineTextBox name='end' \ No newline at end of file
diff --git a/content/test/data/accessibility/css/before-after-code-expected-uia-win.txt b/content/test/data/accessibility/css/before-after-code-expected-uia-win.txt new file mode 100644 index 0000000..2e24e69 --- /dev/null +++ b/content/test/data/accessibility/css/before-after-code-expected-uia-win.txt
@@ -0,0 +1,28 @@ +Document +++Group IsControlElement=false +++++Text Name='start' +++Text Name='text with ' +++Text Name='[' +++Text Name=':before' +++Text Name=']' +++Text Name=' and ' +++Text Name='[' +++Text Name=':after' +++Text Name=']' +++Text Name=' content, then a' +++Text Name=' ' +++Text Name='bold' +++Text Name=' element with a ' +++Text Name='[' +++Text Name='block' +++Text Name=']' +++Text Name=' before content then a ' +++Text Name='italic' +++Text Name=' ' +++Text Name='element with a ' +++Text Name='[' +++Text Name='block' +++Text Name=']' +++Text Name=' after content' +++Group IsControlElement=false +++++Text Name='end' \ No newline at end of file
diff --git a/content/test/data/accessibility/css/before-after-code.html b/content/test/data/accessibility/css/before-after-code.html new file mode 100644 index 0000000..71eaabf --- /dev/null +++ b/content/test/data/accessibility/css/before-after-code.html
@@ -0,0 +1,32 @@ +<html> +<head><style> + div { + width: 100px; + } + code::before { + content: "["; + } + code::after { + content: "]"; + } + b::before, i::after { + width: 5px; + height: 5px; + content: ""; + display: block; + background: black; + } +</style></head> +<body> + <div>start</div> + <div> + text with <code>:before</code> + and <code>:after</code> content, + then a <b>bold</b> element with a + <code>block</code> before content + then a <i>italic</i> element with + a <code>block</code> after content + </div> + <div>end</div> +</body> +</html> \ No newline at end of file
diff --git a/content/test/data/accessibility/css/content-visibility-to-hidden-expected-blink.txt b/content/test/data/accessibility/css/content-visibility-to-hidden-expected-blink.txt new file mode 100644 index 0000000..75c56af --- /dev/null +++ b/content/test/data/accessibility/css/content-visibility-to-hidden-expected-blink.txt
@@ -0,0 +1,7 @@ +rootWebArea name='done' +++genericContainer ignored +++++genericContainer ignored +++++++genericContainer +++++++++genericContainer className='hidden' name='Label' +++++++++++genericContainer ignored invisible +++++++++++genericContainer ignored invisible \ No newline at end of file
diff --git a/content/test/data/accessibility/css/content-visibility-to-hidden.html b/content/test/data/accessibility/css/content-visibility-to-hidden.html new file mode 100644 index 0000000..0344c815 --- /dev/null +++ b/content/test/data/accessibility/css/content-visibility-to-hidden.html
@@ -0,0 +1,27 @@ +<!-- +@BLINK-ALLOW:className* +@WAIT-FOR:done +--> +<style> +.hidden { + content-visibility: hidden; +} +</style> +<div id="container"> + <div id="target" aria-labelledby="target_label"> + target + <div id="child"> + child + </div> + <div id="target_label">Label</div> + </div> +</div> + +<script> + document.addEventListener('DOMContentLoaded', () => { + setTimeout(() => { + document.querySelector('#target').classList.add("hidden"); + document.title='done'; + }, 50); + }); +</script>
diff --git a/content/test/data/accessibility/css/pseudo-with-code-expected-uia-win.txt b/content/test/data/accessibility/css/pseudo-with-code-expected-uia-win.txt new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/content/test/data/accessibility/css/pseudo-with-code-expected-uia-win.txt
diff --git a/content/test/data/accessibility/css/pseudo-with-code.html b/content/test/data/accessibility/css/pseudo-with-code.html new file mode 100644 index 0000000..71eaabf --- /dev/null +++ b/content/test/data/accessibility/css/pseudo-with-code.html
@@ -0,0 +1,32 @@ +<html> +<head><style> + div { + width: 100px; + } + code::before { + content: "["; + } + code::after { + content: "]"; + } + b::before, i::after { + width: 5px; + height: 5px; + content: ""; + display: block; + background: black; + } +</style></head> +<body> + <div>start</div> + <div> + text with <code>:before</code> + and <code>:after</code> content, + then a <b>bold</b> element with a + <code>block</code> before content + then a <i>italic</i> element with + a <code>block</code> after content + </div> + <div>end</div> +</body> +</html> \ No newline at end of file
diff --git a/content/test/gpu/gpu_tests/test_expectations/webgl_conformance_expectations.txt b/content/test/gpu/gpu_tests/test_expectations/webgl_conformance_expectations.txt index a3993e4..62df9b4 100644 --- a/content/test/gpu/gpu_tests/test_expectations/webgl_conformance_expectations.txt +++ b/content/test/gpu/gpu_tests/test_expectations/webgl_conformance_expectations.txt
@@ -702,6 +702,124 @@ # All platforms, Vulkan backend crbug.com/1114284 [ linux angle-swiftshader passthrough google-0xffff ] conformance/uniforms/out-of-bounds-uniform-array-access.html [ RetryOnFailure ] +# Windows. All backends. +crbug.com/1170944 [ win google angle-swiftshader passthrough ] conformance/buffers/buffer-data-dynamic-delay.html [ Skip ] +crbug.com/1170944 [ win google angle-swiftshader passthrough ] conformance/canvas/buffer-offscreen-test.html [ Skip ] +crbug.com/1170944 [ win google angle-swiftshader passthrough ] conformance/canvas/buffer-preserve-test.html [ Skip ] +crbug.com/1170944 [ win google angle-swiftshader passthrough ] conformance/canvas/framebuffer-bindings-unaffected-on-resize.html [ Skip ] +crbug.com/1170944 [ win google angle-swiftshader passthrough ] conformance/canvas/rapid-resizing.html [ Skip ] +crbug.com/1170944 [ win google angle-swiftshader passthrough ] conformance/canvas/texture-bindings-unaffected-on-resize.html [ Skip ] +crbug.com/1170944 [ win google angle-swiftshader passthrough ] conformance/context/context-attribute-preserve-drawing-buffer.html [ Skip ] +crbug.com/1170944 [ win google angle-swiftshader passthrough ] conformance/context/context-hidden-alpha.html [ Skip ] +crbug.com/1170944 [ win google angle-swiftshader passthrough ] conformance/context/context-no-alpha-fbo-with-alpha.html [ Skip ] +crbug.com/1170944 [ win google angle-swiftshader passthrough ] conformance/context/deleted-object-behavior.html [ Skip ] +crbug.com/1170944 [ win google angle-swiftshader passthrough ] conformance/context/user-defined-properties-on-context.html [ Skip ] +crbug.com/1170944 [ win google angle-swiftshader passthrough ] conformance/extensions/oes-texture-float-with-video.html [ Skip ] +crbug.com/1170944 [ win google angle-swiftshader passthrough ] conformance/extensions/oes-texture-half-float-with-video.html [ Skip ] +crbug.com/1170944 [ win google angle-swiftshader passthrough ] conformance/extensions/webgl-draw-buffers.html [ Skip ] +crbug.com/1170944 [ win google angle-swiftshader passthrough ] conformance/glsl/bugs/loop-if-loop-gradient.html [ Skip ] +crbug.com/1170944 [ win google angle-swiftshader passthrough ] conformance/glsl/bugs/qualcomm-crash.html [ Skip ] +crbug.com/1170944 [ win google angle-swiftshader passthrough ] conformance/glsl/bugs/qualcomm-loop-with-continue-crash.html [ Skip ] +crbug.com/1170944 [ win google angle-swiftshader passthrough ] conformance/glsl/bugs/sketchfab-lighting-shader-crash.html [ Skip ] +crbug.com/1170944 [ win google angle-swiftshader passthrough ] conformance/glsl/misc/shader-with-non-reserved-words.html [ Skip ] +crbug.com/1170944 [ win google angle-swiftshader passthrough ] conformance/more/functions/readPixelsBadArgs.html [ Skip ] +crbug.com/1170944 [ win google angle-swiftshader passthrough ] conformance/more/functions/texImage2DHTML.html [ Skip ] +crbug.com/1170944 [ win google angle-swiftshader passthrough ] conformance/more/functions/texSubImage2DHTML.html [ Skip ] +crbug.com/1170944 [ win google angle-swiftshader passthrough ] conformance/offscreencanvas/context-attribute-preserve-drawing-buffer.html [ Skip ] +crbug.com/1170944 [ win google angle-swiftshader passthrough ] conformance/renderbuffers/framebuffer-state-restoration.html [ Skip ] +crbug.com/1170944 [ win google angle-swiftshader passthrough ] conformance/rendering/color-mask-preserved-during-implicit-clears.html [ Skip ] +crbug.com/1170944 [ win google angle-swiftshader passthrough ] conformance/rendering/draw-webgl-to-canvas-2d-repeatedly.html [ Skip ] +crbug.com/1170944 [ win google angle-swiftshader passthrough ] conformance/rendering/many-draw-calls.html [ Skip ] +crbug.com/1170944 [ win google angle-swiftshader passthrough ] conformance/rendering/scissor-rect-repeated-rendering.html [ Skip ] +crbug.com/1170944 [ win google angle-swiftshader passthrough ] conformance/state/state-uneffected-after-compositing.html [ Skip ] +crbug.com/1170944 [ win google angle-swiftshader passthrough ] conformance/textures/image_bitmap_from_video/tex-2d-alpha-alpha-unsigned_byte.html [ Skip ] +crbug.com/1170944 [ win google angle-swiftshader passthrough ] conformance/textures/image_bitmap_from_video/tex-2d-luminance-luminance-unsigned_byte.html [ Skip ] +crbug.com/1170944 [ win google angle-swiftshader passthrough ] conformance/textures/image_bitmap_from_video/tex-2d-luminance_alpha-luminance_alpha-unsigned_byte.html [ Skip ] +crbug.com/1170944 [ win google angle-swiftshader passthrough ] conformance/textures/image_bitmap_from_video/tex-2d-rgb-rgb-unsigned_byte.html [ Skip ] +crbug.com/1170944 [ win google angle-swiftshader passthrough ] conformance/textures/image_bitmap_from_video/tex-2d-rgb-rgb-unsigned_short_5_6_5.html [ Skip ] +crbug.com/1170944 [ win google angle-swiftshader passthrough ] conformance/textures/image_bitmap_from_video/tex-2d-rgba-rgba-unsigned_byte.html [ Skip ] +crbug.com/1170944 [ win google angle-swiftshader passthrough ] conformance/textures/image_bitmap_from_video/tex-2d-rgba-rgba-unsigned_short_4_4_4_4.html [ Skip ] +crbug.com/1170944 [ win google angle-swiftshader passthrough ] conformance/textures/image_bitmap_from_video/tex-2d-rgba-rgba-unsigned_short_5_5_5_1.html [ Skip ] +crbug.com/1170944 [ win google angle-swiftshader passthrough ] conformance/textures/misc/exif-orientation.html [ Skip ] +crbug.com/1170944 [ win google angle-swiftshader passthrough ] conformance/textures/misc/origin-clean-conformance-offscreencanvas.html [ Failure ] +crbug.com/1170944 [ win google angle-swiftshader passthrough ] conformance/textures/misc/origin-clean-conformance.html [ Failure ] +crbug.com/1170944 [ win google angle-swiftshader passthrough ] conformance/textures/misc/tex-video-using-tex-unit-non-zero.html [ Skip ] +crbug.com/1170944 [ win google angle-swiftshader passthrough ] conformance/textures/misc/texture-corner-case-videos.html [ Skip ] +crbug.com/1170944 [ win google angle-swiftshader passthrough ] conformance/textures/misc/texture-npot-video.html [ Skip ] +crbug.com/1170944 [ win google angle-swiftshader passthrough ] conformance/textures/misc/texture-upload-size.html [ Skip ] +crbug.com/1170944 [ win google angle-swiftshader passthrough ] conformance/textures/misc/texture-video-transparent.html [ Skip ] +crbug.com/1170944 [ win google angle-swiftshader passthrough ] conformance/textures/video/tex-2d-alpha-alpha-unsigned_byte.html [ Skip ] +crbug.com/1170944 [ win google angle-swiftshader passthrough ] conformance/textures/video/tex-2d-luminance-luminance-unsigned_byte.html [ Skip ] +crbug.com/1170944 [ win google angle-swiftshader passthrough ] conformance/textures/video/tex-2d-luminance_alpha-luminance_alpha-unsigned_byte.html [ Skip ] +crbug.com/1170944 [ win google angle-swiftshader passthrough ] conformance/textures/video/tex-2d-rgb-rgb-unsigned_byte.html [ Skip ] +crbug.com/1170944 [ win google angle-swiftshader passthrough ] conformance/textures/video/tex-2d-rgb-rgb-unsigned_short_5_6_5.html [ Skip ] +crbug.com/1170944 [ win google angle-swiftshader passthrough ] conformance/textures/video/tex-2d-rgba-rgba-unsigned_byte.html [ Skip ] +crbug.com/1170944 [ win google angle-swiftshader passthrough ] conformance/textures/video/tex-2d-rgba-rgba-unsigned_short_4_4_4_4.html [ Skip ] +crbug.com/1170944 [ win google angle-swiftshader passthrough ] conformance/textures/video/tex-2d-rgba-rgba-unsigned_short_5_5_5_1.html [ Skip ] +crbug.com/1170944 [ win google angle-swiftshader passthrough ] conformance/uniforms/out-of-bounds-uniform-array-access.html [ Skip ] +crbug.com/1170944 [ win google angle-swiftshader passthrough ] conformance/uniforms/uniform-samplers-test.html [ Skip ] +crbug.com/1170944 [ win google angle-swiftshader passthrough ] deqp/data/gles2/shaders/conversions.html [ Skip ] +crbug.com/1170944 [ win google angle-swiftshader passthrough ] deqp/data/gles2/shaders/functions.html [ Skip ] +crbug.com/1170944 [ win google angle-swiftshader passthrough ] deqp/data/gles2/shaders/linkage.html [ Skip ] +crbug.com/1170944 [ win google swiftshader-gl no-passthrough ] conformance/buffers/buffer-data-dynamic-delay.html [ Skip ] +crbug.com/1170944 [ win google swiftshader-gl no-passthrough ] conformance/canvas/buffer-offscreen-test.html [ Skip ] +crbug.com/1170944 [ win google swiftshader-gl no-passthrough ] conformance/canvas/buffer-preserve-test.html [ Skip ] +crbug.com/1170944 [ win google swiftshader-gl no-passthrough ] conformance/canvas/framebuffer-bindings-unaffected-on-resize.html [ Skip ] +crbug.com/1170944 [ win google swiftshader-gl no-passthrough ] conformance/canvas/rapid-resizing.html [ Skip ] +crbug.com/1170944 [ win google swiftshader-gl no-passthrough ] conformance/canvas/texture-bindings-unaffected-on-resize.html [ Skip ] +crbug.com/1170944 [ win google swiftshader-gl no-passthrough ] conformance/context/context-attribute-preserve-drawing-buffer.html [ Skip ] +crbug.com/1170944 [ win google swiftshader-gl no-passthrough ] conformance/context/context-hidden-alpha.html [ Skip ] +crbug.com/1170944 [ win google swiftshader-gl no-passthrough ] conformance/context/context-no-alpha-fbo-with-alpha.html [ Skip ] +crbug.com/1170944 [ win google swiftshader-gl no-passthrough ] conformance/context/deleted-object-behavior.html [ Skip ] +crbug.com/1170944 [ win google swiftshader-gl no-passthrough ] conformance/context/user-defined-properties-on-context.html [ Skip ] +crbug.com/1170944 [ win google swiftshader-gl no-passthrough ] conformance/extensions/oes-texture-float-with-video.html [ Skip ] +crbug.com/1170944 [ win google swiftshader-gl no-passthrough ] conformance/extensions/oes-texture-half-float-with-video.html [ Skip ] +crbug.com/1170944 [ win google swiftshader-gl no-passthrough ] conformance/extensions/webgl-draw-buffers.html [ Skip ] +crbug.com/1170944 [ win google swiftshader-gl no-passthrough ] conformance/glsl/bugs/loop-if-loop-gradient.html [ Skip ] +crbug.com/1170944 [ win google swiftshader-gl no-passthrough ] conformance/glsl/bugs/qualcomm-crash.html [ Skip ] +crbug.com/1170944 [ win google swiftshader-gl no-passthrough ] conformance/glsl/bugs/qualcomm-loop-with-continue-crash.html [ Skip ] +crbug.com/1170944 [ win google swiftshader-gl no-passthrough ] conformance/glsl/bugs/sketchfab-lighting-shader-crash.html [ Skip ] +crbug.com/1170944 [ win google swiftshader-gl no-passthrough ] conformance/glsl/misc/shader-with-non-reserved-words.html [ Skip ] +crbug.com/1170944 [ win google swiftshader-gl no-passthrough ] conformance/more/functions/readPixelsBadArgs.html [ Skip ] +crbug.com/1170944 [ win google swiftshader-gl no-passthrough ] conformance/more/functions/texImage2DHTML.html [ Skip ] +crbug.com/1170944 [ win google swiftshader-gl no-passthrough ] conformance/more/functions/texSubImage2DHTML.html [ Skip ] +crbug.com/1170944 [ win google swiftshader-gl no-passthrough ] conformance/offscreencanvas/context-attribute-preserve-drawing-buffer.html [ Skip ] +crbug.com/1170944 [ win google swiftshader-gl no-passthrough ] conformance/renderbuffers/framebuffer-state-restoration.html [ Skip ] +crbug.com/1170944 [ win google swiftshader-gl no-passthrough ] conformance/rendering/color-mask-preserved-during-implicit-clears.html [ Skip ] +crbug.com/1170944 [ win google swiftshader-gl no-passthrough ] conformance/rendering/draw-webgl-to-canvas-2d-repeatedly.html [ Skip ] +crbug.com/1170944 [ win google swiftshader-gl no-passthrough ] conformance/rendering/many-draw-calls.html [ Skip ] +crbug.com/1170944 [ win google swiftshader-gl no-passthrough ] conformance/rendering/scissor-rect-repeated-rendering.html [ Skip ] +crbug.com/1170944 [ win google swiftshader-gl no-passthrough ] conformance/state/state-uneffected-after-compositing.html [ Skip ] +crbug.com/1170944 [ win google swiftshader-gl no-passthrough ] conformance/textures/image_bitmap_from_video/tex-2d-alpha-alpha-unsigned_byte.html [ Skip ] +crbug.com/1170944 [ win google swiftshader-gl no-passthrough ] conformance/textures/image_bitmap_from_video/tex-2d-luminance-luminance-unsigned_byte.html [ Skip ] +crbug.com/1170944 [ win google swiftshader-gl no-passthrough ] conformance/textures/image_bitmap_from_video/tex-2d-luminance_alpha-luminance_alpha-unsigned_byte.html [ Skip ] +crbug.com/1170944 [ win google swiftshader-gl no-passthrough ] conformance/textures/image_bitmap_from_video/tex-2d-rgb-rgb-unsigned_byte.html [ Skip ] +crbug.com/1170944 [ win google swiftshader-gl no-passthrough ] conformance/textures/image_bitmap_from_video/tex-2d-rgb-rgb-unsigned_short_5_6_5.html [ Skip ] +crbug.com/1170944 [ win google swiftshader-gl no-passthrough ] conformance/textures/image_bitmap_from_video/tex-2d-rgba-rgba-unsigned_byte.html [ Skip ] +crbug.com/1170944 [ win google swiftshader-gl no-passthrough ] conformance/textures/image_bitmap_from_video/tex-2d-rgba-rgba-unsigned_short_4_4_4_4.html [ Skip ] +crbug.com/1170944 [ win google swiftshader-gl no-passthrough ] conformance/textures/image_bitmap_from_video/tex-2d-rgba-rgba-unsigned_short_5_5_5_1.html [ Skip ] +crbug.com/1170944 [ win google swiftshader-gl no-passthrough ] conformance/textures/misc/exif-orientation.html [ Skip ] +crbug.com/1170944 [ win google swiftshader-gl no-passthrough ] conformance/textures/misc/origin-clean-conformance-offscreencanvas.html [ Failure ] +crbug.com/1170944 [ win google swiftshader-gl no-passthrough ] conformance/textures/misc/origin-clean-conformance.html [ Failure ] +crbug.com/1170944 [ win google swiftshader-gl no-passthrough ] conformance/textures/misc/tex-video-using-tex-unit-non-zero.html [ Skip ] +crbug.com/1170944 [ win google swiftshader-gl no-passthrough ] conformance/textures/misc/texture-corner-case-videos.html [ Skip ] +crbug.com/1170944 [ win google swiftshader-gl no-passthrough ] conformance/textures/misc/texture-npot-video.html [ Skip ] +crbug.com/1170944 [ win google swiftshader-gl no-passthrough ] conformance/textures/misc/texture-upload-size.html [ Skip ] +crbug.com/1170944 [ win google swiftshader-gl no-passthrough ] conformance/textures/misc/texture-video-transparent.html [ Skip ] +crbug.com/1170944 [ win google swiftshader-gl no-passthrough ] conformance/textures/video/tex-2d-alpha-alpha-unsigned_byte.html [ Skip ] +crbug.com/1170944 [ win google swiftshader-gl no-passthrough ] conformance/textures/video/tex-2d-luminance-luminance-unsigned_byte.html [ Skip ] +crbug.com/1170944 [ win google swiftshader-gl no-passthrough ] conformance/textures/video/tex-2d-luminance_alpha-luminance_alpha-unsigned_byte.html [ Skip ] +crbug.com/1170944 [ win google swiftshader-gl no-passthrough ] conformance/textures/video/tex-2d-rgb-rgb-unsigned_byte.html [ Skip ] +crbug.com/1170944 [ win google swiftshader-gl no-passthrough ] conformance/textures/video/tex-2d-rgb-rgb-unsigned_short_5_6_5.html [ Skip ] +crbug.com/1170944 [ win google swiftshader-gl no-passthrough ] conformance/textures/video/tex-2d-rgba-rgba-unsigned_byte.html [ Skip ] +crbug.com/1170944 [ win google swiftshader-gl no-passthrough ] conformance/textures/video/tex-2d-rgba-rgba-unsigned_short_4_4_4_4.html [ Skip ] +crbug.com/1170944 [ win google swiftshader-gl no-passthrough ] conformance/textures/video/tex-2d-rgba-rgba-unsigned_short_5_5_5_1.html [ Skip ] +crbug.com/1170944 [ win google swiftshader-gl no-passthrough ] conformance/uniforms/out-of-bounds-uniform-array-access.html [ Skip ] +crbug.com/1170944 [ win google swiftshader-gl no-passthrough ] conformance/uniforms/uniform-samplers-test.html [ Skip ] +crbug.com/1170944 [ win google swiftshader-gl no-passthrough ] deqp/data/gles2/shaders/conversions.html [ Skip ] +crbug.com/1170944 [ win google swiftshader-gl no-passthrough ] deqp/data/gles2/shaders/functions.html [ Skip ] +crbug.com/1170944 [ win google swiftshader-gl no-passthrough ] deqp/data/gles2/shaders/linkage.html [ Skip ] + # Mac. All backends. crbug.com/1099960 [ mac angle-swiftshader passthrough ] conformance/context/context-no-alpha-fbo-with-alpha.html [ Failure ] crbug.com/1099960 [ mac angle-swiftshader passthrough ] conformance/rendering/color-mask-preserved-during-implicit-clears.html [ Failure ]
diff --git a/infra/config/generated/commit-queue.cfg b/infra/config/generated/commit-queue.cfg index 56ee2a3..0624e307 100644 --- a/infra/config/generated/commit-queue.cfg +++ b/infra/config/generated/commit-queue.cfg
@@ -952,6 +952,10 @@ includable_only: true } builders { + name: "chromium/try/lacros-amd64-generic-rel" + includable_only: true + } + builders { name: "chromium/try/layout_test_leak_detection" includable_only: true }
diff --git a/infra/config/generated/cr-buildbucket.cfg b/infra/config/generated/cr-buildbucket.cfg index 6e77442..a98a5d5 100644 --- a/infra/config/generated/cr-buildbucket.cfg +++ b/infra/config/generated/cr-buildbucket.cfg
@@ -40494,6 +40494,67 @@ } } builders { + name: "lacros-amd64-generic-rel" + swarming_host: "chromium-swarm.appspot.com" + swarming_tags: "vpython:native-python-wrapper" + dimensions: "builder:lacros-amd64-generic-rel" + dimensions: "cores:8" + dimensions: "cpu:x86-64" + dimensions: "os:Ubuntu-16.04" + dimensions: "pool:luci.chromium.try" + exe { + cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" + cipd_version: "refs/heads/master" + cmd: "recipes" + } + properties: "{\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\",\"use_luci_auth\":true},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"$recipe_engine/isolated\":{\"server\":\"https://isolateserver.appspot.com\"},\"builder_group\":\"tryserver.chromium.chromiumos\",\"recipe\":\"chromium_trybot\"}" + execution_timeout_secs: 14400 + expiration_secs: 7200 + caches { + name: "win_toolchain" + path: "win_toolchain" + } + build_numbers: YES + service_account: "chromium-try-builder@chops-service-accounts.iam.gserviceaccount.com" + task_template_canary_percentage { + value: 5 + } + experiments { + key: "chromium.resultdb.result_sink" + value: 100 + } + experiments { + key: "chromium.resultdb.result_sink.junit_tests" + value: 100 + } + experiments { + key: "luci.use_realms" + value: 100 + } + resultdb { + enable: true + bq_exports { + project: "luci-resultdb" + dataset: "chromium" + table: "try_test_results" + test_results {} + } + bq_exports { + project: "luci-resultdb" + dataset: "chromium" + table: "gpu_try_test_results" + test_results { + predicate { + test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test/.+" + } + } + } + history_options { + use_invocation_timestamp: true + } + } + } + builders { name: "layout_test_leak_detection" swarming_host: "chromium-swarm.appspot.com" swarming_tags: "vpython:native-python-wrapper"
diff --git a/infra/config/generated/luci-milo.cfg b/infra/config/generated/luci-milo.cfg index 0008dabd..d605882 100644 --- a/infra/config/generated/luci-milo.cfg +++ b/infra/config/generated/luci-milo.cfg
@@ -1931,6 +1931,9 @@ name: "buildbucket/luci.chromium.try/ios-simulator-full-configs" } builders { + name: "buildbucket/luci.chromium.try/lacros-amd64-generic-rel" + } + builders { name: "buildbucket/luci.chromium.try/linux-blink-rel" } builders { @@ -12452,6 +12455,9 @@ name: "buildbucket/luci.chromium.try/ios14-sdk-simulator" } builders { + name: "buildbucket/luci.chromium.try/lacros-amd64-generic-rel" + } + builders { name: "buildbucket/luci.chromium.try/layout_test_leak_detection" } builders { @@ -13207,6 +13213,9 @@ name: "buildbucket/luci.chromium.try/gpu-fyi-try-chromeos-kevin" } builders { + name: "buildbucket/luci.chromium.try/lacros-amd64-generic-rel" + } + builders { name: "buildbucket/luci.chromium.try/linux-cfm-rel" } builders {
diff --git a/infra/config/subprojects/chromium/try.star b/infra/config/subprojects/chromium/try.star index a722975..812fdc3 100644 --- a/infra/config/subprojects/chromium/try.star +++ b/infra/config/subprojects/chromium/try.star
@@ -673,6 +673,12 @@ ) try_.chromium_chromiumos_builder( + name = "lacros-amd64-generic-rel", + builderless = not settings.is_master, + main_list_view = "try", +) + +try_.chromium_chromiumos_builder( name = "linux-chromeos-compile-dbg", branch_selector = branches.STANDARD_MILESTONE, builderless = not settings.is_master,
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_en-GB.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_en-GB.xtb index 54cf063..2d78fbb 100644 --- a/ios/chrome/app/strings/resources/ios_chromium_strings_en-GB.xtb +++ b/ios/chrome/app/strings/resources/ios_chromium_strings_en-GB.xtb
@@ -2,6 +2,7 @@ <!DOCTYPE translationbundle> <translationbundle lang="en-GB"> <translation id="102360288709523007">Help make Chromium better by sending usage statistics and crash reports to Google.</translation> +<translation id="1130979953299110755">By signing out, your bookmarks, history, passwords and other Chromium data will no longer be synced to your Google Account.</translation> <translation id="1185134272377778587">About Chromium</translation> <translation id="1257458525759135959">To save images, tap on settings to let Chromium add to your photos</translation> <translation id="1361748954329991663">Chromium is out of date. If no update is available in the <ph name="BEGIN_LINK" />app store<ph name="END_LINK" />, it's possible that your device doesn't support new versions of Chromium anymore.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_en-GB.xtb b/ios/chrome/app/strings/resources/ios_strings_en-GB.xtb index b9b48f14..c57e9d8 100644 --- a/ios/chrome/app/strings/resources/ios_strings_en-GB.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_en-GB.xtb
@@ -606,6 +606,7 @@ <translation id="7203585745079012652">Speak Answers Back</translation> <translation id="7207383424303353046">New: Open sites in Chrome automatically by making it your default browser app. <ph name="BEGIN_LINK" />Open settings<ph name="END_LINK" /></translation> <translation id="721597782417389033">Invalid card nickname</translation> +<translation id="722989956228261714">Sign out…</translation> <translation id="7265758999917665941">Never for this site</translation> <translation id="7272437679830969316">Can't verify your identity. Password not copied.</translation> <translation id="7291368939935408496">Preparing Passwords…</translation>
diff --git a/ios/chrome/browser/ui/ntp/incognito_view.mm b/ios/chrome/browser/ui/ntp/incognito_view.mm index cd5a735..62e1ae5 100644 --- a/ios/chrome/browser/ui/ntp/incognito_view.mm +++ b/ios/chrome/browser/ui/ntp/incognito_view.mm
@@ -391,7 +391,8 @@ subtitleLabel.font = BodyFont(); subtitleLabel.textColor = bodyTextColor; subtitleLabel.numberOfLines = 0; - subtitleLabel.text = l10n_util::GetNSString(IDS_NEW_TAB_OTR_SUBTITLE); + subtitleLabel.text = + l10n_util::GetNSString(IDS_NEW_TAB_OTR_SUBTITLE_WITH_READING_LIST); subtitleLabel.adjustsFontForContentSizeCategory = YES; UIButton* learnMoreButton = [UIButton buttonWithType:UIButtonTypeCustom];
diff --git a/ios/google_internal/frameworks/chrome_internal_dynamic_framework.arm64.zip.sha1 b/ios/google_internal/frameworks/chrome_internal_dynamic_framework.arm64.zip.sha1 index f0d8c719..10550252 100644 --- a/ios/google_internal/frameworks/chrome_internal_dynamic_framework.arm64.zip.sha1 +++ b/ios/google_internal/frameworks/chrome_internal_dynamic_framework.arm64.zip.sha1
@@ -1 +1 @@ -d6eb9ce335ccf73325ca4e5854cfd3b32c33c748 \ No newline at end of file +f3a759e57336d4a88f8c42828cd14d61a723c740 \ No newline at end of file
diff --git a/ios/google_internal/frameworks/chrome_internal_dynamic_framework.x64.zip.sha1 b/ios/google_internal/frameworks/chrome_internal_dynamic_framework.x64.zip.sha1 index 2a7e40b..e3d2f79 100644 --- a/ios/google_internal/frameworks/chrome_internal_dynamic_framework.x64.zip.sha1 +++ b/ios/google_internal/frameworks/chrome_internal_dynamic_framework.x64.zip.sha1
@@ -1 +1 @@ -544b7ae5fc6ee498c612f7f9524f3ff934e26a23 \ No newline at end of file +02bad2268fa2457f9c62b61d8f7bee798addda78 \ No newline at end of file
diff --git a/ios/google_internal/frameworks/remoting_dogfood_internal_dynamic_framework.arm64.zip.sha1 b/ios/google_internal/frameworks/remoting_dogfood_internal_dynamic_framework.arm64.zip.sha1 index 3badcbe..86a60a5 100644 --- a/ios/google_internal/frameworks/remoting_dogfood_internal_dynamic_framework.arm64.zip.sha1 +++ b/ios/google_internal/frameworks/remoting_dogfood_internal_dynamic_framework.arm64.zip.sha1
@@ -1 +1 @@ -afb2e3b05e54bdeedcea31d8a246a3916d133095 \ No newline at end of file +158ad8f498c92dc187420189089122eb5ac7d728 \ No newline at end of file
diff --git a/ios/google_internal/frameworks/remoting_dogfood_internal_dynamic_framework.x64.zip.sha1 b/ios/google_internal/frameworks/remoting_dogfood_internal_dynamic_framework.x64.zip.sha1 index 17295bc..08d9259 100644 --- a/ios/google_internal/frameworks/remoting_dogfood_internal_dynamic_framework.x64.zip.sha1 +++ b/ios/google_internal/frameworks/remoting_dogfood_internal_dynamic_framework.x64.zip.sha1
@@ -1 +1 @@ -24eb3d58ac80c4f6b507afb5d191a92e547b60fa \ No newline at end of file +d37898a05d26c7160371b0d9fd9dba7fecb0724f \ No newline at end of file
diff --git a/ios/google_internal/frameworks/remoting_internal_dynamic_framework.arm64.zip.sha1 b/ios/google_internal/frameworks/remoting_internal_dynamic_framework.arm64.zip.sha1 index d924c415..589db8b 100644 --- a/ios/google_internal/frameworks/remoting_internal_dynamic_framework.arm64.zip.sha1 +++ b/ios/google_internal/frameworks/remoting_internal_dynamic_framework.arm64.zip.sha1
@@ -1 +1 @@ -4523bc4e85acd071b943690d0a6853ec92860f2c \ No newline at end of file +60301f46c8114ad70fab6031d78096bc73ce3541 \ No newline at end of file
diff --git a/ios/google_internal/frameworks/remoting_internal_dynamic_framework.x64.zip.sha1 b/ios/google_internal/frameworks/remoting_internal_dynamic_framework.x64.zip.sha1 index 0ce5d667..51b9d632 100644 --- a/ios/google_internal/frameworks/remoting_internal_dynamic_framework.x64.zip.sha1 +++ b/ios/google_internal/frameworks/remoting_internal_dynamic_framework.x64.zip.sha1
@@ -1 +1 @@ -1f8846186ca1117b45fd07da07c5eba5a2ca5c10 \ No newline at end of file +ffb9224b7e92530e3f1ecd4de55e5c71760f67ea \ No newline at end of file
diff --git a/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.arm64.zip.sha1 b/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.arm64.zip.sha1 index ec2974a..e77a370 100644 --- a/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.arm64.zip.sha1 +++ b/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.arm64.zip.sha1
@@ -1 +1 @@ -4d3e3d7053a6143302feb1d8637bf1746567ed0a \ No newline at end of file +608252a9cb009da159f02adc0c146eec149dcfd1 \ No newline at end of file
diff --git a/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.x64.zip.sha1 b/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.x64.zip.sha1 index ad3c7ef..97f5a70 100644 --- a/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.x64.zip.sha1 +++ b/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.x64.zip.sha1
@@ -1 +1 @@ -95912df9aa3fa663a4de8a2935d14094a9cf3665 \ No newline at end of file +c487a6d81a37a7247f2dbdf6985e84951c2ac019 \ No newline at end of file
diff --git a/media/base/audio_buffer.cc b/media/base/audio_buffer.cc index ad6bd58c..99cbfb6a 100644 --- a/media/base/audio_buffer.cc +++ b/media/base/audio_buffer.cc
@@ -14,6 +14,29 @@ namespace media { +namespace { + +// TODO(https://crbug.com/619628): Use vector instructions to speed this up. +template <class SourceSampleTypeTraits> +void CopyConvertFromInterleaved( + const typename SourceSampleTypeTraits::ValueType* source_buffer, + int num_frames_to_write, + const std::vector<float*> dest) { + const int channels = dest.size(); + for (int ch = 0; ch < channels; ++ch) { + float* dest_data = dest[ch]; + for (int target_frame_index = 0, read_pos_in_source = ch; + target_frame_index < num_frames_to_write; + ++target_frame_index, read_pos_in_source += channels) { + auto source_value = source_buffer[read_pos_in_source]; + dest_data[target_frame_index] = + SourceSampleTypeTraits::ToFloat(source_value); + } + } +} + +} // namespace + static base::TimeDelta CalculateDuration(int frames, double sample_rate) { DCHECK_GT(sample_rate, 0); return base::TimeDelta::FromMicroseconds( @@ -332,6 +355,72 @@ } } +void AudioBuffer::ReadAllFrames(const std::vector<float*>& dest) const { + // Deinterleave each channel (if necessary) and convert to 32bit + // floating-point with nominal range -1.0 -> +1.0 (if necessary). + + // |dest| must have the same number of channels, and the number of frames + // specified must be in range. + DCHECK(!end_of_stream()); + CHECK_EQ(dest.size(), static_cast<size_t>(channel_count_)); + DCHECK(!IsBitstreamFormat()); + + if (!data_) { + // Special case for an empty buffer. + for (int i = 0; i < channel_count_; ++i) + memset(dest[i], 0, adjusted_frame_count_ * sizeof(float)); + return; + } + + // Note: The conversion steps below will clip values to [1.0, -1.0f]. + + if (sample_format_ == kSampleFormatPlanarF32) { + for (int ch = 0; ch < channel_count_; ++ch) { + float* dest_data = dest[ch]; + const float* source_data = + reinterpret_cast<const float*>(channel_data_[ch]); + for (int i = 0; i < adjusted_frame_count_; ++i) + dest_data[i] = Float32SampleTypeTraits::FromFloat(source_data[i]); + } + return; + } + + if (sample_format_ == kSampleFormatPlanarS16) { + // Format is planar signed16. Convert each value into float and insert into + // output channel data. + for (int ch = 0; ch < channel_count_; ++ch) { + const int16_t* source_data = + reinterpret_cast<const int16_t*>(channel_data_[ch]); + float* dest_data = dest[ch]; + for (int i = 0; i < adjusted_frame_count_; ++i) + dest_data[i] = SignedInt16SampleTypeTraits::ToFloat(source_data[i]); + } + return; + } + + const uint8_t* source_data = data_.get(); + + if (sample_format_ == kSampleFormatF32) { + CopyConvertFromInterleaved<Float32SampleTypeTraits>( + reinterpret_cast<const float*>(source_data), adjusted_frame_count_, + dest); + } else if (sample_format_ == kSampleFormatU8) { + CopyConvertFromInterleaved<UnsignedInt8SampleTypeTraits>( + source_data, adjusted_frame_count_, dest); + } else if (sample_format_ == kSampleFormatS16) { + CopyConvertFromInterleaved<SignedInt16SampleTypeTraits>( + reinterpret_cast<const int16_t*>(source_data), adjusted_frame_count_, + dest); + } else if (sample_format_ == kSampleFormatS24 || + sample_format_ == kSampleFormatS32) { + CopyConvertFromInterleaved<SignedInt32SampleTypeTraits>( + reinterpret_cast<const int32_t*>(source_data), adjusted_frame_count_, + dest); + } else { + NOTREACHED() << "Unsupported audio sample type: " << sample_format_; + } +} + void AudioBuffer::TrimStart(int frames_to_trim) { CHECK_GE(frames_to_trim, 0); CHECK_LE(frames_to_trim, adjusted_frame_count_);
diff --git a/media/base/audio_buffer.h b/media/base/audio_buffer.h index 55adc828..9a90ef1 100644 --- a/media/base/audio_buffer.h +++ b/media/base/audio_buffer.h
@@ -131,6 +131,14 @@ int dest_frame_offset, AudioBus* dest) const; + // Copy all |adjusted_frame_count_| frames into |dest|. Each of |dest|'s + // elements correspond to a different channel. It's the caller's + // responsibility to make sure enough memory per channel was allocated. + // The frames are converted and clipped from their source format into planar + // float32 data. + // Note: Bitstream formats are not supported. + void ReadAllFrames(const std::vector<float*>& dest) const; + // Trim an AudioBuffer by removing |frames_to_trim| frames from the start. // Timestamp and duration are adjusted to reflect the fewer frames. // Note that repeated calls to TrimStart() may result in timestamp() and
diff --git a/media/base/audio_buffer_unittest.cc b/media/base/audio_buffer_unittest.cc index c769bd5a..3a30db2 100644 --- a/media/base/audio_buffer_unittest.cc +++ b/media/base/audio_buffer_unittest.cc
@@ -7,6 +7,7 @@ #include <limits> #include <memory> +#include "base/test/gtest_util.h" #include "media/base/audio_buffer.h" #include "media/base/audio_bus.h" #include "media/base/test_helpers.h" @@ -36,6 +37,14 @@ } } +static std::vector<float*> WrapChannelsAsVector(AudioBus* bus) { + std::vector<float*> channels(bus->channels()); + for (size_t ch = 0; ch < channels.size(); ++ch) + channels[ch] = bus->channel(ch); + + return channels; +} + static void VerifyBus(AudioBus* bus, int frames, float start, @@ -253,6 +262,15 @@ EXPECT_EQ(frames, bus->GetBitstreamFrames()); EXPECT_EQ(data_size, bus->GetBitstreamDataSize()); VerifyBitstreamAudioBus(bus.get(), data_size, 1, 1); + +#if GTEST_HAS_DEATH_TEST + auto vector_backing = AudioBus::Create(channels, frames); + std::vector<float*> wrapped_channels = + WrapChannelsAsVector(vector_backing.get()); + + // ReadAllFrames() does not support bitstream formats. + EXPECT_DCHECK_DEATH(buffer->ReadAllFrames(wrapped_channels)); +#endif // GTEST_HAS_DEATH_TEST } TEST(AudioBufferTest, ReadU8) { @@ -272,6 +290,12 @@ for (int i = 0; i < frames; ++i) buffer->ReadFrames(1, i, i, bus.get()); VerifyBus(bus.get(), frames, 0, 1.0f / 127.0f); + + // Verify ReadAllFrames() works for U8. + bus->Zero(); + std::vector<float*> wrapped_channels = WrapChannelsAsVector(bus.get()); + buffer->ReadAllFrames(wrapped_channels); + VerifyBus(bus.get(), frames, 0, 1.0f / 127.0f); } TEST(AudioBufferTest, ReadS16) { @@ -293,6 +317,13 @@ buffer->ReadFrames(1, i, i, bus.get()); VerifyBus(bus.get(), frames, 1.0f / std::numeric_limits<int16_t>::max(), 1.0f / std::numeric_limits<int16_t>::max()); + + // Verify ReadAllFrames() works for S16. + bus->Zero(); + std::vector<float*> wrapped_channels = WrapChannelsAsVector(bus.get()); + buffer->ReadAllFrames(wrapped_channels); + VerifyBus(bus.get(), frames, 1.0f / std::numeric_limits<int16_t>::max(), + 1.0f / std::numeric_limits<int16_t>::max()); } TEST(AudioBufferTest, ReadS32) { @@ -313,6 +344,13 @@ buffer->ReadFrames(10, 10, 0, bus.get()); VerifyBus(bus.get(), 10, 11.0f / std::numeric_limits<int32_t>::max(), 1.0f / std::numeric_limits<int32_t>::max()); + + // Verify ReadAllFrames() works for S32. + bus->Zero(); + std::vector<float*> wrapped_channels = WrapChannelsAsVector(bus.get()); + buffer->ReadAllFrames(wrapped_channels); + VerifyBus(bus.get(), frames, 1.0f / std::numeric_limits<int32_t>::max(), + 1.0f / std::numeric_limits<int32_t>::max()); } TEST(AudioBufferTest, ReadF32) { @@ -336,6 +374,12 @@ bus->Zero(); buffer->ReadFrames(10, 10, 0, bus.get()); VerifyBus(bus.get(), 10, 11, 1, ValueType::kFloat); + + // Verify ReadAllFrames() works for F32. + bus->Zero(); + std::vector<float*> wrapped_channels = WrapChannelsAsVector(bus.get()); + buffer->ReadAllFrames(wrapped_channels); + VerifyBus(bus.get(), frames, 1, 1, ValueType::kFloat); } TEST(AudioBufferTest, ReadS16Planar) { @@ -369,6 +413,13 @@ buffer->ReadFrames(0, 10, 0, bus.get()); VerifyBus(bus.get(), frames, 1.0f / std::numeric_limits<int16_t>::max(), 1.0f / std::numeric_limits<int16_t>::max()); + + // Verify ReadAllFrames() works for S16Planar. + bus->Zero(); + std::vector<float*> wrapped_channels = WrapChannelsAsVector(bus.get()); + buffer->ReadAllFrames(wrapped_channels); + VerifyBus(bus.get(), frames, 1.0f / std::numeric_limits<int16_t>::max(), + 1.0f / std::numeric_limits<int16_t>::max()); } TEST(AudioBufferTest, ReadF32Planar) { @@ -397,6 +448,12 @@ bus->Zero(); buffer->ReadFrames(20, 50, 0, bus.get()); VerifyBus(bus.get(), 20, 51, 1, ValueType::kFloat); + + // Verify ReadAllFrames() works for F32Planar. + bus->Zero(); + std::vector<float*> wrapped_channels = WrapChannelsAsVector(bus.get()); + buffer->ReadAllFrames(wrapped_channels); + VerifyBus(bus.get(), frames, 1, 1, ValueType::kFloat); } TEST(AudioBufferTest, EmptyBuffer) { @@ -411,10 +468,19 @@ EXPECT_EQ(base::TimeDelta::FromMilliseconds(10), buffer->duration()); EXPECT_FALSE(buffer->end_of_stream()); - // Read all 100 frames from the buffer. All data should be 0. + // Read all frames from the buffer. All data should be 0. std::unique_ptr<AudioBus> bus = AudioBus::Create(channels, frames); buffer->ReadFrames(frames, 0, 0, bus.get()); VerifyBus(bus.get(), frames, 0, 0); + + // Set some data to confirm the overwrite. + std::vector<float*> wrapped_channels = WrapChannelsAsVector(bus.get()); + for (float* wrapped_channel : wrapped_channels) + memset(wrapped_channel, 123, frames * sizeof(float)); + + // Verify ReadAllFrames() overrites empty buffers. + buffer->ReadAllFrames(wrapped_channels); + VerifyBus(bus.get(), frames, 0, 0); } TEST(AudioBufferTest, TrimEmptyBuffer) {
diff --git a/media/mojo/services/interface_factory_impl.cc b/media/mojo/services/interface_factory_impl.cc index d5297d4..f23ab72 100644 --- a/media/mojo/services/interface_factory_impl.cc +++ b/media/mojo/services/interface_factory_impl.cc
@@ -294,7 +294,7 @@ FROM_HERE, base::BindOnce( &InterfaceFactoryImpl::CreateMediaFoundationRendererOnTaskRunner, - base::Unretained(this), std::move(task_runner), std::move(receiver), + base::Unretained(this), task_runner, std::move(receiver), std::move(renderer_extension_receiver))); return; }
diff --git a/media/renderers/paint_canvas_video_renderer.cc b/media/renderers/paint_canvas_video_renderer.cc index 80ea11a..62371d1 100644 --- a/media/renderers/paint_canvas_video_renderer.cc +++ b/media/renderers/paint_canvas_video_renderer.cc
@@ -1040,21 +1040,16 @@ } else if (video_frame->HasTextures()) { DCHECK_EQ(video_frame->coded_size(), gfx::Size(image.width(), image.height())); - canvas->drawImageRect( - image, gfx::RectToSkRect(video_frame->visible_rect()), - SkRect::MakeWH(video_frame->visible_rect().width(), - video_frame->visible_rect().height()), - SkSamplingOptions(flags.getFilterQuality(), - SkSamplingOptions::kMedium_asMipmapLinear), - &video_flags, SkCanvas::kStrict_SrcRectConstraint); + canvas->drawImageRect(image, gfx::RectToSkRect(video_frame->visible_rect()), + SkRect::MakeWH(video_frame->visible_rect().width(), + video_frame->visible_rect().height()), + SkSamplingOptions(flags.getFilterQuality()), + &video_flags, SkCanvas::kStrict_SrcRectConstraint); } else { DCHECK_EQ(video_frame->visible_rect().size(), gfx::Size(image.width(), image.height())); - canvas->drawImage( - image, 0, 0, - SkSamplingOptions(flags.getFilterQuality(), - SkSamplingOptions::kMedium_asMipmapLinear), - &video_flags); + canvas->drawImage(image, 0, 0, SkSamplingOptions(flags.getFilterQuality()), + &video_flags); } if (need_transform)
diff --git a/third_party/blink/perf_tests/owp_storage/idb-put-all.html b/third_party/blink/perf_tests/owp_storage/idb-put-all.html deleted file mode 100644 index bbedaec..0000000 --- a/third_party/blink/perf_tests/owp_storage/idb-put-all.html +++ /dev/null
@@ -1,25 +0,0 @@ -<!doctype html> -<title>IndexedDB Put Test</title> -<script src="../resources/runner.js"></script> -<script src="resources/shared.js"></script> -<script> - deleteThenOpen('library', - (db) => { - const store1 = db.createObjectStore('books_with_index', {keyPath: 'isbn'}) - store1.createIndex('by_title', 'title') - db.createObjectStore('books', {keyPath: 'isbn'}) - }, - () => { - const test = { - description: 'Benchmark modeling the IndexedDB activity of putting a' - + ' record into an object store using putAll', - unit: 'ms', - iterationCount: 20, - tracingCategories: 'IndexedDB,Blob', - traceEventsToMeasure: ['IDBObjectStore::putAll'], - path: 'resources/idb-put-all-runner.html' - } - PerfTestRunner.measurePageLoadTimeAfterDoneMessage(test); - } - ); -</script>
diff --git a/third_party/blink/perf_tests/owp_storage/idb-put.html b/third_party/blink/perf_tests/owp_storage/idb-put.html deleted file mode 100644 index a1679de..0000000 --- a/third_party/blink/perf_tests/owp_storage/idb-put.html +++ /dev/null
@@ -1,25 +0,0 @@ -<!doctype html> -<title>IndexedDB Put Test</title> -<script src="../resources/runner.js"></script> -<script src="resources/shared.js"></script> -<script> - deleteThenOpen('library', - (db) => { - const store1 = db.createObjectStore('books_with_index', {keyPath: 'isbn'}) - store1.createIndex('by_title', 'title') - db.createObjectStore('books', {keyPath: 'isbn'}) - }, - () => { - const test = { - description: 'Benchmark modeling the IndexedDB activity of putting a' - + 'record into an object store', - unit: 'ms', - iterationCount: 20, - tracingCategories: 'IndexedDB,Blob', - traceEventsToMeasure: ['IDBObjectStore::put'], - path: 'resources/idb-put-runner.html' - } - PerfTestRunner.measurePageLoadTimeAfterDoneMessage(test); - } - ); -</script>
diff --git a/third_party/blink/perf_tests/owp_storage/resources/idb-put-all-runner.html b/third_party/blink/perf_tests/owp_storage/resources/idb-put-all-runner.html deleted file mode 100644 index 3b2270e..0000000 --- a/third_party/blink/perf_tests/owp_storage/resources/idb-put-all-runner.html +++ /dev/null
@@ -1,60 +0,0 @@ -<!doctype html> -<title>IDB Put Runner</title> -<script src="resources/shared.js"></script> -<script> - const contents = []; - const blobs = []; - const values = []; - - function chooseContent(i) { - return contents[i % 3]; - } - - function chooseBlob(i) { - return blobs[i % 4]; - } - - function chooseTitle(i) { - let smallTitle = ((i % 20).toString()).repeat(100); - let largeTitle = ((i % 20).toString()).repeat(2000); - let titles = [smallTitle, largeTitle] - return titles[i % 2] - } - - function initHelperValues() { - contents.push(new Uint8Array(100)); - contents.push(new Uint8Array(50000)); - contents.push(new Uint8Array(150000)); - blobs.push(null) - blobs.push(new Uint8Array(1000)); - blobs.push(new Uint8Array(200000)); - blobs.push(new Uint8Array(500000)); - for(let i = 0; i < 100; i++) { - let content = chooseContent(i); - let blob = chooseBlob(i); - let title = chooseTitle(i); - values.push({isbn: i, content: content, blob: blob, - title: title, author: 'Fred'}); - } - } - - function start() { - const openRequest = window.indexedDB.open('library'); - openRequest.onsuccess = function() { - const db = openRequest.result; - const txn = db.transaction(['books_with_index','books'],'readwrite'); - const store1 = txn.objectStore('books_with_index'); - const store2 = txn.objectStore('books'); - logToDocumentBody('Starting Benchmark IDB putAll'); - store1.putAllValues(values); - store2.putAllValues(values); - logToDocumentBody('Finished Benchmark IDB putAll'); - txn.oncomplete = () => { - reportDone(); - } - } - } - - initHelperValues() - start(); -</script> \ No newline at end of file
diff --git a/third_party/blink/perf_tests/owp_storage/resources/idb-put-runner.html b/third_party/blink/perf_tests/owp_storage/resources/idb-put-runner.html deleted file mode 100644 index 865ff4f7..0000000 --- a/third_party/blink/perf_tests/owp_storage/resources/idb-put-runner.html +++ /dev/null
@@ -1,60 +0,0 @@ -<!doctype html> -<title>IDB Put Runner</title> -<script src="resources/shared.js"></script> -<script> - const contents = []; - const blobs = []; - - function chooseContent(i) { - return contents[i % 3]; - } - - function chooseBlob(i) { - return blobs[i % 4]; - } - - function chooseTitle(i) { - let smallTitle = ((i % 20).toString()).repeat(100); - let largeTitle = ((i % 20).toString()).repeat(2000); - let titles = [smallTitle, largeTitle] - return titles[i % 2] - } - - function initHelperValues() { - contents.push(new Uint8Array(100)); - contents.push(new Uint8Array(50000)); - contents.push(new Uint8Array(150000)); - blobs.push(null) - blobs.push(new Uint8Array(1000)); - blobs.push(new Uint8Array(200000)); - blobs.push(new Uint8Array(500000)); - } - - function start() { - const openRequest = window.indexedDB.open('library'); - openRequest.onsuccess = function() { - const db = openRequest.result; - const txn = db.transaction(['books_with_index','books'],'readwrite'); - const store1 = txn.objectStore('books_with_index'); - const store2 = txn.objectStore('books'); - logToDocumentBody('Starting Benchmark IDB put'); - for(let i = 0; i < 100; i++) { - logToDocumentBody('Putting books into the library'); - let content = chooseContent(i); - let blob = chooseBlob(i); - let title = chooseTitle(i); - store1.put({isbn: i, content: content, blob: blob, - title: title, author: 'Fred',}); - store2.put({isbn: i, content: content, blob: blob, title: title, - author: 'Fred'}); - } - logToDocumentBody('Finished Benchmark IDB put'); - txn.oncomplete = () => { - reportDone(); - } - } - } - - initHelperValues() - start(); -</script> \ No newline at end of file
diff --git a/third_party/blink/public/mojom/remote_objects/remote_objects.mojom b/third_party/blink/public/mojom/remote_objects/remote_objects.mojom index 04b4681..2d7a4f82 100644 --- a/third_party/blink/public/mojom/remote_objects/remote_objects.mojom +++ b/third_party/blink/public/mojom/remote_objects/remote_objects.mojom
@@ -89,6 +89,7 @@ SingletonJavaScriptValue singleton_value; array<RemoteInvocationArgument> array_value; RemoteTypedArray typed_array_value; + int32 object_id_value; }; enum RemoteInvocationError { @@ -96,6 +97,7 @@ METHOD_NOT_FOUND, OBJECT_GET_CLASS_BLOCKED, EXCEPTION_THROWN, + NON_ASSIGNABLE_TYPES, }; union RemoteInvocationResultValue {
diff --git a/third_party/blink/public/mojom/web_feature/web_feature.mojom b/third_party/blink/public/mojom/web_feature/web_feature.mojom index 60a41ec..1a214e0 100644 --- a/third_party/blink/public/mojom/web_feature/web_feature.mojom +++ b/third_party/blink/public/mojom/web_feature/web_feature.mojom
@@ -3113,6 +3113,8 @@ kWindowScreenChange = 3790, kXRWebGLDepthInformationTextureAttribute = 3791, kXRWebGLBindingGetDepthInformation = 3792, + kSessionStorageFirstUsedBeforeFcp = 3793, + kSessionStorageFirstUsedAfterFcp = 3794, // Add new features immediately above this line. Don't change assigned // numbers of any item, and don't reuse removed slots.
diff --git a/third_party/blink/renderer/core/html/canvas/html_canvas_element.cc b/third_party/blink/renderer/core/html/canvas/html_canvas_element.cc index 3b7e05b3..47d7048 100644 --- a/third_party/blink/renderer/core/html/canvas/html_canvas_element.cc +++ b/third_party/blink/renderer/core/html/canvas/html_canvas_element.cc
@@ -381,7 +381,12 @@ CreateLayer(); SetNeedsUnbufferedInputEvents(true); frame_dispatcher_ = std::make_unique<CanvasResourceDispatcher>( - nullptr, surface_layer_bridge_->GetFrameSinkId().client_id(), + nullptr, + GetPage() + ->GetPageScheduler() + ->GetAgentGroupScheduler() + .CompositorTaskRunner(), + surface_layer_bridge_->GetFrameSinkId().client_id(), surface_layer_bridge_->GetFrameSinkId().sink_id(), CanvasResourceDispatcher::kInvalidPlaceholderCanvasId, size_); // We don't actually need the begin frame signal when in low latency mode,
diff --git a/third_party/blink/renderer/core/imagebitmap/image_bitmap.cc b/third_party/blink/renderer/core/imagebitmap/image_bitmap.cc index b4b1cd2..01cf79e2 100644 --- a/third_party/blink/renderer/core/imagebitmap/image_bitmap.cc +++ b/third_party/blink/renderer/core/imagebitmap/image_bitmap.cc
@@ -393,8 +393,7 @@ CreateProvider(image->ContextProviderWrapper(), image_info, image, false /* fallback_to_software */); if (resource_provider) { - SkSamplingOptions sampling(parsed_options.resize_quality, - SkSamplingOptions::kMedium_asMipmapLinear); + SkSamplingOptions sampling(parsed_options.resize_quality); resource_provider->Canvas()->drawImageRect( image->PaintImageForCurrentFrame(), SkRect::MakeWH(src_image_info.width(), src_image_info.height()), @@ -420,10 +419,8 @@ auto sk_image = image->PaintImageForCurrentFrame().GetSwSkImage(); if (!sk_image) return nullptr; - sk_image->scalePixels( - resized_pixmap, - SkSamplingOptions(parsed_options.resize_quality, - SkSamplingOptions::kMedium_asMipmapLinear)); + sk_image->scalePixels(resized_pixmap, + SkSamplingOptions(parsed_options.resize_quality)); // Tag the resized Pixmap with the correct color space. resized_pixmap.setColorSpace(GetSkImageInfo(image).refColorSpace());
diff --git a/third_party/blink/renderer/core/layout/ng/table/ng_table_layout_algorithm.cc b/third_party/blink/renderer/core/layout/ng/table/ng_table_layout_algorithm.cc index 8d50c1b4..1f02628 100644 --- a/third_party/blink/renderer/core/layout/ng/table/ng_table_layout_algorithm.cc +++ b/third_party/blink/renderer/core/layout/ng/table/ng_table_layout_algorithm.cc
@@ -533,11 +533,12 @@ const bool is_table_block_size_specified = !Style().LogicalHeight().IsAuto(); LayoutUnit total_table_block_size; wtf_size_t section_index = 0; - for (const NGBlockNode& section : grouped_children) { + for (auto it = grouped_children.begin(); it != grouped_children.end(); ++it) { NGTableAlgorithmUtils::ComputeSectionMinimumRowBlockSizes( - section, table_grid_inline_size, is_table_block_size_specified, + *it, table_grid_inline_size, is_table_block_size_specified, column_locations, table_borders, border_spacing.block_size, - section_index++, sections, rows, cell_block_constraints); + section_index++, it.TreatAsTBody(), sections, rows, + cell_block_constraints); total_table_block_size += sections->back().block_size; }
diff --git a/third_party/blink/renderer/core/layout/ng/table/ng_table_layout_algorithm_types.cc b/third_party/blink/renderer/core/layout/ng/table/ng_table_layout_algorithm_types.cc index 4909218..a3a0b4b 100644 --- a/third_party/blink/renderer/core/layout/ng/table/ng_table_layout_algorithm_types.cc +++ b/third_party/blink/renderer/core/layout/ng/table/ng_table_layout_algorithm_types.cc
@@ -205,7 +205,8 @@ const NGLayoutInputNode& section, wtf_size_t start_row, wtf_size_t rows, - LayoutUnit block_size) { + LayoutUnit block_size, + bool treat_as_tbody) { const Length& section_css_block_size = section.Style().LogicalHeight(); // TODO(crbug.com/1105272): Decide what to do with |Length::IsCalculated()|. bool is_constrained = @@ -213,14 +214,12 @@ base::Optional<float> percent; if (section_css_block_size.IsPercent()) percent = section_css_block_size.Percent(); - bool is_tbody = - section.GetDOMNode()->HasTagName(html_names::kTbodyTag); return Section{start_row, rows, block_size, percent, is_constrained, - is_tbody, + treat_as_tbody, /* needs_redistribution */ false}; } @@ -316,7 +315,8 @@ is_constrained |= cell->is_constrained; } -NGTableGroupedChildren::NGTableGroupedChildren(const NGBlockNode& table) { +NGTableGroupedChildren::NGTableGroupedChildren(const NGBlockNode& table) + : header(NGBlockNode(nullptr)), footer(NGBlockNode(nullptr)) { for (NGLayoutInputNode child = table.FirstChild(); child; child = child.NextSibling()) { NGBlockNode block_child = To<NGBlockNode>(child); @@ -329,14 +329,19 @@ columns.push_back(block_child); break; case EDisplay::kTableHeaderGroup: - headers.push_back(block_child); + if (!header) + header = block_child; + else + bodies.push_back(block_child); break; case EDisplay::kTableRowGroup: bodies.push_back(block_child); break; case EDisplay::kTableFooterGroup: - // Footers are displayed in reverse order: first footer at the bottom. - footers.push_front(block_child); + if (!footer) + footer = block_child; + else + bodies.push_back(block_child); break; default: NOTREACHED() << "unexpected table child"; @@ -356,30 +361,57 @@ NGTableGroupedChildrenIterator::NGTableGroupedChildrenIterator( const NGTableGroupedChildren& grouped_children, bool is_end) - : grouped_children_(grouped_children), current_vector_(nullptr) { + : grouped_children_(grouped_children) { if (is_end) { - current_vector_ = &grouped_children_.footers; - current_iterator_ = current_vector_->end(); + current_section_ = kEnd; return; } + current_section_ = kNone; AdvanceToNonEmptySection(); } NGTableGroupedChildrenIterator& NGTableGroupedChildrenIterator::operator++() { - ++current_iterator_; - if (current_iterator_ == current_vector_->end()) - AdvanceToNonEmptySection(); + switch (current_section_) { + case kHead: + case kFoot: + AdvanceToNonEmptySection(); + break; + case kBody: + ++body_iterator_; + if (body_iterator_ == grouped_children_.bodies.end()) + AdvanceToNonEmptySection(); + break; + case kEnd: + break; + case kNone: + NOTREACHED(); + break; + } return *this; } NGBlockNode NGTableGroupedChildrenIterator::operator*() const { - return *current_iterator_; + switch (current_section_) { + case kHead: + return grouped_children_.header; + case kFoot: + return grouped_children_.footer; + case kBody: + return *body_iterator_; + case kEnd: + case kNone: + NOTREACHED(); + return NGBlockNode(nullptr); + } } bool NGTableGroupedChildrenIterator::operator==( const NGTableGroupedChildrenIterator& rhs) const { - return rhs.current_vector_ == current_vector_ && - rhs.current_iterator_ == current_iterator_; + if (current_section_ != rhs.current_section_) + return false; + if (current_section_ == kBody) + return rhs.body_iterator_ == body_iterator_; + return true; } bool NGTableGroupedChildrenIterator::operator!=( @@ -388,19 +420,29 @@ } void NGTableGroupedChildrenIterator::AdvanceToNonEmptySection() { - if (current_vector_ == &grouped_children_.footers) - return; - if (!current_vector_) { - current_vector_ = &grouped_children_.headers; - } else if (current_vector_ == &grouped_children_.headers) { - current_vector_ = &grouped_children_.bodies; - } else if (current_vector_ == &grouped_children_.bodies) { - current_vector_ = &grouped_children_.footers; - } - current_iterator_ = current_vector_->begin(); - // If new group is empty, recursively advance. - if (current_iterator_ == current_vector_->end()) { - AdvanceToNonEmptySection(); + switch (current_section_) { + case kNone: + current_section_ = kHead; + if (!grouped_children_.header) + AdvanceToNonEmptySection(); + break; + case kHead: + current_section_ = kBody; + body_iterator_ = grouped_children_.bodies.begin(); + if (body_iterator_ == grouped_children_.bodies.end()) + AdvanceToNonEmptySection(); + break; + case kBody: + current_section_ = kFoot; + if (!grouped_children_.footer) + AdvanceToNonEmptySection(); + break; + case kFoot: + current_section_ = kEnd; + break; + case kEnd: + NOTREACHED(); + break; } }
diff --git a/third_party/blink/renderer/core/layout/ng/table/ng_table_layout_algorithm_types.h b/third_party/blink/renderer/core/layout/ng/table/ng_table_layout_algorithm_types.h index 4319491..47e7177 100644 --- a/third_party/blink/renderer/core/layout/ng/table/ng_table_layout_algorithm_types.h +++ b/third_party/blink/renderer/core/layout/ng/table/ng_table_layout_algorithm_types.h
@@ -9,6 +9,7 @@ #include "base/optional.h" #include "third_party/blink/renderer/core/layout/min_max_sizes.h" #include "third_party/blink/renderer/core/layout/ng/geometry/ng_box_strut.h" +#include "third_party/blink/renderer/core/layout/ng/ng_block_node.h" #include "third_party/blink/renderer/core/style/computed_style_constants.h" #include "third_party/blink/renderer/platform/geometry/length.h" #include "third_party/blink/renderer/platform/wtf/ref_counted.h" @@ -195,7 +196,8 @@ static Section CreateSection(const NGLayoutInputNode&, wtf_size_t start_row, wtf_size_t rowspan, - LayoutUnit block_size); + LayoutUnit block_size, + bool treat_as_tbody); static CellBlockConstraint CreateCellBlockConstraint( const NGLayoutInputNode&, @@ -239,9 +241,9 @@ Vector<NGBlockNode> captions; // CAPTION Vector<NGBlockNode> columns; // COLGROUP, COL - Vector<NGBlockNode> headers; // THEAD - Vector<NGBlockNode> bodies; // TBODY - Vector<NGBlockNode> footers; // TFOOT + NGBlockNode header; // first THEAD + Vector<NGBlockNode> bodies; // TBODY/multiple THEAD/TFOOT + NGBlockNode footer; // first TFOOT // Default iterators iterate over tbody-like (THEAD/TBODY/TFOOT) elements. NGTableGroupedChildrenIterator begin() const; @@ -251,6 +253,8 @@ // Iterates table's sections in order: // thead, tbody, tfoot class NGTableGroupedChildrenIterator { + enum CurrentSection { kNone, kHead, kBody, kFoot, kEnd }; + public: explicit NGTableGroupedChildrenIterator( const NGTableGroupedChildren& grouped_children, @@ -260,12 +264,14 @@ NGBlockNode operator*() const; bool operator==(const NGTableGroupedChildrenIterator& rhs) const; bool operator!=(const NGTableGroupedChildrenIterator& rhs) const; + // True if section should be treated as tbody + bool TreatAsTBody() const { return current_section_ == kBody; } private: void AdvanceToNonEmptySection(); const NGTableGroupedChildren& grouped_children_; - const Vector<NGBlockNode>* current_vector_; - Vector<NGBlockNode>::const_iterator current_iterator_; + Vector<NGBlockNode>::const_iterator body_iterator_; + CurrentSection current_section_{kNone}; }; } // namespace blink
diff --git a/third_party/blink/renderer/core/layout/ng/table/ng_table_layout_algorithm_utils.cc b/third_party/blink/renderer/core/layout/ng/table/ng_table_layout_algorithm_utils.cc index 8a8ea3c..7895b9b2 100644 --- a/third_party/blink/renderer/core/layout/ng/table/ng_table_layout_algorithm_utils.cc +++ b/third_party/blink/renderer/core/layout/ng/table/ng_table_layout_algorithm_utils.cc
@@ -465,6 +465,7 @@ const NGTableBorders& table_borders, const LayoutUnit block_border_spacing, wtf_size_t section_index, + bool treat_section_as_tbody, NGTableTypes::Sections* sections, NGTableTypes::Rows* rows, NGTableTypes::CellBlockConstraints* cell_block_constraints) { @@ -528,8 +529,9 @@ section_block_size = section_fixed_block_size; } } - sections->push_back(NGTableTypes::CreateSection( - section, start_row, current_row - start_row, section_block_size)); + sections->push_back( + NGTableTypes::CreateSection(section, start_row, current_row - start_row, + section_block_size, treat_section_as_tbody)); } void NGColspanCellTabulator::StartRow() {
diff --git a/third_party/blink/renderer/core/layout/ng/table/ng_table_layout_algorithm_utils.h b/third_party/blink/renderer/core/layout/ng/table/ng_table_layout_algorithm_utils.h index e1ea7fd..521845a4 100644 --- a/third_party/blink/renderer/core/layout/ng/table/ng_table_layout_algorithm_utils.h +++ b/third_party/blink/renderer/core/layout/ng/table/ng_table_layout_algorithm_utils.h
@@ -61,6 +61,7 @@ const NGTableBorders& table_borders, const LayoutUnit block_border_spacing, wtf_size_t section_index, + bool treat_section_as_tbody, NGTableTypes::Sections* sections, NGTableTypes::Rows* rows, NGTableTypes::CellBlockConstraints* cell_block_constraints);
diff --git a/third_party/blink/renderer/core/offscreencanvas/offscreen_canvas.cc b/third_party/blink/renderer/core/offscreencanvas/offscreen_canvas.cc index 9b763a8..9bddf9e 100644 --- a/third_party/blink/renderer/core/offscreencanvas/offscreen_canvas.cc +++ b/third_party/blink/renderer/core/offscreencanvas/offscreen_canvas.cc
@@ -12,6 +12,7 @@ #include "third_party/blink/public/common/privacy_budget/identifiability_metrics.h" #include "third_party/blink/public/common/privacy_budget/identifiability_study_settings.h" #include "third_party/blink/public/platform/platform.h" +#include "third_party/blink/public/platform/scheduler/web_agent_group_scheduler.h" #include "third_party/blink/renderer/core/css/css_font_selector.h" #include "third_party/blink/renderer/core/css/offscreen_font_selector.h" #include "third_party/blink/renderer/core/css/style_engine.h" @@ -361,11 +362,32 @@ // If we don't have a valid placeholder_canvas_id_, then this is a standalone // OffscreenCanvas, and it should not have a placeholder. if (!frame_dispatcher_) { + scoped_refptr<base::SingleThreadTaskRunner> + agent_group_scheduler_compositor_task_runner; + if (auto* global_scope = + DynamicTo<WorkerGlobalScope>(GetTopExecutionContext())) { + // When OffscreenCanvas is used from Worker, the per-AgentGroupScheduler + // |CompositorTaskRunner| can be obtained from |WorkerGlobalScope|. + agent_group_scheduler_compositor_task_runner = + global_scope->GetAgentGroupSchedulerCompositorTaskRunner(); + } else { + // It is possible to use OffscreenCanvas from the main thread. If + // |OffscreenCanvas| is used from the main thread, per-AgentGroupScheduler + // |CompositorTaskRunner| can be obtained from |FrameScheduler|. + agent_group_scheduler_compositor_task_runner = + GetTopExecutionContext() + ->GetScheduler() + ->ToFrameScheduler() + ->GetAgentGroupScheduler() + ->CompositorTaskRunner(); + } + DCHECK(agent_group_scheduler_compositor_task_runner); // The frame dispatcher connects the current thread of OffscreenCanvas // (either main or worker) to the browser process and remains unchanged // throughout the lifetime of this OffscreenCanvas. frame_dispatcher_ = std::make_unique<CanvasResourceDispatcher>( - this, client_id_, sink_id_, placeholder_canvas_id_, size_); + this, std::move(agent_group_scheduler_compositor_task_runner), + client_id_, sink_id_, placeholder_canvas_id_, size_); if (HasPlaceholderCanvas()) frame_dispatcher_->SetPlaceholderCanvasDispatcher(placeholder_canvas_id_);
diff --git a/third_party/blink/renderer/core/workers/dedicated_worker.cc b/third_party/blink/renderer/core/workers/dedicated_worker.cc index 8551eb2c..2a03e73 100644 --- a/third_party/blink/renderer/core/workers/dedicated_worker.cc +++ b/third_party/blink/renderer/core/workers/dedicated_worker.cc
@@ -409,18 +409,31 @@ base::Optional<network::mojom::IPAddressSpace> response_address_space) { base::UnguessableToken parent_devtools_token; std::unique_ptr<WorkerSettings> settings; + scoped_refptr<base::SingleThreadTaskRunner> + agent_group_scheduler_compositor_task_runner; if (auto* window = DynamicTo<LocalDOMWindow>(GetExecutionContext())) { + // When the main thread creates a new DedicatedWorker. auto* frame = window->GetFrame(); if (frame) parent_devtools_token = frame->GetDevToolsFrameToken(); settings = std::make_unique<WorkerSettings>(frame->GetSettings()); + agent_group_scheduler_compositor_task_runner = + GetExecutionContext() + ->GetScheduler() + ->ToFrameScheduler() + ->GetAgentGroupScheduler() + ->CompositorTaskRunner(); } else { + // When a DedicatedWorker creates another DedicatedWorker (nested worker). WorkerGlobalScope* worker_global_scope = To<WorkerGlobalScope>(GetExecutionContext()); parent_devtools_token = worker_global_scope->GetThread()->GetDevToolsWorkerToken(); settings = WorkerSettings::Copy(worker_global_scope->GetWorkerSettings()); + agent_group_scheduler_compositor_task_runner = + worker_global_scope->GetAgentGroupSchedulerCompositorTaskRunner(); } + DCHECK(agent_group_scheduler_compositor_task_runner); mojom::blink::ScriptType script_type = (options_->type() == "classic") ? mojom::blink::ScriptType::kClassic @@ -446,7 +459,8 @@ GetExecutionContext()->GetAgentClusterID(), GetExecutionContext()->UkmSourceID(), GetExecutionContext()->GetExecutionContextToken(), - GetExecutionContext()->CrossOriginIsolatedCapability()); + GetExecutionContext()->CrossOriginIsolatedCapability(), + std::move(agent_group_scheduler_compositor_task_runner)); } scoped_refptr<WebWorkerFetchContext>
diff --git a/third_party/blink/renderer/core/workers/global_scope_creation_params.cc b/third_party/blink/renderer/core/workers/global_scope_creation_params.cc index 6459ea1..5f5332b 100644 --- a/third_party/blink/renderer/core/workers/global_scope_creation_params.cc +++ b/third_party/blink/renderer/core/workers/global_scope_creation_params.cc
@@ -41,7 +41,9 @@ base::UnguessableToken agent_cluster_id, ukm::SourceId ukm_source_id, const base::Optional<ExecutionContextToken>& parent_context_token, - bool parent_cross_origin_isolated_capability) + bool parent_cross_origin_isolated_capability, + scoped_refptr<base::SingleThreadTaskRunner> + agent_group_scheduler_compositor_task_runner) : script_url(script_url.Copy()), script_type(script_type), global_scope_name(global_scope_name.IsolatedCopy()), @@ -73,7 +75,9 @@ ukm_source_id(ukm_source_id), parent_context_token(parent_context_token), parent_cross_origin_isolated_capability( - parent_cross_origin_isolated_capability) { + parent_cross_origin_isolated_capability), + agent_group_scheduler_compositor_task_runner( + std::move(agent_group_scheduler_compositor_task_runner)) { this->origin_trial_tokens = std::make_unique<Vector<String>>(); if (origin_trial_tokens) { for (const String& token : *origin_trial_tokens)
diff --git a/third_party/blink/renderer/core/workers/global_scope_creation_params.h b/third_party/blink/renderer/core/workers/global_scope_creation_params.h index 69cd96ad..517c976 100644 --- a/third_party/blink/renderer/core/workers/global_scope_creation_params.h +++ b/third_party/blink/renderer/core/workers/global_scope_creation_params.h
@@ -70,7 +70,9 @@ ukm::SourceId ukm_source_id = ukm::kInvalidSourceId, const base::Optional<ExecutionContextToken>& parent_context_token = base::nullopt, - bool parent_cross_origin_isolated_capability = false); + bool parent_cross_origin_isolated_capability = false, + scoped_refptr<base::SingleThreadTaskRunner> + agent_group_scheduler_compositor_task_runner = nullptr); ~GlobalScopeCreationParams() = default; @@ -180,6 +182,11 @@ // Used by dedicated workers, and set to false when there is no parent. const bool parent_cross_origin_isolated_capability; + // The compositor task runner associated with the |AgentGroupScheduler| this + // worker belongs to. + scoped_refptr<base::SingleThreadTaskRunner> + agent_group_scheduler_compositor_task_runner; + DISALLOW_COPY_AND_ASSIGN(GlobalScopeCreationParams); };
diff --git a/third_party/blink/renderer/core/workers/worker_global_scope.cc b/third_party/blink/renderer/core/workers/worker_global_scope.cc index 6d5ddab..befb80d 100644 --- a/third_party/blink/renderer/core/workers/worker_global_scope.cc +++ b/third_party/blink/renderer/core/workers/worker_global_scope.cc
@@ -543,6 +543,8 @@ user_agent_(creation_params->user_agent), ua_metadata_(creation_params->ua_metadata), thread_(thread), + agent_group_scheduler_compositor_task_runner_(std::move( + creation_params->agent_group_scheduler_compositor_task_runner)), time_origin_(time_origin), font_selector_(MakeGarbageCollected<OffscreenFontSelector>(this)), script_eval_state_(ScriptEvalState::kPauseAfterFetch),
diff --git a/third_party/blink/renderer/core/workers/worker_global_scope.h b/third_party/blink/renderer/core/workers/worker_global_scope.h index c1005886..4e25c65 100644 --- a/third_party/blink/renderer/core/workers/worker_global_scope.h +++ b/third_party/blink/renderer/core/workers/worker_global_scope.h
@@ -226,6 +226,11 @@ // successful and not successful) by the worker. FontMatchingMetrics* GetFontMatchingMetrics(); + scoped_refptr<base::SingleThreadTaskRunner> + GetAgentGroupSchedulerCompositorTaskRunner() { + return agent_group_scheduler_compositor_task_runner_; + } + protected: WorkerGlobalScope(std::unique_ptr<GlobalScopeCreationParams>, WorkerThread*, @@ -280,6 +285,11 @@ WorkerThread* thread_; + // The compositor task runner associated with the |AgentGroupScheduler| this + // worker belongs to. + scoped_refptr<base::SingleThreadTaskRunner> + agent_group_scheduler_compositor_task_runner_; + bool closing_ = false; const base::TimeTicks time_origin_;
diff --git a/third_party/blink/renderer/modules/accessibility/ax_layout_object.cc b/third_party/blink/renderer/modules/accessibility/ax_layout_object.cc index c500b15d..9d107ed 100644 --- a/third_party/blink/renderer/modules/accessibility/ax_layout_object.cc +++ b/third_party/blink/renderer/modules/accessibility/ax_layout_object.cc
@@ -434,82 +434,6 @@ // Check object state. // -bool AXLayoutObject::IsFocused() const { - if (!GetDocument()) - return false; - - // A web area is represented by the Document node in the DOM tree, which isn't - // focusable. Check instead if the frame's selection controller is focused. - if (IsWebArea() && - GetDocument()->GetFrame()->Selection().FrameIsFocusedAndActive()) { - return true; - } - - Element* focused_element = GetDocument()->FocusedElement(); - return focused_element && focused_element == GetElement(); -} - -// aria-grabbed is deprecated in WAI-ARIA 1.1. -AccessibilityGrabbedState AXLayoutObject::IsGrabbed() const { - if (!SupportsARIADragging()) - return kGrabbedStateUndefined; - - const AtomicString& grabbed = GetAttribute(html_names::kAriaGrabbedAttr); - return EqualIgnoringASCIICase(grabbed, "true") ? kGrabbedStateTrue - : kGrabbedStateFalse; -} - -AccessibilitySelectedState AXLayoutObject::IsSelected() const { - if (!GetLayoutObject() || !GetNode() || !IsSubWidget()) - return kSelectedStateUndefined; - - // The aria-selected attribute overrides automatic behaviors. - bool is_selected; - if (HasAOMPropertyOrARIAAttribute(AOMBooleanProperty::kSelected, is_selected)) - return is_selected ? kSelectedStateTrue : kSelectedStateFalse; - - // The selection should only follow the focus when the aria-selected attribute - // is marked as required or implied for this element in the ARIA specs. - // If this object can't follow the focus, then we can't say that it's selected - // nor that it's not. - if (!SelectionShouldFollowFocus()) - return kSelectedStateUndefined; - - // Selection follows focus, but ONLY in single selection containers, and only - // if aria-selected was not present to override. - return IsSelectedFromFocus() ? kSelectedStateTrue : kSelectedStateFalse; -} - -// In single selection containers, selection follows focus unless aria_selected -// is set to false. This is only valid for a subset of elements. -bool AXLayoutObject::IsSelectedFromFocus() const { - if (!SelectionShouldFollowFocus()) - return false; - - // A tab item can also be selected if it is associated to a focused tabpanel - // via the aria-labelledby attribute. - if (IsTabItem() && IsTabItemSelected()) - return kSelectedStateTrue; - - // If not a single selection container, selection does not follow focus. - AXObject* container = ContainerWidget(); - if (!container || container->IsMultiSelectable()) - return false; - - // If this object is not accessibility focused, then it is not selected from - // focus. - AXObject* focused_object = AXObjectCache().FocusedObject(); - if (focused_object != this && - (!focused_object || focused_object->ActiveDescendant() != this)) - return false; - - // In single selection container and accessibility focused => true if - // aria-selected wasn't used as an override. - bool is_selected; - return !HasAOMPropertyOrARIAAttribute(AOMBooleanProperty::kSelected, - is_selected); -} - // Returns true if the object is marked user-select:none bool AXLayoutObject::IsNotUserSelectable() const { if (!GetLayoutObject()) @@ -522,20 +446,6 @@ return (style->UserSelect() == EUserSelect::kNone); } -// Returns true if the node's aria-selected attribute should be set to true -// when the node is focused. This is true for only a subset of roles. -bool AXLayoutObject::SelectionShouldFollowFocus() const { - switch (RoleValue()) { - case ax::mojom::blink::Role::kListBoxOption: - case ax::mojom::blink::Role::kMenuListOption: - case ax::mojom::blink::Role::kTab: - return true; - default: - break; - } - return false; -} - // // Whether objects are ignored, i.e. not included in the tree. // @@ -667,11 +577,6 @@ return false; if (layout_object_->IsText()) { - if (CanIgnoreTextAsEmpty()) { - if (ignored_reasons) - ignored_reasons->push_back(IgnoredReason(kAXEmptyText)); - return true; - } // Ignore TextAlternative of the list marker for SUMMARY because: // - TextAlternatives for disclosure-* are triangle symbol characters used // to visually indicate the expansion state. @@ -755,114 +660,6 @@ return true; } -bool AXLayoutObject::HasAriaCellRole(Element* elem) const { - DCHECK(elem); - const AtomicString& aria_role_str = - elem->FastGetAttribute(html_names::kRoleAttr); - if (aria_role_str.IsEmpty()) - return false; - - ax::mojom::blink::Role aria_role = AriaRoleToWebCoreRole(aria_role_str); - return aria_role == ax::mojom::blink::Role::kCell || - aria_role == ax::mojom::blink::Role::kColumnHeader || - aria_role == ax::mojom::blink::Role::kRowHeader; -} - -// Return true if whitespace is not necessary to keep adjacent_node separate -// in screen reader output from surrounding nodes. -bool AXLayoutObject::CanIgnoreSpaceNextTo(LayoutObject* layout, - bool is_after) const { - if (!layout) - return true; - - // If adjacent to a whitespace character, the current space can be ignored. - if (layout->IsText()) { - auto* layout_text = To<LayoutText>(layout); - if (layout_text->HasEmptyText()) - return false; - if (layout_text->GetText().Impl()->ContainsOnlyWhitespaceOrEmpty()) - return true; - auto adjacent_char = - is_after ? layout_text->FirstCharacterAfterWhitespaceCollapsing() - : layout_text->LastCharacterAfterWhitespaceCollapsing(); - return adjacent_char == ' ' || adjacent_char == '\n' || - adjacent_char == '\t'; - } - - // Keep spaces between images and other visible content. - if (layout->IsLayoutImage()) - return false; - - // Do not keep spaces between blocks. - if (!layout->IsLayoutInline()) - return true; - - // If next to an element that a screen reader will always read separately, - // the the space can be ignored. - // Elements that are naturally focusable even without a tabindex tend - // to be rendered separately even if there is no space between them. - // Some ARIA roles act like table cells and don't need adjacent whitespace to - // indicate separation. - // False negatives are acceptable in that they merely lead to extra whitespace - // static text nodes. - // TODO(aleventhal) Do we want this? Is it too hard/complex for Braille/Cvox? - auto* elem = DynamicTo<Element>(layout->GetNode()); - if (elem && HasAriaCellRole(elem)) { - return true; - } - - // Test against the appropriate child text node. - auto* layout_inline = To<LayoutInline>(layout); - LayoutObject* child = - is_after ? layout_inline->FirstChild() : layout_inline->LastChild(); - return CanIgnoreSpaceNextTo(child, is_after); -} - -bool AXLayoutObject::CanIgnoreTextAsEmpty() const { - if (!layout_object_ || !layout_object_->IsText() || !layout_object_->Parent()) - return false; - - auto* layout_text = To<LayoutText>(layout_object_); - - // Ignore empty text - if (layout_text->HasEmptyText()) { - return true; - } - - // Don't ignore node-less text (e.g. list bullets) - Node* node = GetNode(); - if (!node) - return false; - - // Always keep if anything other than collapsible whitespace. - if (!layout_text->IsAllCollapsibleWhitespace()) - return false; - - // Will now look at sibling nodes. We need the closest element to the - // whitespace markup-wise, e.g. tag1 in these examples: - // [whitespace] <tag1><tag2>x</tag2></tag1> - // <span>[whitespace]</span> <tag1><tag2>x</tag2></tag1> - Node* prev_node = FlatTreeTraversal::PreviousAbsoluteSibling(*node); - if (!prev_node) - return true; - - Node* next_node = FlatTreeTraversal::NextSkippingChildren(*node); - if (!next_node) - return true; - - // Ignore extra whitespace-only text if a sibling will be presented - // separately by screen readers whether whitespace is there or not. - if (CanIgnoreSpaceNextTo(prev_node->GetLayoutObject(), false) || - CanIgnoreSpaceNextTo(next_node->GetLayoutObject(), true)) - return true; - - // Text elements with empty whitespace are returned, because of cases - // such as <span>Hello</span><span> </span><span>World</span>. Keeping - // the whitespace-only node means we now correctly expose "Hello World". - // See crbug.com/435765. - return false; -} - // // Properties of static elements. // @@ -1198,6 +995,10 @@ // For consistency between the forward and backward directions, try to always // return leaf nodes. + // TODO(accessibility) It doesn't make sense to return aria-owned nodes here, + // as they could be anywhere in the tree, and not on this line. + // Should probably only use children from LayoutTreeBuilderTraversal() like + // AXNodeObject::TextFromDescendants() does. if (result && result->ChildCountIncludingIgnored()) return result->DeepestFirstChildIncludingIgnored(); return result; @@ -1313,6 +1114,10 @@ // For consistency between the forward and backward directions, try to always // return leaf nodes. + // TODO(accessibility) It doesn't make sense to return aria-owned nodes here, + // as they could be anywhere in the tree, and not on this line. + // Should probably only use children from LayoutTreeBuilderTraversal() like + // AXNodeObject::TextFromDescendants() does. if (result && result->ChildCountIncludingIgnored()) return result->DeepestLastChildIncludingIgnored(); return result; @@ -1510,10 +1315,9 @@ } LayoutObject* obj = node->GetLayoutObject(); - if (!obj) - return nullptr; - AXObject* result = AXObjectCache().GetOrCreate(obj); + if (!result) + return nullptr; result->UpdateChildrenIfNecessary(); // Allow the element to perform any hit-testing it might need to do to reach @@ -2205,48 +2009,6 @@ // Private. // -bool AXLayoutObject::IsTabItemSelected() const { - if (!IsTabItem() || !GetLayoutObject()) - return false; - - Node* node = GetNode(); - if (!node || !node->IsElementNode()) - return false; - - // The ARIA spec says a tab item can also be selected if it is aria-labeled by - // a tabpanel that has keyboard focus inside of it, or if a tabpanel in its - // aria-controls list has KB focus inside of it. - AXObject* focused_element = AXObjectCache().FocusedObject(); - if (!focused_element) - return false; - - HeapVector<Member<Element>> elements; - if (!HasAOMPropertyOrARIAAttribute(AOMRelationListProperty::kControls, - elements)) - return false; - - for (const auto& element : elements) { - AXObject* tab_panel = AXObjectCache().GetOrCreate(element); - - // A tab item should only control tab panels. - if (!tab_panel || - tab_panel->RoleValue() != ax::mojom::blink::Role::kTabPanel) { - continue; - } - - AXObject* check_focus_element = focused_element; - // Check if the focused element is a descendant of the element controlled by - // the tab item. - while (check_focus_element) { - if (tab_panel == check_focus_element) - return true; - check_focus_element = check_focus_element->ParentObject(); - } - } - - return false; -} - AXObject* AXLayoutObject::AccessibilityImageMapHitTest( HTMLAreaElement* area, const IntPoint& point) const {
diff --git a/third_party/blink/renderer/modules/accessibility/ax_layout_object.h b/third_party/blink/renderer/modules/accessibility/ax_layout_object.h index 9ab5739..56e1df7a 100644 --- a/third_party/blink/renderer/modules/accessibility/ax_layout_object.h +++ b/third_party/blink/renderer/modules/accessibility/ax_layout_object.h
@@ -89,18 +89,12 @@ bool IsVisited() const override; // Check object state. - bool IsFocused() const override; - // aria-grabbed is deprecated in WAI-ARIA 1.1. - AccessibilityGrabbedState IsGrabbed() const override; - AccessibilitySelectedState IsSelected() const override; - bool IsSelectedFromFocus() const override; bool IsNotUserSelectable() const override; // Whether objects are ignored, i.e. not included in the tree. AXObjectInclusion DefaultObjectInclusion( IgnoredReasons* = nullptr) const override; bool ComputeAccessibilityIsIgnored(IgnoredReasons* = nullptr) const override; - bool CanIgnoreTextAsEmpty() const override; // Properties of static elements. ax::mojom::blink::ListStyle GetListStyle() const final; @@ -172,16 +166,12 @@ ax::mojom::blink::Role dom_role) const override; private: - bool IsTabItemSelected() const; AXObject* AccessibilityImageMapHitTest(HTMLAreaElement*, const IntPoint&) const; bool FindAllTableCellsWithRole(ax::mojom::blink::Role, AXObjectVector&) const; LayoutRect ComputeElementRect() const; - bool CanIgnoreSpaceNextTo(LayoutObject*, bool is_after) const; - bool HasAriaCellRole(Element*) const; bool IsPlaceholder() const; - bool SelectionShouldFollowFocus() const; static ax::mojom::blink::TextDecorationStyle TextDecorationStyleToAXTextDecorationStyle(
diff --git a/third_party/blink/renderer/modules/accessibility/ax_node_object.cc b/third_party/blink/renderer/modules/accessibility/ax_node_object.cc index 9abe035..bab31c67 100644 --- a/third_party/blink/renderer/modules/accessibility/ax_node_object.cc +++ b/third_party/blink/renderer/modules/accessibility/ax_node_object.cc
@@ -551,14 +551,6 @@ return true; } -bool AXNodeObject::CanIgnoreTextAsEmpty() const { - // Note: it's safe to call AXNodeObject::ComputeAccessibilityIsIgnored, - // since that has just the logic we need - but note that - // AXLayoutObject::ComputeAccessibilityIsIgnored calls CanIgnoreTextAsEmpty - // so that'd create a loop. - return ComputeAccessibilityIsIgnored(); -} - static bool IsListElement(Node* node) { return IsA<HTMLUListElement>(*node) || IsA<HTMLOListElement>(*node) || IsA<HTMLDListElement>(*node); @@ -1193,6 +1185,9 @@ } void AXNodeObject::Detach() { +#if DCHECK_IS_ON() + DCHECK(!is_adding_children_) << "Cannot Detach |this| during AddChildren()"; +#endif AXObject::Detach(); node_ = nullptr; } @@ -1370,6 +1365,9 @@ } bool AXNodeObject::IsOffScreen() const { + if (IsDetached()) + return false; + DCHECK(GetNode()); return DisplayLockUtilities::NearestLockedExclusiveAncestor(*GetNode()); } @@ -1431,6 +1429,138 @@ return IsTextControl() || AXObject::IsClickable(); } +bool AXNodeObject::IsFocused() const { + if (!GetDocument()) + return false; + + // A web area is represented by the Document node in the DOM tree, which isn't + // focusable. Check instead if the frame's selection controller is focused. + if (IsWebArea() && + GetDocument()->GetFrame()->Selection().FrameIsFocusedAndActive()) { + return true; + } + + Element* focused_element = GetDocument()->FocusedElement(); + return focused_element && focused_element == GetElement(); +} + +// aria-grabbed is deprecated in WAI-ARIA 1.1. +AccessibilityGrabbedState AXNodeObject::IsGrabbed() const { + if (!SupportsARIADragging()) + return kGrabbedStateUndefined; + + const AtomicString& grabbed = GetAttribute(html_names::kAriaGrabbedAttr); + return EqualIgnoringASCIICase(grabbed, "true") ? kGrabbedStateTrue + : kGrabbedStateFalse; +} + +AccessibilitySelectedState AXNodeObject::IsSelected() const { + if (!GetNode() || !GetLayoutObject() || !IsSubWidget()) + return kSelectedStateUndefined; + + // The aria-selected attribute overrides automatic behaviors. + bool is_selected; + if (HasAOMPropertyOrARIAAttribute(AOMBooleanProperty::kSelected, is_selected)) + return is_selected ? kSelectedStateTrue : kSelectedStateFalse; + + // The selection should only follow the focus when the aria-selected attribute + // is marked as required or implied for this element in the ARIA specs. + // If this object can't follow the focus, then we can't say that it's selected + // nor that it's not. + if (!SelectionShouldFollowFocus()) + return kSelectedStateUndefined; + + // Selection follows focus, but ONLY in single selection containers, and only + // if aria-selected was not present to override. + return IsSelectedFromFocus() ? kSelectedStateTrue : kSelectedStateFalse; +} + +// In single selection containers, selection follows focus unless aria_selected +// is set to false. This is only valid for a subset of elements. +bool AXNodeObject::IsSelectedFromFocus() const { + if (!SelectionShouldFollowFocus()) + return false; + + // A tab item can also be selected if it is associated to a focused tabpanel + // via the aria-labelledby attribute. + if (IsTabItem() && IsTabItemSelected()) + return kSelectedStateTrue; + + // If not a single selection container, selection does not follow focus. + AXObject* container = ContainerWidget(); + if (!container || container->IsMultiSelectable()) + return false; + + // If this object is not accessibility focused, then it is not selected from + // focus. + AXObject* focused_object = AXObjectCache().FocusedObject(); + if (focused_object != this && + (!focused_object || focused_object->ActiveDescendant() != this)) + return false; + + // In single selection container and accessibility focused => true if + // aria-selected wasn't used as an override. + bool is_selected; + return !HasAOMPropertyOrARIAAttribute(AOMBooleanProperty::kSelected, + is_selected); +} + +// Returns true if the node's aria-selected attribute should be set to true +// when the node is focused. This is true for only a subset of roles. +bool AXNodeObject::SelectionShouldFollowFocus() const { + switch (RoleValue()) { + case ax::mojom::blink::Role::kListBoxOption: + case ax::mojom::blink::Role::kMenuListOption: + case ax::mojom::blink::Role::kTab: + return true; + default: + break; + } + return false; +} + +bool AXNodeObject::IsTabItemSelected() const { + if (!IsTabItem() || !GetLayoutObject()) + return false; + + Node* node = GetNode(); + if (!node || !node->IsElementNode()) + return false; + + // The ARIA spec says a tab item can also be selected if it is aria-labeled by + // a tabpanel that has keyboard focus inside of it, or if a tabpanel in its + // aria-controls list has KB focus inside of it. + AXObject* focused_element = AXObjectCache().FocusedObject(); + if (!focused_element) + return false; + + HeapVector<Member<Element>> elements; + if (!HasAOMPropertyOrARIAAttribute(AOMRelationListProperty::kControls, + elements)) + return false; + + for (const auto& element : elements) { + AXObject* tab_panel = AXObjectCache().GetOrCreate(element); + + // A tab item should only control tab panels. + if (!tab_panel || + tab_panel->RoleValue() != ax::mojom::blink::Role::kTabPanel) { + continue; + } + + AXObject* check_focus_element = focused_element; + // Check if the focused element is a descendant of the element controlled by + // the tab item. + while (check_focus_element) { + if (tab_panel == check_focus_element) + return true; + check_focus_element = check_focus_element->ParentObject(); + } + } + + return false; +} + AXRestriction AXNodeObject::Restriction() const { Element* elem = GetElement(); if (!elem) @@ -1506,11 +1636,12 @@ if (GetNode() && IsA<HTMLSummaryElement>(*GetNode())) { if (GetNode()->parentNode() && - IsA<HTMLDetailsElement>(GetNode()->parentNode())) + IsA<HTMLDetailsElement>(GetNode()->parentNode())) { return To<Element>(GetNode()->parentNode()) ->FastHasAttribute(html_names::kOpenAttr) ? kExpandedExpanded : kExpandedCollapsed; + } } bool expanded = false; @@ -3264,8 +3395,12 @@ << "\nParent is " << ToString(true, true) << "\nFirst child is " << children_[0]->ToString(true, true); #endif -#define CHECK_ATTACHED() \ - DCHECK(!IsDetached()) << "Detached adding children: " << ToString(true, true) +// TODO(aleventhal) Nothing should become detached in the while adding children. +#define CHECK_ATTACHED() \ + if (IsDetached()) { \ + NOTREACHED() << "Detached adding children: " << ToString(true, true); \ + return; \ + } DCHECK(children_dirty_); children_dirty_ = false; @@ -3324,15 +3459,6 @@ if (!child_obj) return; - // TODO(aleventhal) Move to Is[Layout|Node]ObjectRelevantForAccessibility(), - // which is where we decide whether an AXObject can be created at all, - // otherwise are create these AXObjects and they use up memory. - if (RuntimeEnabledFeatures::AccessibilityExposeIgnoredNodesEnabled() && - child_obj && - child_obj->RoleValue() == ax::mojom::blink::Role::kStaticText && - child_obj->CanIgnoreTextAsEmpty()) - return; - // <area> children should only be added via AddImageMapChildren(), as the // children of an <image usemap>, and never alone or as children of a <map>. if (child_obj->IsImageMapLink())
diff --git a/third_party/blink/renderer/modules/accessibility/ax_node_object.h b/third_party/blink/renderer/modules/accessibility/ax_node_object.h index f8499b0..a275cbe 100644 --- a/third_party/blink/renderer/modules/accessibility/ax_node_object.h +++ b/third_party/blink/renderer/modules/accessibility/ax_node_object.h
@@ -58,7 +58,6 @@ AXObjectInclusion ShouldIncludeBasedOnSemantics( IgnoredReasons* = nullptr) const; bool ComputeAccessibilityIsIgnored(IgnoredReasons* = nullptr) const override; - bool CanIgnoreTextAsEmpty() const override; const AXObject* InheritsPresentationalRoleFrom() const override; ax::mojom::blink::Role DetermineTableSectionRole() const; ax::mojom::blink::Role DetermineTableCellRole() const; @@ -116,7 +115,12 @@ // Check object state. bool IsClickable() const final; + bool IsFocused() const override; + // aria-grabbed is deprecated in WAI-ARIA 1.1. + AccessibilityGrabbedState IsGrabbed() const override; AccessibilityExpanded IsExpanded() const override; + AccessibilitySelectedState IsSelected() const override; + bool IsSelectedFromFocus() const override; bool IsRequired() const final; bool IsControl() const override; AXRestriction Restriction() const override; @@ -290,6 +294,8 @@ String PlaceholderFromNativeAttribute() const; String GetValueContributionToName() const; bool UseNameFromSelectedOption() const; + bool SelectionShouldFollowFocus() const; + virtual bool IsTabItemSelected() const; void AddNodeChildren(); void AddLayoutChildren();
diff --git a/third_party/blink/renderer/modules/accessibility/ax_object.cc b/third_party/blink/renderer/modules/accessibility/ax_object.cc index 452c154..67199fc 100644 --- a/third_party/blink/renderer/modules/accessibility/ax_object.cc +++ b/third_party/blink/renderer/modules/accessibility/ax_object.cc
@@ -3319,6 +3319,7 @@ } const AXObject::AXObjectVector& AXObject::ChildrenIncludingIgnored() const { + DCHECK(!IsDetached()); return const_cast<AXObject*>(this)->ChildrenIncludingIgnored(); } @@ -3385,11 +3386,16 @@ } AXObject* AXObject::LastChildIncludingIgnored() const { + DCHECK(!IsDetached()); return ChildCountIncludingIgnored() ? *(ChildrenIncludingIgnored().end() - 1) : nullptr; } AXObject* AXObject::DeepestFirstChildIncludingIgnored() const { + if (IsDetached()) { + NOTREACHED(); + return nullptr; + } if (!ChildCountIncludingIgnored()) return nullptr; @@ -5081,7 +5087,8 @@ if (IsAXLayoutObject() && !GetLayoutObject()) string_builder = string_builder + " missingLayout"; - string_builder = string_builder + " name="; + if (!cached_values_only) + string_builder = string_builder + " name="; } else { string_builder = string_builder + ": "; }
diff --git a/third_party/blink/renderer/modules/accessibility/ax_object.h b/third_party/blink/renderer/modules/accessibility/ax_object.h index d22ca0b7d..a7c4e604 100644 --- a/third_party/blink/renderer/modules/accessibility/ax_object.h +++ b/third_party/blink/renderer/modules/accessibility/ax_object.h
@@ -524,7 +524,6 @@ virtual bool ComputeAccessibilityIsIgnored(IgnoredReasons* = nullptr) const { return true; } - virtual bool CanIgnoreTextAsEmpty() const { return false; } bool AccessibilityIsIgnoredByDefault(IgnoredReasons* = nullptr) const; virtual AXObjectInclusion DefaultObjectInclusion( IgnoredReasons* = nullptr) const; @@ -861,7 +860,7 @@ } // Called on the AX object after the layout tree determines which is the right // AXLayoutObject. - virtual AXObject* ElementAccessibilityHitTest(const IntPoint&) const; + AXObject* ElementAccessibilityHitTest(const IntPoint&) const; // // High-level accessibility tree access. Other modules should only use these
diff --git a/third_party/blink/renderer/modules/accessibility/ax_object_cache_impl.cc b/third_party/blink/renderer/modules/accessibility/ax_object_cache_impl.cc index 6d8aeb1f..3cc75da 100644 --- a/third_party/blink/renderer/modules/accessibility/ax_object_cache_impl.cc +++ b/third_party/blink/renderer/modules/accessibility/ax_object_cache_impl.cc
@@ -67,6 +67,7 @@ #include "third_party/blink/renderer/core/html_names.h" #include "third_party/blink/renderer/core/input_type_names.h" #include "third_party/blink/renderer/core/layout/api/line_layout_api_shim.h" +#include "third_party/blink/renderer/core/layout/layout_inline.h" #include "third_party/blink/renderer/core/layout/layout_progress.h" #include "third_party/blink/renderer/core/layout/layout_table.h" #include "third_party/blink/renderer/core/layout/layout_table_cell.h" @@ -142,6 +143,101 @@ } } +bool HasAriaCellRole(Element* elem) { + DCHECK(elem); + const AtomicString& role_str = elem->FastGetAttribute(html_names::kRoleAttr); + if (role_str.IsEmpty()) + return false; + + return ui::IsCellOrTableHeader(AXObject::AriaRoleToWebCoreRole(role_str)); +} + +// Return true if whitespace is not necessary to keep adjacent_node separate +// in screen reader output from surrounding nodes. +bool CanIgnoreSpaceNextTo(LayoutObject* layout_object, bool is_after) { + if (!layout_object) + return true; + + // If adjacent to a whitespace character, the current space can be ignored. + if (layout_object->IsText()) { + auto* layout_text = To<LayoutText>(layout_object); + if (layout_text->HasEmptyText()) + return false; + if (layout_text->GetText().Impl()->ContainsOnlyWhitespaceOrEmpty()) + return true; + auto adjacent_char = + is_after ? layout_text->FirstCharacterAfterWhitespaceCollapsing() + : layout_text->LastCharacterAfterWhitespaceCollapsing(); + return adjacent_char == ' ' || adjacent_char == '\n' || + adjacent_char == '\t'; + } + + // Keep spaces between images and other visible content. + if (layout_object->IsLayoutImage()) + return false; + + // Do not keep spaces between blocks. + if (!layout_object->IsLayoutInline()) + return true; + + // If next to an element that a screen reader will always read separately, + // the the space can be ignored. + // Elements that are naturally focusable even without a tabindex tend + // to be rendered separately even if there is no space between them. + // Some ARIA roles act like table cells and don't need adjacent whitespace to + // indicate separation. + // False negatives are acceptable in that they merely lead to extra whitespace + // static text nodes. + auto* elem = DynamicTo<Element>(layout_object->GetNode()); + if (elem && HasAriaCellRole(elem)) + return true; + + // Test against the appropriate child text node. + auto* layout_inline = To<LayoutInline>(layout_object); + LayoutObject* child = + is_after ? layout_inline->FirstChild() : layout_inline->LastChild(); + return CanIgnoreSpaceNextTo(child, is_after); +} + +bool IsTextRelevantForAccessibility(const LayoutText& layout_text) { + DCHECK(layout_text.Parent()); + Node* node = layout_text.GetNode(); + DCHECK(node); // Anonymous text is processed earlier, doesn't reach here. + + // Ignore empty text. + if (layout_text.HasEmptyText()) + return false; + + // Always keep if anything other than collapsible whitespace. + if (!layout_text.IsAllCollapsibleWhitespace() || layout_text.IsBR()) + return true; + + // Will now look at sibling nodes. We need the closest element to the + // whitespace markup-wise, e.g. tag1 in these examples: + // [whitespace] <tag1><tag2>x</tag2></tag1> + // <span>[whitespace]</span> <tag1><tag2>x</tag2></tag1> + Node* prev_node = FlatTreeTraversal::PreviousAbsoluteSibling(*node); + if (!prev_node) + return false; + + Node* next_node = FlatTreeTraversal::NextSkippingChildren(*node); + if (!next_node) + return false; + + // Ignore extra whitespace-only text if a sibling will be presented + // separately by screen readers whether whitespace is there or not. + if (CanIgnoreSpaceNextTo(prev_node->GetLayoutObject(), false) || + CanIgnoreSpaceNextTo(next_node->GetLayoutObject(), true)) { + return false; + } + + // Text elements with empty whitespace are returned, because of cases + // such as <span>Hello</span><span> </span><span>World</span>. Keeping + // the whitespace-only node means we now correctly expose "Hello World". + // See crbug.com/435765. + return true; +} + bool IsLayoutObjectRelevantForAccessibility(const LayoutObject& layout_object) { if (layout_object.IsAnonymous()) { // Anonymous means there is no DOM node, and it's been inserted by the @@ -149,8 +245,11 @@ // inserted as a parent of an inline where there are block siblings. // Visible anonymous content (text, image, layout quotes) is relevant. - if (!layout_object.CanHaveChildren()) + if (!layout_object.CanHaveChildren()) { + if (layout_object.IsText()) + return !To<LayoutText>(layout_object).HasEmptyText(); return true; + } // Anonymous containers are not relevant, unless inside a pseudo element. // Allowing anonymous pseudo elements ensures that all visible descendant @@ -159,6 +258,9 @@ return IsPseudoElementDescendant(layout_object); } + if (layout_object.IsText()) + return IsTextRelevantForAccessibility(To<LayoutText>(layout_object)); + Node* node = layout_object.GetNode(); DCHECK(node) << "Non-anonymous layout objects always have a node"; @@ -172,11 +274,46 @@ return true; } -bool IsNodeRelevantForAccessibility(const Node* node, bool parent_ax_known) { +bool IsNodeRelevantForAccessibility(const Node* node, + bool parent_ax_known, + bool is_layout_object_relevant) { if (!node || !node->isConnected()) return false; - if (!node->IsElementNode() && !node->IsTextNode() && !node->IsDocumentNode()) + if (node->IsDocumentNode()) + return true; + + if (node->IsTextNode()) { + // Layout has more info available to determine if whitespace is relevant. + // If display-locked, layout object may be missing or stale: + // Assume that all display-locked text nodes are relevant. + if (DisplayLockUtilities::NearestLockedInclusiveAncestor(*node)) + return true; + + // If rendered, decision is from IsLayoutObjectRelevantForAccessibility(). + if (node->GetLayoutObject()) + return is_layout_object_relevant; + + // If unrendered + no parent, it is in a shadow tree. Consider irrelevant. + if (!node->parentElement()) { + DCHECK(node->IsInShadowTree()); + return false; + } + + // If unrendered and in <canvas>, consider even whitespace relevant. + // TODO(aleventhal) Consider including all text, even unrendered whitespace, + // whether or not in <canvas>. For now this matches previous behavior. + // Including all text would allow simply returning true at this point. + if (node->parentElement()->IsInCanvasSubtree()) + return true; + + // Must be unrendered because of CSS. Consider relevant if non-whitespace. + // Allowing rendered non-whitespace to be considered relevant will allow + // use for accessible relations such as labelledby and describedby. + return !To<Text>(node)->ContainsOnlyWhitespaceOrEmpty(); + } + + if (!node->IsElementNode()) return false; // Only documents, elements and text nodes get ax objects. if (IsA<HTMLAreaElement>(node) && @@ -255,6 +392,11 @@ } void AXObjectCacheImpl::Dispose() { +#if DCHECK_IS_ON() + DCHECK(!has_been_disposed_) << "Something is wrong, trying to dispose twice."; + has_been_disposed_ = true; +#endif + for (auto& entry : objects_) { AXObject* obj = entry.value; obj->Detach(); @@ -263,9 +405,6 @@ permission_observer_receiver_.reset(); -#if DCHECK_IS_ON() - has_been_disposed_ = true; -#endif } AXObject* AXObjectCacheImpl::Root() { @@ -395,7 +534,16 @@ Invalidate(ax_id); } - return objects_.at(ax_id); + AXObject* result = objects_.at(ax_id); +#if DCHECK_IS_ON() + DCHECK(result) << "Had AXID for Node but no entry in objects_"; + DCHECK(result->IsAXNodeObject()); + // Do not allow detached objects except when disposing entire tree. + DCHECK(!result->IsDetached() || has_been_disposed_) + << "Detached AXNodeObject in map: " + << "AXID#" << ax_id << " Node=" << node; +#endif + return result; } AXObject* AXObjectCacheImpl::Get(const Node* node) { @@ -431,13 +579,31 @@ Invalidate(node_id); } - if (layout_id) - return objects_.at(layout_id); - + if (layout_id) { + AXObject* result = objects_.at(layout_id); +#if DCHECK_IS_ON() + DCHECK(result) << "Had AXID for LayoutObject but no entry in objects_"; + DCHECK(result->IsAXLayoutObject()); + // Do not allow detached objects except when disposing entire tree. + DCHECK(!result->IsDetached() || has_been_disposed_) + << "Detached AXLayoutObject in map: " + << "AXID#" << layout_id << " LayoutObject=" << layout_object; +#endif + return result; + } if (!node_id) return nullptr; - return objects_.at(node_id); + AXObject* result = objects_.at(node_id); +#if DCHECK_IS_ON() + DCHECK(result) << "Had AXID for Node but no entry in objects_"; + DCHECK(result->IsAXNodeObject()); + // Do not allow detached objects except when disposing entire tree. + DCHECK(!result->IsDetached() || has_been_disposed_) + << "Detached AXNodeObject in map: " + << "AXID#" << node_id << " Node=" << node; +#endif + return result; } AXObject* AXObjectCacheImpl::Get(AbstractInlineTextBox* inline_text_box) { @@ -449,7 +615,16 @@ if (!ax_id) return nullptr; - return objects_.at(ax_id); + AXObject* result = objects_.at(ax_id); +#if DCHECK_IS_ON() + DCHECK(result) << "Had AXID for inline text box but no entry in objects_"; + DCHECK(result->IsAXInlineTextBox()); + // Do not allow detached objects except when disposing entire tree. + DCHECK(!result->IsDetached() || has_been_disposed_) + << "Detached AXInlineTextBox in map: " + << "AXID#" << ax_id << " Node=" << inline_text_box->GetText(); +#endif + return result; } void AXObjectCacheImpl::Invalidate(AXID ax_id) { @@ -480,7 +655,16 @@ if (!ax_id) return nullptr; - return objects_.at(ax_id); + AXObject* result = objects_.at(ax_id); +#if DCHECK_IS_ON() + DCHECK(result) << "Had AXID for accessible_node but no entry in objects_"; + DCHECK(result->IsVirtualObject()); + // Do not allow detached objects except when disposing entire tree. + DCHECK(!result->IsDetached() || has_been_disposed_) + << "Detached AXVirtualObject in map: " + << "AXID#" << ax_id << " Node=" << accessible_node->element(); +#endif + return result; } AXObject* AXObjectCacheImpl::CreateFromRenderer(LayoutObject* layout_object) { @@ -593,7 +777,17 @@ AXObject* parent_if_known, AXID use_axid) { DCHECK(node); - if (!IsNodeRelevantForAccessibility(node, parent_if_known)) + + // If the node has a layout object, prefer using that as the primary key for + // the AXObject, with the exception of the HTMLAreaElement and nodes within + // a locked subtree, which are created based on its node. + LayoutObject* layout_object = node->GetLayoutObject(); + if (layout_object && IsLayoutObjectRelevantForAccessibility(*layout_object) && + !DisplayLockUtilities::NearestLockedExclusiveAncestor(*node)) { + return CreateAndInit(layout_object, parent_if_known, use_axid); + } + + if (!IsNodeRelevantForAccessibility(node, parent_if_known, false)) return nullptr; #if DCHECK_IS_ON() @@ -606,15 +800,6 @@ << "Unclean document at lifecycle " << document->Lifecycle().ToString(); #endif // DCHECK_IS_ON() - // If the node has a layout object, prefer using that as the primary key for - // the AXObject, with the exception of the HTMLAreaElement and nodes within - // a locked subtree, which are created based on its node. - LayoutObject* layout_object = node->GetLayoutObject(); - if (layout_object && IsLayoutObjectRelevantForAccessibility(*layout_object) && - !DisplayLockUtilities::NearestLockedExclusiveAncestor(*node)) { - return CreateAndInit(layout_object, parent_if_known, use_axid); - } - // Return null if inside a shadow tree of something that can't have children, // for example, an <img> has a user agent shadow root containing a <span> for // the alt text. Do not create an accessible for that as it would be unable @@ -672,7 +857,7 @@ Node* node = layout_object->GetNode(); - if (node && !IsNodeRelevantForAccessibility(node, parent_if_known)) + if (node && !IsNodeRelevantForAccessibility(node, parent_if_known, true)) return nullptr; // Return null if inside a shadow tree of something that can't have children,
diff --git a/third_party/blink/renderer/modules/remote_objects/remote_object.cc b/third_party/blink/renderer/modules/remote_objects/remote_object.cc index c4fb1d11..e71b19ed 100644 --- a/third_party/blink/renderer/modules/remote_objects/remote_object.cc +++ b/third_party/blink/renderer/modules/remote_objects/remote_object.cc
@@ -31,6 +31,8 @@ return "invoking Object.getClass() is not permitted"; case mojom::blink::RemoteInvocationError::EXCEPTION_THROWN: return "an exception was thrown"; + case mojom::blink::RemoteInvocationError::NON_ASSIGNABLE_TYPES: + return "an incompatible object type passed to method parameter"; default: return String::Format("unknown RemoteInvocationError value: %d", value); } @@ -165,8 +167,22 @@ std::move(remote_typed_array)); } + if (js_value->IsArrayBuffer() || js_value->IsArrayBufferView()) { + // If ArrayBuffer or ArrayBufferView is not a TypedArray, we should treat it + // as undefined. + return mojom::blink::RemoteInvocationArgument::NewSingletonValue( + mojom::blink::SingletonJavaScriptValue::kUndefined); + } + if (js_value->IsObject()) { v8::Local<v8::Object> object_val = js_value.As<v8::Object>(); + + RemoteObject* remote_object = nullptr; + if (gin::ConvertFromV8(isolate, object_val, &remote_object)) { + return mojom::blink::RemoteInvocationArgument::NewObjectIdValue( + remote_object->object_id()); + } + v8::Local<v8::Value> length_value; v8::TryCatch try_catch(isolate); v8::MaybeLocal<v8::Value> maybe_length_value = object_val->Get(
diff --git a/third_party/blink/renderer/modules/remote_objects/remote_object.h b/third_party/blink/renderer/modules/remote_objects/remote_object.h index 6c12a5e3..72eeb6013 100644 --- a/third_party/blink/renderer/modules/remote_objects/remote_object.h +++ b/third_party/blink/renderer/modules/remote_objects/remote_object.h
@@ -37,6 +37,8 @@ std::vector<std::string> EnumerateNamedProperties( v8::Isolate* isolate) override; + int32_t object_id() const { return object_id_; } + private: static void RemoteObjectInvokeCallback( const v8::FunctionCallbackInfo<v8::Value>& info);
diff --git a/third_party/blink/renderer/modules/webcodecs/BUILD.gn b/third_party/blink/renderer/modules/webcodecs/BUILD.gn index 01a7bf8..d0dcc6c 100644 --- a/third_party/blink/renderer/modules/webcodecs/BUILD.gn +++ b/third_party/blink/renderer/modules/webcodecs/BUILD.gn
@@ -82,6 +82,7 @@ testonly = true sources = [ "audio_decoder_broker_test.cc", + "audio_frame_test.cc", "decoder_selector_test.cc", "encoded_video_chunk_test.cc", "image_decoder_external_test.cc",
diff --git a/third_party/blink/renderer/modules/webcodecs/audio_frame.cc b/third_party/blink/renderer/modules/webcodecs/audio_frame.cc index 7a15007..1c7110c 100644 --- a/third_party/blink/renderer/modules/webcodecs/audio_frame.cc +++ b/third_party/blink/renderer/modules/webcodecs/audio_frame.cc
@@ -30,27 +30,14 @@ auto converted_data = media::AudioBus::Create(buffer->channel_count(), buffer->frame_count()); + std::vector<float*> wrapped_channels(buffer_->numberOfChannels()); + for (size_t ch = 0; ch < wrapped_channels.size(); ++ch) + wrapped_channels[ch] = buffer_->getChannelData(ch)->Data(); + // Copy the frames, converting from |buffer|'s internal format to float. - // TODO(https://crbug.com/1171840): Add a version of - // media::AudioBus::ReadFrame that can directly read into |buffer_|'s data. // TODO(chcunningham): Avoid this copy by refactoring blink::AudioBuffer to // ref a media::AudioBuffer and only copy for calls to copyToChannel(). - buffer->ReadFrames(converted_data->frames(), 0 /* source_frame_offset */, - 0 /* dest_frame_offset */, converted_data.get()); - - CopyDataToInternalBuffer(converted_data.get()); -} - -void AudioFrame::CopyDataToInternalBuffer(media::AudioBus* data) { - DCHECK_EQ(static_cast<int>(buffer_->numberOfChannels()), data->channels()); - DCHECK_EQ(static_cast<int>(buffer_->length()), data->frames()); - - for (int i = 0; i < data->channels(); ++i) { - size_t byte_length = buffer_->getChannelData(i)->byteLength(); - DCHECK_EQ(byte_length, data->frames() * sizeof(float)); - float* buffer_data_dest = buffer_->getChannelData(i)->Data(); - memcpy(data->channel(i), buffer_data_dest, byte_length); - } + buffer->ReadAllFrames(wrapped_channels); } std::unique_ptr<AudioFrameSerializationData> @@ -69,7 +56,7 @@ size_t byte_length = buffer_->getChannelData(i)->byteLength(); DCHECK_EQ(byte_length, data_copy->frames() * sizeof(float)); float* buffer_data_src = buffer_->getChannelData(i)->Data(); - memcpy(buffer_data_src, data_copy->channel(i), byte_length); + memcpy(data_copy->channel(i), buffer_data_src, byte_length); } return AudioFrameSerializationData::Wrap( @@ -87,7 +74,16 @@ // Copy the frames. // TODO(https://crbug.com/1168418): Avoid this copy by refactoring // blink::AudioBuffer accept a serializable audio data backing object. - CopyDataToInternalBuffer(data_bus); + DCHECK_EQ(static_cast<int>(buffer_->numberOfChannels()), + data_bus->channels()); + DCHECK_EQ(static_cast<int>(buffer_->length()), data_bus->frames()); + + for (int i = 0; i < data_bus->channels(); ++i) { + size_t byte_length = buffer_->getChannelData(i)->byteLength(); + DCHECK_EQ(byte_length, data_bus->frames() * sizeof(float)); + float* buffer_data_dest = buffer_->getChannelData(i)->Data(); + memcpy(buffer_data_dest, data_bus->channel(i), byte_length); + } } void AudioFrame::close() {
diff --git a/third_party/blink/renderer/modules/webcodecs/audio_frame.h b/third_party/blink/renderer/modules/webcodecs/audio_frame.h index c4c35d0a..ab27cdda 100644 --- a/third_party/blink/renderer/modules/webcodecs/audio_frame.h +++ b/third_party/blink/renderer/modules/webcodecs/audio_frame.h
@@ -39,8 +39,6 @@ void Trace(Visitor*) const override; private: - void CopyDataToInternalBuffer(media::AudioBus* data); - uint64_t timestamp_; Member<AudioBuffer> buffer_; };
diff --git a/third_party/blink/renderer/modules/webcodecs/audio_frame_test.cc b/third_party/blink/renderer/modules/webcodecs/audio_frame_test.cc new file mode 100644 index 0000000..2ff6a379 --- /dev/null +++ b/third_party/blink/renderer/modules/webcodecs/audio_frame_test.cc
@@ -0,0 +1,158 @@ +// 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 "third_party/blink/renderer/modules/webcodecs/audio_frame.h" +#include "media/base/test_helpers.h" +#include "testing/gtest/include/gtest/gtest.h" +#include "third_party/blink/renderer/bindings/core/v8/v8_binding_for_testing.h" +#include "third_party/blink/renderer/bindings/modules/v8/v8_audio_frame_init.h" +#include "third_party/blink/renderer/modules/webaudio/audio_buffer.h" +#include "third_party/blink/renderer/modules/webcodecs/audio_frame_serialization_data.h" +#include "third_party/blink/renderer/platform/heap/thread_state.h" +#include "ui/gfx/geometry/rect.h" +#include "ui/gfx/geometry/size.h" + +namespace blink { + +namespace { +// Default test values +constexpr uint64_t kTimestampInMicroSeconds = 1234; +constexpr int kChannels = 2; +constexpr int kFrames = 20; +constexpr int kSampleRate = 8000; +} // namespace + +class AudioFrameTest : public testing::Test { + protected: + AudioBuffer* CreateDefaultAudioBuffer() { + auto* audio_buffer = + AudioBuffer::CreateUninitialized(kChannels, kFrames, kSampleRate); + for (int ch = 0; ch < kChannels; ++ch) { + float* buffer_data = audio_buffer->getChannelData(ch)->Data(); + for (int i = 0; i < kFrames; ++i) { + buffer_data[i] = static_cast<float>((i + ch * kFrames) / 1000.0f); + } + } + return audio_buffer; + } + + AudioFrameInit* CreateDefaultAudioFrameInit(AudioBuffer* buffer) { + auto* audio_frame_init = AudioFrameInit::Create(); + audio_frame_init->setBuffer(buffer); + audio_frame_init->setTimestamp(kTimestampInMicroSeconds); + return audio_frame_init; + } +}; + +TEST_F(AudioFrameTest, ConstructFromMediaBuffer) { + const media::ChannelLayout channel_layout = + media::ChannelLayout::CHANNEL_LAYOUT_STEREO; + const int channels = ChannelLayoutToChannelCount(channel_layout); + constexpr base::TimeDelta timestamp = + base::TimeDelta::FromMicroseconds(kTimestampInMicroSeconds); + constexpr int kStart = 1; + constexpr int kIncrement = 1; + scoped_refptr<media::AudioBuffer> media_buffer = + media::MakeAudioBuffer<int16_t>(media::SampleFormat::kSampleFormatS16, + channel_layout, channels, kSampleRate, + kStart, kIncrement, kFrames, timestamp); + + auto* frame = MakeGarbageCollected<AudioFrame>(media_buffer); + + EXPECT_EQ(frame->timestamp(), kTimestampInMicroSeconds); + + EXPECT_TRUE(frame->buffer()); + EXPECT_EQ(frame->buffer()->numberOfChannels(), + static_cast<unsigned>(channels)); + EXPECT_EQ(frame->buffer()->length(), static_cast<uint32_t>(kFrames)); + + // The buffer's internal int16_t value should have been converted to float32. + constexpr float kFloatIncrement = + static_cast<float>(kIncrement) / std::numeric_limits<int16_t>::max(); + constexpr float kFloatStart = + static_cast<float>(kStart) / std::numeric_limits<int16_t>::max(); + + // Verify the data was properly converted. + for (int ch = 0; ch < channels; ++ch) { + float* internal_channel = frame->buffer()->getChannelData(ch)->Data(); + float start_value = kFloatStart + ch * kFloatIncrement * kFrames; + for (int i = 0; i < kFrames; ++i) { + float expected_value = start_value + i * kFloatIncrement; + ASSERT_FLOAT_EQ(expected_value, internal_channel[i]) + << "i=" << i << ", ch=" << ch; + } + } +} + +TEST_F(AudioFrameTest, ConstructFromAudioFrameInit) { + auto* audio_buffer = CreateDefaultAudioBuffer(); + + auto* audio_frame_init = CreateDefaultAudioFrameInit(audio_buffer); + + auto* frame = MakeGarbageCollected<AudioFrame>(audio_frame_init); + + EXPECT_EQ(frame->timestamp(), kTimestampInMicroSeconds); + EXPECT_EQ(frame->buffer(), audio_buffer); +} + +TEST_F(AudioFrameTest, VerifySerializationData) { + auto* audio_buffer = CreateDefaultAudioBuffer(); + + // Create a frame from the audio buffer. + auto* audio_frame_init = CreateDefaultAudioFrameInit(audio_buffer); + auto* frame = MakeGarbageCollected<AudioFrame>(audio_frame_init); + + // Serialize the data from the frame. + std::unique_ptr<AudioFrameSerializationData> data = + frame->GetSerializationData(); + + // Make sure attributes match. + EXPECT_EQ(data->timestamp(), + base::TimeDelta::FromMicroseconds(kTimestampInMicroSeconds)); + EXPECT_EQ(data->sample_rate(), kSampleRate); + EXPECT_EQ(data->data()->channels(), kChannels); + EXPECT_EQ(data->data()->frames(), kFrames); + + // Make sure the data matches. + for (int ch = 0; ch < kChannels; ++ch) { + float* buffer_data = audio_buffer->getChannelData(ch)->Data(); + float* serialized_data = data->data()->channel(ch); + for (int i = 0; i < kFrames; ++i) { + ASSERT_FLOAT_EQ(buffer_data[i], serialized_data[i]) + << "i=" << i << ", ch=" << ch; + } + } +} + +TEST_F(AudioFrameTest, ConstructFromSerializationData) { + // Create a default frame. + auto* audio_buffer = CreateDefaultAudioBuffer(); + auto* audio_frame_init = CreateDefaultAudioFrameInit(audio_buffer); + auto* original_frame = MakeGarbageCollected<AudioFrame>(audio_frame_init); + + // Get a copy of the serialization data, and create a new frame from it. + std::unique_ptr<AudioFrameSerializationData> data = + original_frame->GetSerializationData(); + + auto* new_frame = MakeGarbageCollected<AudioFrame>(std::move(data)); + + // Make sure attributes match. + EXPECT_EQ(original_frame->timestamp(), new_frame->timestamp()); + EXPECT_EQ(original_frame->buffer()->sampleRate(), + new_frame->buffer()->sampleRate()); + EXPECT_EQ(original_frame->buffer()->numberOfChannels(), + new_frame->buffer()->numberOfChannels()); + EXPECT_EQ(original_frame->buffer()->length(), new_frame->buffer()->length()); + + // Make sure the data matches. + for (int ch = 0; ch < kChannels; ++ch) { + float* orig_data = original_frame->buffer()->getChannelData(ch)->Data(); + float* new_data = new_frame->buffer()->getChannelData(ch)->Data(); + for (int i = 0; i < kFrames; ++i) { + ASSERT_FLOAT_EQ(orig_data[i], new_data[i]) << "i=" << i << ", ch=" << ch; + } + } +} + +} // namespace blink
diff --git a/third_party/blink/renderer/platform/graphics/canvas_resource_dispatcher.cc b/third_party/blink/renderer/platform/graphics/canvas_resource_dispatcher.cc index 86e16750..afab4f9 100644 --- a/third_party/blink/renderer/platform/graphics/canvas_resource_dispatcher.cc +++ b/third_party/blink/renderer/platform/graphics/canvas_resource_dispatcher.cc
@@ -51,6 +51,8 @@ CanvasResourceDispatcher::CanvasResourceDispatcher( CanvasResourceDispatcherClient* client, + scoped_refptr<base::SingleThreadTaskRunner> + agent_group_scheduler_compositor_task_runner, uint32_t client_id, uint32_t sink_id, int canvas_id, @@ -61,7 +63,9 @@ needs_begin_frame_(false), placeholder_canvas_id_(canvas_id), num_unreclaimed_frames_posted_(0), - client_(client) { + client_(client), + agent_group_scheduler_compositor_task_runner_( + std::move(agent_group_scheduler_compositor_task_runner)) { // Frameless canvas pass an invalid |frame_sink_id_|; don't create mojo // channel for this special case. if (!frame_sink_id_.is_valid()) @@ -144,7 +148,7 @@ // until it is returned. canvas_resource->Transfer(); PostCrossThreadTask( - *Thread::MainThread()->Scheduler()->CompositorTaskRunner(), FROM_HERE, + *agent_group_scheduler_compositor_task_runner_, FROM_HERE, CrossThreadBindOnce(UpdatePlaceholderImage, placeholder_canvas_id_, std::move(canvas_resource), resource_id)); } @@ -423,7 +427,7 @@ placeholder_canvas_id); } else { PostCrossThreadTask( - *Thread::MainThread()->Scheduler()->CompositorTaskRunner(), FROM_HERE, + *agent_group_scheduler_compositor_task_runner_, FROM_HERE, CrossThreadBindOnce(UpdatePlaceholderDispatcher, this->GetWeakPtr(), WTF::Passed(std::move(dispatcher_task_runner)), placeholder_canvas_id));
diff --git a/third_party/blink/renderer/platform/graphics/canvas_resource_dispatcher.h b/third_party/blink/renderer/platform/graphics/canvas_resource_dispatcher.h index b8549ab..a828bca 100644 --- a/third_party/blink/renderer/platform/graphics/canvas_resource_dispatcher.h +++ b/third_party/blink/renderer/platform/graphics/canvas_resource_dispatcher.h
@@ -42,6 +42,8 @@ }; CanvasResourceDispatcher(CanvasResourceDispatcherClient*, + scoped_refptr<base::SingleThreadTaskRunner> + agent_group_scheduler_compositor_task_runner, uint32_t client_id, uint32_t sink_id, int placeholder_canvas_id, @@ -142,6 +144,9 @@ CanvasResourceDispatcherClient* client_; + scoped_refptr<base::SingleThreadTaskRunner> + agent_group_scheduler_compositor_task_runner_; + base::WeakPtrFactory<CanvasResourceDispatcher> weak_ptr_factory_{this}; };
diff --git a/third_party/blink/renderer/platform/graphics/canvas_resource_dispatcher_test.cc b/third_party/blink/renderer/platform/graphics/canvas_resource_dispatcher_test.cc index 97525af..870ec0bd 100644 --- a/third_party/blink/renderer/platform/graphics/canvas_resource_dispatcher_test.cc +++ b/third_party/blink/renderer/platform/graphics/canvas_resource_dispatcher_test.cc
@@ -44,6 +44,7 @@ public: MockCanvasResourceDispatcher() : CanvasResourceDispatcher(nullptr /* client */, + base::ThreadTaskRunnerHandle::Get(), kClientId, kSinkId, 0 /* placeholder_canvas_id* */,
diff --git a/third_party/blink/renderer/platform/graphics/canvas_resource_provider_test.cc b/third_party/blink/renderer/platform/graphics/canvas_resource_provider_test.cc index d33fa4ae..8d0b2b9 100644 --- a/third_party/blink/renderer/platform/graphics/canvas_resource_provider_test.cc +++ b/third_party/blink/renderer/platform/graphics/canvas_resource_provider_test.cc
@@ -318,8 +318,8 @@ MockCanvasResourceDispatcherClient client; CanvasResourceDispatcher resource_dispatcher( - &client, 1 /* client_id */, 1 /* sink_id */, - 1 /* placeholder_canvas_id */, kSize); + &client, base::ThreadTaskRunnerHandle::Get(), 1 /* client_id */, + 1 /* sink_id */, 1 /* placeholder_canvas_id */, kSize); auto provider = CanvasResourceProvider::CreateSharedBitmapProvider( kSize, kLow_SkFilterQuality, kColorParams,
diff --git a/third_party/blink/renderer/platform/graphics/graphics_context.cc b/third_party/blink/renderer/platform/graphics/graphics_context.cc index 11c70b6..2994510 100644 --- a/third_party/blink/renderer/platform/graphics/graphics_context.cc +++ b/third_party/blink/renderer/platform/graphics/graphics_context.cc
@@ -314,8 +314,7 @@ PaintFlags flags; flags.setBlendMode(op); SkSamplingOptions sampling( - static_cast<SkFilterQuality>(ImageInterpolationQuality()), - SkSamplingOptions::kMedium_asMipmapLinear); + static_cast<SkFilterQuality>(ImageInterpolationQuality())); canvas_->save(); canvas_->concat(SkMatrix::RectToRect(src, dest)); canvas_->drawImage(PaintImageBuilder::WithDefault()
diff --git a/third_party/blink/renderer/platform/graphics/graphics_context.h b/third_party/blink/renderer/platform/graphics/graphics_context.h index 94ab958..d7d00cb 100644 --- a/third_party/blink/renderer/platform/graphics/graphics_context.h +++ b/third_party/blink/renderer/platform/graphics/graphics_context.h
@@ -159,8 +159,7 @@ SkSamplingOptions ImageSamplingOptions() const { return SkSamplingOptions( - static_cast<SkFilterQuality>(ImageInterpolationQuality()), - SkSamplingOptions::kMedium_asMipmapLinear); + static_cast<SkFilterQuality>(ImageInterpolationQuality())); } // Specify the device scale factor which may change the way document markers @@ -390,8 +389,7 @@ SkSamplingOptions ComputeSamplingOptions(Image* image, const FloatRect& dest, const FloatRect& src) const { - return SkSamplingOptions(ComputeFilterQuality(image, dest, src), - SkSamplingOptions::kMedium_asMipmapLinear); + return SkSamplingOptions(ComputeFilterQuality(image, dest, src)); } // Sets target URL of a clickable area.
diff --git a/third_party/blink/web_tests/FlagExpectations/use-vulkan=swiftshader b/third_party/blink/web_tests/FlagExpectations/use-vulkan=swiftshader index afbe54c..cf3a6e1e 100644 --- a/third_party/blink/web_tests/FlagExpectations/use-vulkan=swiftshader +++ b/third_party/blink/web_tests/FlagExpectations/use-vulkan=swiftshader
@@ -15,18 +15,13 @@ css3/background/background-repeat-round-padding.html [ Skip ] css3/blending/background-blend-mode-default-value.html [ Skip ] css3/blending/background-blend-mode-gradient-image.html [ Skip ] -css3/blending/background-blend-mode-image-color.html [ Skip ] css3/blending/background-blend-mode-image-image.html [ Skip ] -css3/blending/background-blend-mode-image-svg.html [ Skip ] css3/blending/background-blend-mode-multiple-background-layers.html [ Skip ] css3/blending/background-blend-mode-single-layer-no-blending.html [ Skip ] css3/blending/background-blend-mode-tiled-gradient.html [ Skip ] -css3/blending/effect-background-blend-mode.html [ Skip ] -css3/blending/effect-background-blend-mode-stacking.html [ Skip ] css3/blending/effect-background-blend-mode-tiled.html [ Skip ] css3/blending/mix-blend-mode-isolated-group-1.html [ Skip ] css3/blending/mix-blend-mode-isolated-group-2.html [ Skip ] -css3/blending/mix-blend-mode-isolated-group-3.html [ Skip ] css3/masking/mask-repeat-round-auto1.html [ Skip ] css3/masking/mask-repeat-round-border.html [ Skip ] css3/masking/mask-repeat-round-content.html [ Skip ]
diff --git a/third_party/blink/web_tests/TestExpectations b/third_party/blink/web_tests/TestExpectations index 22a50a1c..5805b61d 100644 --- a/third_party/blink/web_tests/TestExpectations +++ b/third_party/blink/web_tests/TestExpectations
@@ -4448,7 +4448,7 @@ crbug.com/908347 media/autoplay/webaudio-audio-context-resume.html [ Failure Pass ] # Sheriff 2018-11-29 -crbug.com/910139 http/tests/custom-elements/form-submission-file.html [ Crash Pass ] +crbug.com/910139 custom-elements/form-submission-file.html [ Crash Pass ] # TODO: re-enable the below flakiness suppression when removing this line crbug.com/1131901 transforms/shadows.html [ Pass Failure ]
diff --git a/third_party/blink/web_tests/accessibility/aria-hidden-hides-all-elements.html b/third_party/blink/web_tests/accessibility/aria-hidden-hides-all-elements.html index 6f17159..6eb0da5c 100644 --- a/third_party/blink/web_tests/accessibility/aria-hidden-hides-all-elements.html +++ b/third_party/blink/web_tests/accessibility/aria-hidden-hides-all-elements.html
@@ -25,33 +25,37 @@ </div> <script> -function testChildren(parent, expected_unignored_child_indices) { +function expectUnignoredChildren(parent, expected_unignored_child_indices) { for (let i = 0; i < parent.childrenCount; i++) { - if (expected_unignored_child_indices.includes(i)) - assert_false(parent.childAtIndex(i).isIgnored); - else - assert_true(parent.childAtIndex(i).isIgnored); + let child = parent.childAtIndex(i); + if (expected_unignored_child_indices.includes(i)) { + assert_false(child.isIgnored, + 'Child#' + i + ' (' + child.role + ') ignored state: '); + } + else { + assert_true(child.isIgnored, + 'Child#' + i + ' (' + child.role + ') ignored state: '); + } } } test(function(t) { var content = accessibilityController.accessibleElementById("main"); - assert_equals(content.childrenCount, 17); + assert_equals(content.childrenCount, 9); assert_true(content.isIgnored); - testChildren(content, [0, 2, 4, 6, 11]); - document.getElementById("ul").tabIndex = -1; + expectUnignoredChildren(content, [0, 1, 2, 3, 6]); - assert_equals(content.childrenCount, 17, - "Making list focusable should not impact if it's hidden"); + document.getElementById("ul").tabIndex = -1; + assert_equals(content.childrenCount, 9, + "Making list focusable should make it unignored"); assert_true(content.isIgnored); - testChildren(content, [0, 2, 4, 6, 10, 11]); + expectUnignoredChildren(content, [0, 1, 2, 3, 5, 6]); document.getElementById("ul").removeAttribute("tabindex"); - - assert_equals(content.childrenCount, 17, - "Making list unfocusable should make it hidden again"); + assert_equals(content.childrenCount, 9, + "Making list unfocusable should make it ignored again"); assert_true(content.isIgnored); - testChildren(content, [0, 2, 4, 6, 11]); + expectUnignoredChildren(content, [0, 1, 2, 3, 6]); }); </script>
diff --git a/third_party/blink/web_tests/http/tests/accessibility/file-upload-button-name.html b/third_party/blink/web_tests/accessibility/file-upload-button-name.html similarity index 77% rename from third_party/blink/web_tests/http/tests/accessibility/file-upload-button-name.html rename to third_party/blink/web_tests/accessibility/file-upload-button-name.html index 3a1971b..984793eba 100644 --- a/third_party/blink/web_tests/http/tests/accessibility/file-upload-button-name.html +++ b/third_party/blink/web_tests/accessibility/file-upload-button-name.html
@@ -1,16 +1,17 @@ <!DOCTYPE HTML> <html> <head> -<script src="/resources/testharness.js"></script> -<script src="/resources/testharnessreport.js"></script> +<script src="file:///gen/layout_test_data/mojo/public/js/mojo_bindings.js"></script> +<script src="file:///gen/third_party/blink/public/mojom/choosers/file_chooser.mojom.js"></script> +<script src="../wpt_internal/forms/resources/mock-file-chooser.js"></script> +<script src="../resources/testharness.js"></script> +<script src="../resources/testharnessreport.js"></script> </head> <body> <input id="filetype" type="file"> -<script type="module"> -import '/wpt_internal/forms/resources/mock-file-chooser.js'; - +<script> async_test((t) => { testRunner.waitUntilDone();
diff --git a/third_party/blink/web_tests/accessibility/file-upload-button-with-axpress-expected.txt b/third_party/blink/web_tests/accessibility/file-upload-button-with-axpress-expected.txt new file mode 100644 index 0000000..cca2cbc --- /dev/null +++ b/third_party/blink/web_tests/accessibility/file-upload-button-with-axpress-expected.txt
@@ -0,0 +1,10 @@ +CONSOLE MESSAGE: line 5: FileChooser: opened; mode=kOpen +This tests that when AXPress is used DOMActivate will be handled by the input file type. + +On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". + +DOMActivate was called +PASS successfullyParsed is true + +TEST COMPLETE +
diff --git a/third_party/blink/web_tests/accessibility/file-upload-button-with-axpress.html b/third_party/blink/web_tests/accessibility/file-upload-button-with-axpress.html new file mode 100644 index 0000000..736c35b2 --- /dev/null +++ b/third_party/blink/web_tests/accessibility/file-upload-button-with-axpress.html
@@ -0,0 +1,34 @@ +<!DOCTYPE HTML> +<html> +<body> +<script src="file:///gen/layout_test_data/mojo/public/js/mojo_bindings.js"></script> +<script src="file:///gen/third_party/blink/public/mojom/choosers/file_chooser.mojom.js"></script> +<script src="../wpt_internal/forms/resources/mock-file-chooser.js"></script> +<script src="../resources/js-test.js"></script> + +<input id="filetype" type="file"> + +<div id="description"></div> +<div id="console"></div> + +<script> + +description("This tests that when AXPress is used DOMActivate will be handled by the input file type.") + +if (window.testRunner && window.accessibilityController) { + testRunner.waitUntilDone(); + + var inputFile = document.getElementById("filetype"); + + inputFile.addEventListener("DOMActivate", function() { + debug("DOMActivate was called"); + }); + mockFileChooserFactory.addEventListener('open', e => testRunner.notifyDone()); + + accessibilityController.accessibleElementById("filetype").press(); +} + +</script> + +</body> +</html>
diff --git a/third_party/blink/web_tests/accessibility/multiple-text-nodes.html b/third_party/blink/web_tests/accessibility/multiple-text-nodes.html index 7b0e63cc..9780ee9 100644 --- a/third_party/blink/web_tests/accessibility/multiple-text-nodes.html +++ b/third_party/blink/web_tests/accessibility/multiple-text-nodes.html
@@ -6,18 +6,30 @@ </head> <body> - <button id="button">before<span id="span"></span> <span id="span2"></span> + <!-- No space in final name; it is redundant at the end of the button --> + <button id="buttonA">before<span id="spanA1"></span> <span id="spanA2"></span> + </button> + + <!-- Space in final name, to separate "before" and "after" --> + <button id="buttonB">before<span id="spanB1"></span> <span id="spanB2"></span>after </button> <script> test((t) => { // Remove the spans, so the button will have multiple contiguous text children - button.removeChild(span); - button.removeChild(span2); - var axButton = accessibilityController.accessibleElementById('button'); - assert_equals(axButton.name, "before "); + buttonA.removeChild(spanA1); + buttonA.removeChild(spanA2); + var axButton = accessibilityController.accessibleElementById('buttonA'); + assert_equals(axButton.name, "before"); }, "Multiple text node children do not result in duplicated text"); +test((t) => { + // Remove the spans, so the button will have multiple contiguous text children + buttonB.removeChild(spanB1); + buttonB.removeChild(spanB2); + var axButton = accessibilityController.accessibleElementById('buttonB'); + assert_equals(axButton.name, "before after"); +}, "Removing text nodes does not result in duplicated text but keeps necessary space"); </script> </body>
diff --git a/third_party/blink/web_tests/css3/blending/background-blend-mode-crossfade-image-gradient-expected.png b/third_party/blink/web_tests/css3/blending/background-blend-mode-crossfade-image-gradient-expected.png index 4729210..6a8edd1a 100644 --- a/third_party/blink/web_tests/css3/blending/background-blend-mode-crossfade-image-gradient-expected.png +++ b/third_party/blink/web_tests/css3/blending/background-blend-mode-crossfade-image-gradient-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/css3/blending/background-blend-mode-default-value-expected.png b/third_party/blink/web_tests/css3/blending/background-blend-mode-default-value-expected.png index 556c28f..a90d2ad 100644 --- a/third_party/blink/web_tests/css3/blending/background-blend-mode-default-value-expected.png +++ b/third_party/blink/web_tests/css3/blending/background-blend-mode-default-value-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/css3/blending/background-blend-mode-different-image-formats-expected.png b/third_party/blink/web_tests/css3/blending/background-blend-mode-different-image-formats-expected.png index a73fab0..4ec9d00 100644 --- a/third_party/blink/web_tests/css3/blending/background-blend-mode-different-image-formats-expected.png +++ b/third_party/blink/web_tests/css3/blending/background-blend-mode-different-image-formats-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/css3/blending/background-blend-mode-gradient-image-expected.png b/third_party/blink/web_tests/css3/blending/background-blend-mode-gradient-image-expected.png index cb3b727..7d7b7573 100644 --- a/third_party/blink/web_tests/css3/blending/background-blend-mode-gradient-image-expected.png +++ b/third_party/blink/web_tests/css3/blending/background-blend-mode-gradient-image-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/css3/blending/background-blend-mode-image-color-expected.png b/third_party/blink/web_tests/css3/blending/background-blend-mode-image-color-expected.png index 24297d4..1289d9b 100644 --- a/third_party/blink/web_tests/css3/blending/background-blend-mode-image-color-expected.png +++ b/third_party/blink/web_tests/css3/blending/background-blend-mode-image-color-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/css3/blending/background-blend-mode-image-image-expected.png b/third_party/blink/web_tests/css3/blending/background-blend-mode-image-image-expected.png index b9dd801..30f8e57 100644 --- a/third_party/blink/web_tests/css3/blending/background-blend-mode-image-image-expected.png +++ b/third_party/blink/web_tests/css3/blending/background-blend-mode-image-image-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/css3/blending/background-blend-mode-image-svg-expected.png b/third_party/blink/web_tests/css3/blending/background-blend-mode-image-svg-expected.png index 1a50c556..9a7e8c1 100644 --- a/third_party/blink/web_tests/css3/blending/background-blend-mode-image-svg-expected.png +++ b/third_party/blink/web_tests/css3/blending/background-blend-mode-image-svg-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/css3/blending/background-blend-mode-multiple-background-layers-expected.png b/third_party/blink/web_tests/css3/blending/background-blend-mode-multiple-background-layers-expected.png index 677ac1a4..d084364c 100644 --- a/third_party/blink/web_tests/css3/blending/background-blend-mode-multiple-background-layers-expected.png +++ b/third_party/blink/web_tests/css3/blending/background-blend-mode-multiple-background-layers-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/css3/blending/background-blend-mode-single-layer-no-blending-expected.png b/third_party/blink/web_tests/css3/blending/background-blend-mode-single-layer-no-blending-expected.png index 0e01c17..8f8923d3 100644 --- a/third_party/blink/web_tests/css3/blending/background-blend-mode-single-layer-no-blending-expected.png +++ b/third_party/blink/web_tests/css3/blending/background-blend-mode-single-layer-no-blending-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/css3/blending/background-blend-mode-tiled-gradient-expected.png b/third_party/blink/web_tests/css3/blending/background-blend-mode-tiled-gradient-expected.png index 7e1f17a..1f97125f 100644 --- a/third_party/blink/web_tests/css3/blending/background-blend-mode-tiled-gradient-expected.png +++ b/third_party/blink/web_tests/css3/blending/background-blend-mode-tiled-gradient-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/css3/blending/effect-background-blend-mode-expected.png b/third_party/blink/web_tests/css3/blending/effect-background-blend-mode-expected.png index c45c187..7f470c5 100644 --- a/third_party/blink/web_tests/css3/blending/effect-background-blend-mode-expected.png +++ b/third_party/blink/web_tests/css3/blending/effect-background-blend-mode-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/css3/blending/effect-background-blend-mode-stacking-expected.png b/third_party/blink/web_tests/css3/blending/effect-background-blend-mode-stacking-expected.png index 07e72ce..ba479cb 100644 --- a/third_party/blink/web_tests/css3/blending/effect-background-blend-mode-stacking-expected.png +++ b/third_party/blink/web_tests/css3/blending/effect-background-blend-mode-stacking-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/css3/blending/effect-background-blend-mode-tiled-expected.png b/third_party/blink/web_tests/css3/blending/effect-background-blend-mode-tiled-expected.png index 6ad9d3e7..977864d 100644 --- a/third_party/blink/web_tests/css3/blending/effect-background-blend-mode-tiled-expected.png +++ b/third_party/blink/web_tests/css3/blending/effect-background-blend-mode-tiled-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/css3/blending/mix-blend-mode-isolated-group-2-expected.png b/third_party/blink/web_tests/css3/blending/mix-blend-mode-isolated-group-2-expected.png index 8a053a0..cfb4d9f 100644 --- a/third_party/blink/web_tests/css3/blending/mix-blend-mode-isolated-group-2-expected.png +++ b/third_party/blink/web_tests/css3/blending/mix-blend-mode-isolated-group-2-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/css3/blending/mix-blend-mode-isolated-group-3-expected.png b/third_party/blink/web_tests/css3/blending/mix-blend-mode-isolated-group-3-expected.png index 5b44808..ed5410c 100644 --- a/third_party/blink/web_tests/css3/blending/mix-blend-mode-isolated-group-3-expected.png +++ b/third_party/blink/web_tests/css3/blending/mix-blend-mode-isolated-group-3-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/http/tests/custom-elements/form-submission-file.html b/third_party/blink/web_tests/custom-elements/form-submission-file.html similarity index 84% rename from third_party/blink/web_tests/http/tests/custom-elements/form-submission-file.html rename to third_party/blink/web_tests/custom-elements/form-submission-file.html index cd52523b..ae59b94 100644 --- a/third_party/blink/web_tests/http/tests/custom-elements/form-submission-file.html +++ b/third_party/blink/web_tests/custom-elements/form-submission-file.html
@@ -1,12 +1,13 @@ <!DOCTYPE html> -<script src="/forms-test-resources/common.js"></script> -<script src="/resources/testharness.js"></script> -<script src="/resources/testharnessreport.js"></script> +<script src="file:///gen/layout_test_data/mojo/public/js/mojo_bindings.js"></script> +<script src="file:///gen/third_party/blink/public/mojom/choosers/file_chooser.mojom.js"></script> +<script src="../wpt_internal/forms/resources/mock-file-chooser.js"></script> +<script src="../fast/forms/resources/common.js"></script> +<script src="../resources/testharness.js"></script> +<script src="../resources/testharnessreport.js"></script> <div id="container"></div> <input type=file multiple> -<script type="module"> -import {mockFileChooserFactory} from '/wpt_internal/forms/resources/mock-file-chooser.js'; - +<script> class MyControl extends HTMLElement { static get formAssociated() { return true; }
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 380d3ad..cb06263 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
@@ -1529,13 +1529,6 @@ }, "clipboard-apis": { "events": { - "copy-event-manual.html": [ - "9f9f1950e7cad11da8cc9e8984f130e182d64d64", - [ - null, - {} - ] - ], "cut-event-manual.html": [ "72c11ec3b98a7839ba6ba22b0340664dcc9782c2", [ @@ -106471,6 +106464,19 @@ {} ] ], + "row-group-order.html": [ + "06c0f3bd9651a188c06cfd8a7bf14f07f0ce2c20", + [ + null, + [ + [ + "/css/css-tables/row-group-order-ref.html", + "==" + ] + ], + {} + ] + ], "row-margin-border-padding.html": [ "c6606d941e86f36f12216f28520f6dcb66ef7926", [ @@ -175290,7 +175296,7 @@ [] ], "clipboard-item.https-expected.txt": [ - "ad40535728dfb53f4cf848ff76abb21ea293977a", + "1b3edb5c2a64b1ef4a865aed18259d0a16491b4a", [] ], "feature-policy": { @@ -203160,6 +203166,10 @@ "aa3e68e6ab2830a817f8612e240888c2cc6e7a6a", [] ], + "row-group-order-ref.html": [ + "63087671c5fbd5921724df8675bbda13cf0c758c", + [] + ], "row-margin-border-padding-ref.html": [ "68cbcfc9c1ec6aa1fb940f5b26735e3b2fa3587e", [] @@ -212863,7 +212873,7 @@ [] ], "idlharness-expected.txt": [ - "185f987311fa7012cb2845c1f662923286e9f66f", + "ecd26b905f4377d88478fac04e1920ffeacaae6f", [] ], "insertRule-from-script-ref.html": [ @@ -225774,7 +225784,7 @@ [] ], "transformations.yaml": [ - "eca6b16b089b322792c0c0cab5ff48febe9ffcd8", + "ffb1e85ec041d5516d133a04edfa597710ff57ef", [] ], "video.yaml": [ @@ -226803,7 +226813,7 @@ [] ], "idlharness.https_include=HTML._-expected.txt": [ - "bab3797c65d51f33aa9fdfffd34ef383a70d447a", + "2116f87b1ef53f45f30d7e2d4098775d491b5ce4", [] ], "idlharness.worker-expected.txt": [ @@ -231043,7 +231053,7 @@ [] ], "legend-display-expected.txt": [ - "d13c68baee91d0acb8c72d68bb94b2cd3dae8e0e", + "69bb94fef61c6ce28d49dbe285f1d8b263204a0d", [] ], "legend-display-none-rendering-ref.html": [ @@ -237336,7 +237346,7 @@ [] ], "html.idl": [ - "bb44c1327471ec25b7fefac25758335ea0ae7c51", + "7f2eba2c7aee694e788e9c3f52cdb4f23315730d", [] ], "idle-detection.tentative.idl": [ @@ -244504,7 +244514,7 @@ ] }, "idlharness.js": [ - "994a0d82ef444bf4566dc27a81487e70d9e284ea", + "5a97b273f2bed196d6ddd85c5596decff1bf87ae", [] ], "idlharness.js.headers": [ @@ -275419,7 +275429,7 @@ ] ], "async-navigator-clipboard-basics.https.html": [ - "8fbcd11e7e963240f41e2e1ce6c9a0ae26979d3a", + "61808a52ceb9b6272a6ce495d328a8feaaf9411a", [ null, {} @@ -275496,7 +275506,7 @@ ] ], "clipboard-item.https.html": [ - "afec778eb99e8605a4c5a1001a2576e1e246b27c", + "50af54ccb670979ab86089f10edbc732e8eb1eed", [ null, {} @@ -275547,6 +275557,17 @@ ] ] }, + "events": { + "copy-event.html": [ + "c8c0593a988066decebb1420c7994ee224d5587c", + [ + null, + { + "testdriver": true + } + ] + ] + }, "feature-policy": { "clipboard-read": { "clipboard-read-disabled-by-feature-policy.tentative.https.sub.html": [ @@ -290621,6 +290642,20 @@ {} ] ], + "grid-auto-repeat-min-size-003.html": [ + "ffaaab33aef998f35a543392b2f3fa99e473b9ed", + [ + null, + {} + ] + ], + "grid-auto-repeat-min-size-004.html": [ + "8d2eda79023adab581e70dd4ef3bdd80ccca9e12", + [ + null, + {} + ] + ], "grid-change-auto-repeat-tracks.html": [ "c2d17ec615f0f092e54c0c4792ca4a03bc1cfe8a", [ @@ -307705,7 +307740,7 @@ ] ], "DOMMatrix2DInit-validate-fixup.html": [ - "480d67a481d30965a734cdf76c60646a464823b8", + "a7257aa2882cf1d88fa4a15314efe071b30a8f4e", [ null, {} @@ -347771,6 +347806,13 @@ {} ] ], + "2d.transformation.setTransform.3d.html": [ + "bcafbd15990880b00a5e93f07dba4b07108edbf6", + [ + null, + {} + ] + ], "2d.transformation.setTransform.multiple.html": [ "7e90537113eea070fa5213554e101870aa6f5541", [ @@ -363170,7 +363212,7 @@ ] ], "legend-display.html": [ - "914547fc6cdde3e464b28eb7cc9737d17305f9af", + "b6c57a67baf06b4fc9043b8140a97e593f80a83f", [ null, {} @@ -423510,7 +423552,7 @@ ] ], "urlsearchparams-foreach.any.js": [ - "7969a0cb11a2712bbbfc2a42c4856f5576531884", + "ff19643ac220d123be45f01af45fedde8d2d05c1", [ "url/urlsearchparams-foreach.any.html", {}
diff --git a/third_party/blink/web_tests/external/wpt/clipboard-apis/async-navigator-clipboard-basics.https.html b/third_party/blink/web_tests/external/wpt/clipboard-apis/async-navigator-clipboard-basics.https.html index 8fbcd11e..61808a5 100644 --- a/third_party/blink/web_tests/external/wpt/clipboard-apis/async-navigator-clipboard-basics.https.html +++ b/third_party/blink/web_tests/external/wpt/clipboard-apis/async-navigator-clipboard-basics.https.html
@@ -47,6 +47,11 @@ }, 'navigator.clipboard.writeText() fails (expect DOMString)'); promise_test(async () => { + const item = new ClipboardItem({'text/plain': 'test'}); + await navigator.clipboard.write([item]); +}, 'navigator.clipboard.write({string : DOMString}) succeeds'); + +promise_test(async () => { const fetched = await fetch('/clipboard-apis/resources/greenbox.png'); const image = await fetched.blob(); const item = new ClipboardItem({'image/png': image}); @@ -64,6 +69,11 @@ await navigator.clipboard.write([item]); }, 'navigator.clipboard.write([text + png] succeeds'); +promise_test(async t => { + const item = new ClipboardItem({'image/png': 'not an image'}); + await promise_rejects_js(t, TypeError, navigator.clipboard.write([item])); +}, 'navigator.clipboard.write(image/png DOMString) fails'); + promise_test(async () => { const result = await navigator.clipboard.read(); assert_true(result instanceof Object);
diff --git a/third_party/blink/web_tests/external/wpt/clipboard-apis/clipboard-item.https-expected.txt b/third_party/blink/web_tests/external/wpt/clipboard-apis/clipboard-item.https-expected.txt index ad40535..1b3edb5 100644 --- a/third_party/blink/web_tests/external/wpt/clipboard-apis/clipboard-item.https-expected.txt +++ b/third_party/blink/web_tests/external/wpt/clipboard-apis/clipboard-item.https-expected.txt
@@ -10,5 +10,7 @@ PASS getType(DOMString valid type) succeeds with correct output PASS getType(DOMString invalid type) succeeds with correct output PASS getType(DOMString type) rejects correctly when querying for missing type +FAIL getType(DOMString valid type) converts DOMString to Blob promise_test: Unhandled rejection with value: object "TypeError: Failed to construct 'ClipboardItem': Failed to convert value to 'Blob'." +FAIL getType(DOMString invalid type) converts DOMString to Blob promise_test: Unhandled rejection with value: object "TypeError: Failed to construct 'ClipboardItem': Failed to convert value to 'Blob'." Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/clipboard-apis/clipboard-item.https.html b/third_party/blink/web_tests/external/wpt/clipboard-apis/clipboard-item.https.html index afec778..50af54c 100644 --- a/third_party/blink/web_tests/external/wpt/clipboard-apis/clipboard-item.https.html +++ b/third_party/blink/web_tests/external/wpt/clipboard-apis/clipboard-item.https.html
@@ -89,4 +89,24 @@ promise_rejects_dom(t, "NotFoundError", item.getType('type not in item')); promise_rejects_dom(t, "NotFoundError", item.getType('text/plain:subtype')); }, "getType(DOMString type) rejects correctly when querying for missing type"); + +promise_test(async () => { + const item = + new ClipboardItem({'text/plain': 'abc', 'not a/real type': 'xxx'}); + const blob = await item.getType('text/plain'); + assert_equals(blob.type, 'text/plain'); + + const text = await (new Response(blob)).text(); + assert_equals(text, 'abc'); +}, "getType(DOMString valid type) converts DOMString to Blob"); + +promise_test(async () => { + const item = + new ClipboardItem({'text/plain': 'abc', 'not a/real type': 'xxx'}); + const blob = await item.getType('not a/real type'); + assert_equals(blob.type, 'not a/real type'); + + const text = await (new Response(blob)).text(); + assert_equals(text, 'xxx'); +}, "getType(DOMString invalid type) converts DOMString to Blob"); </script>
diff --git a/third_party/blink/web_tests/external/wpt/clipboard-apis/events/copy-event-manual.html b/third_party/blink/web_tests/external/wpt/clipboard-apis/events/copy-event-manual.html deleted file mode 100644 index 9f9f1950..0000000 --- a/third_party/blink/web_tests/external/wpt/clipboard-apis/events/copy-event-manual.html +++ /dev/null
@@ -1,19 +0,0 @@ -<!doctype html> -<title>The copy event</title> -<link rel="help" href="https://w3c.github.io/clipboard-apis/#clipboard-event-copy"> -<script src="/resources/testharness.js"></script> -<script src="/resources/testharnessreport.js"></script> -<div id=log></div> -<p>Select and copy any part of this text to continue. -<script> -setup({explicit_timeout: true}); -async_test(t => { - document.oncopy = t.step_func_done(event => { - // Nothing can be asserted about the event target until - // https://github.com/w3c/clipboard-apis/issues/70 is resolved. - // assert_equals(event.target, document.body, 'event.target'); - assert_true(event.isTrusted, 'event.isTrusted'); - assert_true(event.composed, 'event.composed'); - }); -}); -</script>
diff --git a/third_party/blink/web_tests/external/wpt/clipboard-apis/events/copy-event.html b/third_party/blink/web_tests/external/wpt/clipboard-apis/events/copy-event.html new file mode 100644 index 0000000..c8c0593 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/clipboard-apis/events/copy-event.html
@@ -0,0 +1,33 @@ +<!doctype html> +<title>The copy event</title> +<link rel="help" href="https://w3c.github.io/clipboard-apis/#clipboard-event-copy"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/resources/testdriver.js"></script> +<script src="/resources/testdriver-actions.js"></script> +<script src="/resources/testdriver-vendor.js"></script> +<div id=log></div> +<button id="copy">Trigger copy</button> +<input id="copyTarget" value="this text should be copied"> +<script> +async_test(t => { + let button = document.getElementById("copy"); + + button.addEventListener("click", function(e) { + let input = document.getElementById("copyTarget"); + input.focus(); + input.select(); + document.execCommand("copy"); + }); + + document.oncopy = t.step_func_done(event => { + // Nothing can be asserted about the event target until + // https://github.com/w3c/clipboard-apis/issues/70 is resolved. + // assert_equals(event.target, document.body, 'event.target'); + assert_true(event.isTrusted, 'event.isTrusted'); + assert_true(event.composed, 'event.composed'); + }); + + test_driver.click(button); +}); +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-tables/row-group-order-ref.html b/third_party/blink/web_tests/external/wpt/css/css-tables/row-group-order-ref.html new file mode 100644 index 0000000..6308767 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-tables/row-group-order-ref.html
@@ -0,0 +1,60 @@ +<!doctype html> +<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" /> +<style> + table { + font: 8px Ahem; + border-collapse: collapse; + } + thead, tbody, tfoot { + border: 10px solid; + } + .first { + border-color: green; + } + .second { + border-color: blue; + } + .third { + border-color: yellow; + } + tbody { + border-color: orange; + } + td { + width: 50px; + height: 50px; + } +</style> + +<table> + <tbody class="first"> + <tr><td>head 1</td></tr> + </tbody> + <tbody> + <tr><td>body 1</td></tr> + </tbody> + <tbody class="second"> + <tr><td>head 2</td></tr> + </tbody> + <tbody> + <tr><td>body 2</td></tr> + </tbody> + <tbody class="third"> + <tr><td>head 3</td></tr> + </tbody> + <tbody> + <tr><td>body 3</td></tr> + </tbody> + <tbody class="second"> + <tr><td>foot 2</td></tr> + </tbody> + <tbody> + <tr><td>body 4</td></tr> + </tbody> + <tbody class="third"> + <tr><td>foot 3</td></tr> + </tbody> + <tbody class="first"> + <tr><td>foot 1</td></tr> + </tbody> +</table>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-tables/row-group-order.html b/third_party/blink/web_tests/external/wpt/css/css-tables/row-group-order.html new file mode 100644 index 0000000..06c0f3b --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-tables/row-group-order.html
@@ -0,0 +1,64 @@ +<!doctype html> +<title>CSS Test: Table section ordering</title> +<link rel="author" href="mailto:atotic@chromium.org"> +<link rel="help" href="https://www.w3.org/TR/CSS22/tables.html#table-display"> +<link rel="match" href="row-group-order-ref.html"> +<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" /> +<style> + table { + font: 8px Ahem; + border-collapse: collapse; + } + thead, tbody, tfoot { + border: 10px solid; + } + .first { + border-color: green; + } + .second { + border-color: blue; + } + .third { + border-color: yellow; + } + tbody { + border-color: orange; + } + td { + width: 50px; + height: 50px; + } +</style> + +<table> + <tbody> + <tr><td>body 1</td></tr> + </tbody> + <thead class="first"> + <tr><td>head 1</td></tr> + </thead> + <thead class="second"> + <tr><td>head 2</td></tr> + </thead> + <tbody> + <tr><td>body 2</td></tr> + </tbody> + <thead class="third"> + <tr><td>head 3</td></tr> + </thead> + <tfoot class="first"> + <tr><td>foot 1</td></tr> + </tfoot> + <tbody> + <tr><td>body 3</td></tr> + </tbody> + <tfoot class="second"> + <tr><td>foot 2</td></tr> + </tfoot> + <tbody> + <tr><td>body 4</td></tr> + </tbody> + <tfoot class="third"> + <tr><td>foot 3</td></tr> + </tfoot> +</table>
diff --git a/third_party/blink/web_tests/external/wpt/css/cssom/idlharness-expected.txt b/third_party/blink/web_tests/external/wpt/css/cssom/idlharness-expected.txt index 185f987..ecd26b9 100644 --- a/third_party/blink/web_tests/external/wpt/css/cssom/idlharness-expected.txt +++ b/third_party/blink/web_tests/external/wpt/css/cssom/idlharness-expected.txt
@@ -1,5 +1,5 @@ This is a testharness.js-based test. -Found 435 tests; 380 PASS, 55 FAIL, 0 TIMEOUT, 0 NOTRUN. +Found 437 tests; 382 PASS, 55 FAIL, 0 TIMEOUT, 0 NOTRUN. PASS idl_test setup PASS idl_test validation PASS Partial interface CSSStyleSheet: original interface defined @@ -419,6 +419,8 @@ PASS CSS namespace: [[Extensible]] is true PASS CSS namespace: [[Prototype]] is Object.prototype PASS CSS namespace: typeof is "object" +PASS CSS namespace: has no length property +PASS CSS namespace: has no name property PASS CSS namespace: operation escape(CSSOMString) PASS SVGElement interface: attribute style PASS SVGElement interface: svg_element must inherit property "style" with the proper type
diff --git a/third_party/blink/web_tests/external/wpt/html/dom/idlharness.https_include=HTML._-expected.txt b/third_party/blink/web_tests/external/wpt/html/dom/idlharness.https_include=HTML._-expected.txt index bab3797..2116f87 100644 --- a/third_party/blink/web_tests/external/wpt/html/dom/idlharness.https_include=HTML._-expected.txt +++ b/third_party/blink/web_tests/external/wpt/html/dom/idlharness.https_include=HTML._-expected.txt
@@ -1,5 +1,5 @@ This is a testharness.js-based test. -Found 3738 tests; 3709 PASS, 29 FAIL, 0 TIMEOUT, 0 NOTRUN. +Found 3732 tests; 3709 PASS, 23 FAIL, 0 TIMEOUT, 0 NOTRUN. PASS idl_test setup PASS idl_test validation PASS Partial interface Document: original interface defined @@ -3619,9 +3619,6 @@ PASS HTMLMarqueeElement interface: attribute trueSpeed PASS HTMLMarqueeElement interface: attribute vspace PASS HTMLMarqueeElement interface: attribute width -FAIL HTMLMarqueeElement interface: attribute onbounce assert_true: The prototype object must have a property "onbounce" expected true got false -FAIL HTMLMarqueeElement interface: attribute onfinish assert_true: The prototype object must have a property "onfinish" expected true got false -FAIL HTMLMarqueeElement interface: attribute onstart assert_true: The prototype object must have a property "onstart" expected true got false PASS HTMLMarqueeElement interface: operation start() PASS HTMLMarqueeElement interface: operation stop() PASS HTMLMarqueeElement must be primary interface of document.createElement("marquee") @@ -3637,9 +3634,6 @@ PASS HTMLMarqueeElement interface: document.createElement("marquee") must inherit property "trueSpeed" with the proper type PASS HTMLMarqueeElement interface: document.createElement("marquee") must inherit property "vspace" with the proper type PASS HTMLMarqueeElement interface: document.createElement("marquee") must inherit property "width" with the proper type -FAIL HTMLMarqueeElement interface: document.createElement("marquee") must inherit property "onbounce" with the proper type assert_inherits: property "onbounce" not found in prototype chain -FAIL HTMLMarqueeElement interface: document.createElement("marquee") must inherit property "onfinish" with the proper type assert_inherits: property "onfinish" not found in prototype chain -FAIL HTMLMarqueeElement interface: document.createElement("marquee") must inherit property "onstart" with the proper type assert_inherits: property "onstart" not found in prototype chain PASS HTMLMarqueeElement interface: document.createElement("marquee") must inherit property "start()" with the proper type PASS HTMLMarqueeElement interface: document.createElement("marquee") must inherit property "stop()" with the proper type PASS HTMLFrameSetElement interface: existence and properties of interface object
diff --git a/third_party/blink/web_tests/external/wpt/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/legend-display-expected.txt b/third_party/blink/web_tests/external/wpt/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/legend-display-expected.txt index d13c68ba..69bb94f 100644 --- a/third_party/blink/web_tests/external/wpt/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/legend-display-expected.txt +++ b/third_party/blink/web_tests/external/wpt/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/legend-display-expected.txt
@@ -1,4 +1,5 @@ This is a testharness.js-based test. +Found 108 tests; 28 PASS, 80 FAIL, 0 TIMEOUT, 0 NOTRUN. PASS rendered legend with display: block PASS rendered legend with display: table FAIL rendered legend with display: table-row-group assert_equals: display: table-row-group is not supported expected "table-row-group" but got "block" @@ -10,12 +11,13 @@ FAIL rendered legend with display: table-column assert_equals: display: table-column is not supported expected "table-column" but got "block" FAIL rendered legend with display: table-caption assert_equals: display: table-caption is not supported expected "table-caption" but got "block" PASS rendered legend with display: list-item -FAIL rendered legend with display: flow assert_equals: display: flow is not supported expected "flow" but got "block" +PASS rendered legend with display: flow PASS rendered legend with display: flow-root FAIL rendered legend with display: run-in assert_equals: display: run-in is not supported expected "run-in" but got "block" FAIL rendered legend with display: inline assert_equals: display: inline is not supported expected "inline" but got "block" FAIL rendered legend with display: inline-block assert_equals: display: inline-block is not supported expected "inline-block" but got "block" FAIL rendered legend with display: inline-table assert_equals: display: inline-table is not supported expected "inline-table" but got "table" +FAIL rendered legend with display: block ruby assert_equals: display: block ruby is not supported expected "block ruby" but got "block" FAIL rendered legend with display: ruby assert_equals: display: ruby is not supported expected "ruby" but got "block" FAIL rendered legend with display: ruby-base assert_equals: display: ruby-base is not supported expected "ruby-base" but got "block" FAIL rendered legend with display: ruby-text assert_equals: display: ruby-text is not supported expected "ruby-text" but got "block" @@ -25,5 +27,86 @@ FAIL rendered legend with display: inline-grid assert_equals: display: inline-grid is not supported expected "inline-grid" but got "grid" PASS rendered legend with display: flex FAIL rendered legend with display: inline-flex assert_equals: display: inline-flex is not supported expected "inline-flex" but got "flex" +PASS rendered legend with display: block; overflow:hidden +PASS rendered legend with display: table; overflow:hidden +FAIL rendered legend with display: table-row-group; overflow:hidden assert_equals: display: table-row-group is not supported expected "table-row-group" but got "block" +FAIL rendered legend with display: table-header-group; overflow:hidden assert_equals: display: table-header-group is not supported expected "table-header-group" but got "block" +FAIL rendered legend with display: table-footer-group; overflow:hidden assert_equals: display: table-footer-group is not supported expected "table-footer-group" but got "block" +FAIL rendered legend with display: table-row; overflow:hidden assert_equals: display: table-row is not supported expected "table-row" but got "block" +FAIL rendered legend with display: table-cell; overflow:hidden assert_equals: display: table-cell is not supported expected "table-cell" but got "block" +FAIL rendered legend with display: table-column-group; overflow:hidden assert_equals: display: table-column-group is not supported expected "table-column-group" but got "block" +FAIL rendered legend with display: table-column; overflow:hidden assert_equals: display: table-column is not supported expected "table-column" but got "block" +FAIL rendered legend with display: table-caption; overflow:hidden assert_equals: display: table-caption is not supported expected "table-caption" but got "block" +PASS rendered legend with display: list-item; overflow:hidden +PASS rendered legend with display: flow; overflow:hidden +PASS rendered legend with display: flow-root; overflow:hidden +FAIL rendered legend with display: run-in; overflow:hidden assert_equals: display: run-in is not supported expected "run-in" but got "block" +FAIL rendered legend with display: inline; overflow:hidden assert_equals: display: inline is not supported expected "inline" but got "block" +FAIL rendered legend with display: inline-block; overflow:hidden assert_equals: display: inline-block is not supported expected "inline-block" but got "block" +FAIL rendered legend with display: inline-table; overflow:hidden assert_equals: display: inline-table is not supported expected "inline-table" but got "table" +FAIL rendered legend with display: block ruby; overflow:hidden assert_equals: display: block ruby is not supported expected "block ruby" but got "block" +FAIL rendered legend with display: ruby; overflow:hidden assert_equals: display: ruby is not supported expected "ruby" but got "block" +FAIL rendered legend with display: ruby-base; overflow:hidden assert_equals: display: ruby-base is not supported expected "ruby-base" but got "block" +FAIL rendered legend with display: ruby-text; overflow:hidden assert_equals: display: ruby-text is not supported expected "ruby-text" but got "block" +FAIL rendered legend with display: ruby-base-container; overflow:hidden assert_equals: display: ruby-base-container is not supported expected "ruby-base-container" but got "block" +FAIL rendered legend with display: ruby-text-container; overflow:hidden assert_equals: display: ruby-text-container is not supported expected "ruby-text-container" but got "block" +PASS rendered legend with display: grid; overflow:hidden +FAIL rendered legend with display: inline-grid; overflow:hidden assert_equals: display: inline-grid is not supported expected "inline-grid" but got "grid" +PASS rendered legend with display: flex; overflow:hidden +FAIL rendered legend with display: inline-flex; overflow:hidden assert_equals: display: inline-flex is not supported expected "inline-flex" but got "flex" +PASS rendered legend with display: block; columns:1 +PASS rendered legend with display: table; columns:1 +FAIL rendered legend with display: table-row-group; columns:1 assert_equals: display: table-row-group is not supported expected "table-row-group" but got "block" +FAIL rendered legend with display: table-header-group; columns:1 assert_equals: display: table-header-group is not supported expected "table-header-group" but got "block" +FAIL rendered legend with display: table-footer-group; columns:1 assert_equals: display: table-footer-group is not supported expected "table-footer-group" but got "block" +FAIL rendered legend with display: table-row; columns:1 assert_equals: display: table-row is not supported expected "table-row" but got "block" +FAIL rendered legend with display: table-cell; columns:1 assert_equals: display: table-cell is not supported expected "table-cell" but got "block" +FAIL rendered legend with display: table-column-group; columns:1 assert_equals: display: table-column-group is not supported expected "table-column-group" but got "block" +FAIL rendered legend with display: table-column; columns:1 assert_equals: display: table-column is not supported expected "table-column" but got "block" +FAIL rendered legend with display: table-caption; columns:1 assert_equals: display: table-caption is not supported expected "table-caption" but got "block" +PASS rendered legend with display: list-item; columns:1 +PASS rendered legend with display: flow; columns:1 +PASS rendered legend with display: flow-root; columns:1 +FAIL rendered legend with display: run-in; columns:1 assert_equals: display: run-in is not supported expected "run-in" but got "block" +FAIL rendered legend with display: inline; columns:1 assert_equals: display: inline is not supported expected "inline" but got "block" +FAIL rendered legend with display: inline-block; columns:1 assert_equals: display: inline-block is not supported expected "inline-block" but got "block" +FAIL rendered legend with display: inline-table; columns:1 assert_equals: display: inline-table is not supported expected "inline-table" but got "table" +FAIL rendered legend with display: block ruby; columns:1 assert_equals: display: block ruby is not supported expected "block ruby" but got "block" +FAIL rendered legend with display: ruby; columns:1 assert_equals: display: ruby is not supported expected "ruby" but got "block" +FAIL rendered legend with display: ruby-base; columns:1 assert_equals: display: ruby-base is not supported expected "ruby-base" but got "block" +FAIL rendered legend with display: ruby-text; columns:1 assert_equals: display: ruby-text is not supported expected "ruby-text" but got "block" +FAIL rendered legend with display: ruby-base-container; columns:1 assert_equals: display: ruby-base-container is not supported expected "ruby-base-container" but got "block" +FAIL rendered legend with display: ruby-text-container; columns:1 assert_equals: display: ruby-text-container is not supported expected "ruby-text-container" but got "block" +PASS rendered legend with display: grid; columns:1 +FAIL rendered legend with display: inline-grid; columns:1 assert_equals: display: inline-grid is not supported expected "inline-grid" but got "grid" +PASS rendered legend with display: flex; columns:1 +FAIL rendered legend with display: inline-flex; columns:1 assert_equals: display: inline-flex is not supported expected "inline-flex" but got "flex" +PASS rendered legend with display: block; overflow:hidden;columns:1 +PASS rendered legend with display: table; overflow:hidden;columns:1 +FAIL rendered legend with display: table-row-group; overflow:hidden;columns:1 assert_equals: display: table-row-group is not supported expected "table-row-group" but got "block" +FAIL rendered legend with display: table-header-group; overflow:hidden;columns:1 assert_equals: display: table-header-group is not supported expected "table-header-group" but got "block" +FAIL rendered legend with display: table-footer-group; overflow:hidden;columns:1 assert_equals: display: table-footer-group is not supported expected "table-footer-group" but got "block" +FAIL rendered legend with display: table-row; overflow:hidden;columns:1 assert_equals: display: table-row is not supported expected "table-row" but got "block" +FAIL rendered legend with display: table-cell; overflow:hidden;columns:1 assert_equals: display: table-cell is not supported expected "table-cell" but got "block" +FAIL rendered legend with display: table-column-group; overflow:hidden;columns:1 assert_equals: display: table-column-group is not supported expected "table-column-group" but got "block" +FAIL rendered legend with display: table-column; overflow:hidden;columns:1 assert_equals: display: table-column is not supported expected "table-column" but got "block" +FAIL rendered legend with display: table-caption; overflow:hidden;columns:1 assert_equals: display: table-caption is not supported expected "table-caption" but got "block" +PASS rendered legend with display: list-item; overflow:hidden;columns:1 +PASS rendered legend with display: flow; overflow:hidden;columns:1 +PASS rendered legend with display: flow-root; overflow:hidden;columns:1 +FAIL rendered legend with display: run-in; overflow:hidden;columns:1 assert_equals: display: run-in is not supported expected "run-in" but got "block" +FAIL rendered legend with display: inline; overflow:hidden;columns:1 assert_equals: display: inline is not supported expected "inline" but got "block" +FAIL rendered legend with display: inline-block; overflow:hidden;columns:1 assert_equals: display: inline-block is not supported expected "inline-block" but got "block" +FAIL rendered legend with display: inline-table; overflow:hidden;columns:1 assert_equals: display: inline-table is not supported expected "inline-table" but got "table" +FAIL rendered legend with display: block ruby; overflow:hidden;columns:1 assert_equals: display: block ruby is not supported expected "block ruby" but got "block" +FAIL rendered legend with display: ruby; overflow:hidden;columns:1 assert_equals: display: ruby is not supported expected "ruby" but got "block" +FAIL rendered legend with display: ruby-base; overflow:hidden;columns:1 assert_equals: display: ruby-base is not supported expected "ruby-base" but got "block" +FAIL rendered legend with display: ruby-text; overflow:hidden;columns:1 assert_equals: display: ruby-text is not supported expected "ruby-text" but got "block" +FAIL rendered legend with display: ruby-base-container; overflow:hidden;columns:1 assert_equals: display: ruby-base-container is not supported expected "ruby-base-container" but got "block" +FAIL rendered legend with display: ruby-text-container; overflow:hidden;columns:1 assert_equals: display: ruby-text-container is not supported expected "ruby-text-container" but got "block" +PASS rendered legend with display: grid; overflow:hidden;columns:1 +FAIL rendered legend with display: inline-grid; overflow:hidden;columns:1 assert_equals: display: inline-grid is not supported expected "inline-grid" but got "grid" +PASS rendered legend with display: flex; overflow:hidden;columns:1 +FAIL rendered legend with display: inline-flex; overflow:hidden;columns:1 assert_equals: display: inline-flex is not supported expected "inline-flex" but got "flex" Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/legend-display.html b/third_party/blink/web_tests/external/wpt/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/legend-display.html index 914547f..b6c57a6 100644 --- a/third_party/blink/web_tests/external/wpt/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/legend-display.html +++ b/third_party/blink/web_tests/external/wpt/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/legend-display.html
@@ -2,6 +2,9 @@ <title>rendered legend and CSS display</title> <script src=/resources/testharness.js></script> <script src=/resources/testharnessreport.js></script> +<style> +legend { width:initial; } +</style> <fieldset><legend id="ref">x</legend></fieldset> <fieldset><legend id="test">x</legend></fieldset> <script> @@ -10,22 +13,28 @@ const testElm = document.querySelector('#test'); const values = ['block', 'table', 'table-row-group', 'table-header-group', 'table-footer-group', 'table-row', 'table-cell', 'table-column-group', 'table-column', 'table-caption', 'list-item', 'flow', 'flow-root','run-in','inline', - 'inline-block', 'inline-table', 'ruby', 'ruby-base', 'ruby-text', 'ruby-base-container', 'ruby-text-container', + 'inline-block', 'inline-table', 'block ruby', 'ruby', 'ruby-base', 'ruby-text', 'ruby-base-container', 'ruby-text-container', 'grid', 'inline-grid', 'flex', 'inline-flex']; + const extraStyle = ['', 'overflow:hidden', 'columns:1', 'overflow:hidden;columns:1']; - for (const val of values) { - test(() => { - testElm.style.removeProperty('display'); - testElm.style.display = val; - const computed = getComputedStyle(testElm); - // Note that computed value is different from the used value. - // E.g., if ruby is not supported, the following assertion will - // fail as the computed value of display will be block. - // If ruby is supported, computed.display will return "ruby", - // but the used value is supposed to be "block". - assert_equals(computed.display, val, `display: ${val} is not supported`); - assert_equals(computed.width, refStyle.width, 'width'); - assert_equals(testElm.offsetLeft, refElm.offsetLeft, 'offsetLeft'); - }, `rendered legend with display: ${val}`); + for (const style of extraStyle) { + for (const val of values) { + test(() => { + testElm.style.removeProperty('display'); + testElm.style = style; + testElm.style.display = val; + const computed = getComputedStyle(testElm); + // Note that computed value is different from the used value. + // E.g., if ruby is not supported, the following assertion will + // fail as the computed value of display will be block. + // If ruby is supported, computed.display will return "ruby", + // but the used value is supposed to be "block ruby". + // Also, 'flow' is serialized as 'block' for legacy reasons. + let expected = val == 'flow' ? 'block' : val; + assert_equals(computed.display, expected, `display: ${val} is not supported`); + assert_equals(computed.width, refStyle.width, 'width'); + assert_equals(testElm.offsetLeft, refElm.offsetLeft, 'offsetLeft'); + }, `rendered legend with display: ${val}` + (style == '' ? '' : "; " + style)); + } } </script>
diff --git a/third_party/blink/web_tests/external/wpt/interfaces/html.idl b/third_party/blink/web_tests/external/wpt/interfaces/html.idl index bb44c13..7f2eba2 100644 --- a/third_party/blink/web_tests/external/wpt/interfaces/html.idl +++ b/third_party/blink/web_tests/external/wpt/interfaces/html.idl
@@ -2396,10 +2396,6 @@ [CEReactions] attribute unsigned long vspace; [CEReactions] attribute DOMString width; - attribute EventHandler onbounce; - attribute EventHandler onfinish; - attribute EventHandler onstart; - undefined start(); undefined stop(); };
diff --git a/third_party/blink/web_tests/external/wpt/resources/idlharness.js b/third_party/blink/web_tests/external/wpt/resources/idlharness.js index 994a0d82..5a97b27 100644 --- a/third_party/blink/web_tests/external/wpt/resources/idlharness.js +++ b/third_party/blink/web_tests/external/wpt/resources/idlharness.js
@@ -3483,6 +3483,22 @@ subsetTestByKey(this.name, test, () => { assert_equals(typeof namespaceObject, "object"); }, `${this.name} namespace: typeof is "object"`); + + subsetTestByKey(this.name, test, () => { + assert_equals( + Object.getOwnPropertyDescriptor(namespaceObject, "length"), + undefined, + "length property must be undefined" + ); + }, `${this.name} namespace: has no length property`); + + subsetTestByKey(this.name, test, () => { + assert_equals( + Object.getOwnPropertyDescriptor(namespaceObject, "name"), + undefined, + "name property must be undefined" + ); + }, `${this.name} namespace: has no name property`); }; IdlNamespace.prototype.test = function ()
diff --git a/third_party/blink/web_tests/external/wpt/url/urlsearchparams-foreach.any.js b/third_party/blink/web_tests/external/wpt/url/urlsearchparams-foreach.any.js index 7969a0c..ff19643 100644 --- a/third_party/blink/web_tests/external/wpt/url/urlsearchparams-foreach.any.js +++ b/third_party/blink/web_tests/external/wpt/url/urlsearchparams-foreach.any.js
@@ -14,7 +14,7 @@ let a = new URL("http://a.b/c?a=1&b=2&c=3&d=4"); let b = a.searchParams; var c = []; - for (i of b) { + for (const i of b) { a.search = "x=1&y=2&z=3"; c.push(i); } @@ -26,7 +26,7 @@ test(function() { let a = new URL("http://a.b/c"); let b = a.searchParams; - for (i of b) { + for (const i of b) { assert_unreached(i); } }, "empty"); @@ -35,7 +35,7 @@ const url = new URL("http://localhost/query?param0=0¶m1=1¶m2=2"); const searchParams = url.searchParams; const seen = []; - for (param of searchParams) { + for (const param of searchParams) { if (param[0] === 'param0') { searchParams.delete('param1'); } @@ -50,7 +50,7 @@ const url = new URL("http://localhost/query?param0=0¶m1=1¶m2=2"); const searchParams = url.searchParams; const seen = []; - for (param of searchParams) { + for (const param of searchParams) { if (param[0] === 'param0') { searchParams.delete('param0'); // 'param1=1' is now in the first slot, so the next iteration will see 'param2=2'. @@ -66,7 +66,7 @@ const url = new URL("http://localhost/query?param0=0¶m1=1¶m2=2"); const searchParams = url.searchParams; const seen = []; - for (param of searchParams) { + for (const param of searchParams) { seen.push(param[0]); searchParams.delete(param[0]); }
diff --git a/third_party/blink/web_tests/fast/backgrounds/size/backgroundSize05-expected.png b/third_party/blink/web_tests/fast/backgrounds/size/backgroundSize05-expected.png index 99a2bac0..50d0c4e9 100644 --- a/third_party/blink/web_tests/fast/backgrounds/size/backgroundSize05-expected.png +++ b/third_party/blink/web_tests/fast/backgrounds/size/backgroundSize05-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/fast/backgrounds/size/backgroundSize09-expected.png b/third_party/blink/web_tests/fast/backgrounds/size/backgroundSize09-expected.png index 1a68762..5045e48 100644 --- a/third_party/blink/web_tests/fast/backgrounds/size/backgroundSize09-expected.png +++ b/third_party/blink/web_tests/fast/backgrounds/size/backgroundSize09-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/fast/backgrounds/size/backgroundSize10-expected.png b/third_party/blink/web_tests/fast/backgrounds/size/backgroundSize10-expected.png index eb7287f6..18c7735 100644 --- a/third_party/blink/web_tests/fast/backgrounds/size/backgroundSize10-expected.png +++ b/third_party/blink/web_tests/fast/backgrounds/size/backgroundSize10-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/fast/backgrounds/size/backgroundSize11-expected.png b/third_party/blink/web_tests/fast/backgrounds/size/backgroundSize11-expected.png index 666d63a4..ef16225 100644 --- a/third_party/blink/web_tests/fast/backgrounds/size/backgroundSize11-expected.png +++ b/third_party/blink/web_tests/fast/backgrounds/size/backgroundSize11-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/fast/backgrounds/size/backgroundSize18-expected.png b/third_party/blink/web_tests/fast/backgrounds/size/backgroundSize18-expected.png index 102e479..b16289d8 100644 --- a/third_party/blink/web_tests/fast/backgrounds/size/backgroundSize18-expected.png +++ b/third_party/blink/web_tests/fast/backgrounds/size/backgroundSize18-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/fast/backgrounds/size/backgroundSize19-expected.png b/third_party/blink/web_tests/fast/backgrounds/size/backgroundSize19-expected.png index f40b6672..caf1f2b 100644 --- a/third_party/blink/web_tests/fast/backgrounds/size/backgroundSize19-expected.png +++ b/third_party/blink/web_tests/fast/backgrounds/size/backgroundSize19-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/fast/backgrounds/size/backgroundSize21-expected.png b/third_party/blink/web_tests/fast/backgrounds/size/backgroundSize21-expected.png index 102e479..b16289d8 100644 --- a/third_party/blink/web_tests/fast/backgrounds/size/backgroundSize21-expected.png +++ b/third_party/blink/web_tests/fast/backgrounds/size/backgroundSize21-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/fast/backgrounds/size/backgroundSize22-expected.png b/third_party/blink/web_tests/fast/backgrounds/size/backgroundSize22-expected.png index 5e4fb02..d6a8962 100644 --- a/third_party/blink/web_tests/fast/backgrounds/size/backgroundSize22-expected.png +++ b/third_party/blink/web_tests/fast/backgrounds/size/backgroundSize22-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/fast/backgrounds/size/contain-and-cover-expected.png b/third_party/blink/web_tests/fast/backgrounds/size/contain-and-cover-expected.png index 14d14d0..3e6a928 100644 --- a/third_party/blink/web_tests/fast/backgrounds/size/contain-and-cover-expected.png +++ b/third_party/blink/web_tests/fast/backgrounds/size/contain-and-cover-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/fast/backgrounds/size/contain-and-cover-zoomed-expected.png b/third_party/blink/web_tests/fast/backgrounds/size/contain-and-cover-zoomed-expected.png index 4ecc22d5..5976c1a 100644 --- a/third_party/blink/web_tests/fast/backgrounds/size/contain-and-cover-zoomed-expected.png +++ b/third_party/blink/web_tests/fast/backgrounds/size/contain-and-cover-zoomed-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/fast/borders/border-image-massive-scale-expected.png b/third_party/blink/web_tests/fast/borders/border-image-massive-scale-expected.png deleted file mode 100644 index 26806d4..0000000 --- a/third_party/blink/web_tests/fast/borders/border-image-massive-scale-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/fast/borders/border-image-rotate-transform-expected.png b/third_party/blink/web_tests/fast/borders/border-image-rotate-transform-expected.png deleted file mode 100644 index 2fd40b2..0000000 --- a/third_party/blink/web_tests/fast/borders/border-image-rotate-transform-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/fast/borders/border-image-scale-transform-expected.png b/third_party/blink/web_tests/fast/borders/border-image-scale-transform-expected.png deleted file mode 100644 index 010cd21..0000000 --- a/third_party/blink/web_tests/fast/borders/border-image-scale-transform-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/fast/borders/inline-mask-overlay-image-outset-expected.png b/third_party/blink/web_tests/fast/borders/inline-mask-overlay-image-outset-expected.png deleted file mode 100644 index 8bb0a288..0000000 --- a/third_party/blink/web_tests/fast/borders/inline-mask-overlay-image-outset-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/fast/reflections/reflection-masks-expected.png b/third_party/blink/web_tests/fast/reflections/reflection-masks-expected.png index 33d1e4f..16a75a3d 100644 --- a/third_party/blink/web_tests/fast/reflections/reflection-masks-expected.png +++ b/third_party/blink/web_tests/fast/reflections/reflection-masks-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/fast/reflections/reflection-masks-opacity-expected.png b/third_party/blink/web_tests/fast/reflections/reflection-masks-opacity-expected.png index 84acb46..8982998 100644 --- a/third_party/blink/web_tests/fast/reflections/reflection-masks-opacity-expected.png +++ b/third_party/blink/web_tests/fast/reflections/reflection-masks-opacity-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/fast/table/border-collapsing/adjacent-row-groups-multi.html b/third_party/blink/web_tests/fast/table/border-collapsing/adjacent-row-groups-multi.html deleted file mode 100644 index 05320d6..0000000 --- a/third_party/blink/web_tests/fast/table/border-collapsing/adjacent-row-groups-multi.html +++ /dev/null
@@ -1,39 +0,0 @@ -<!DOCTYPE html> - -<html> -<head> -<style> - table { border-collapse: collapse; } - thead, tbody, tfoot { border: 1em solid; } - .first { border-color: green; } - .second { border-color: blue; } - tbody { border-color: orange; } - td { width: 50px; height: 50px;} -</style> -</head> - -<body> -<p>Test for Bugzilla <a href="https://bugs.webkit.org/show_bug.cgi?id=86885">Bug 86885</a>: CSS2.1 failure: border-conflict-element021a.</p> -<p>When two adjacent table row groups (thead, tbody, tfoot) have the same border-width and the same border-style in a 'border-collapse: collapse' table, then the color of the border from the topmost table row group wins: so, a thead wins over a tbody which wins over tfoot.</p> -<p>This test verifies the aforementioned sceanario when more than one header and/or footer is specified. The first thead specified in the page should be rendered at the top of the table; similarly the first tfoot specified in the page should be rendered as the last section of the table. In this case both the top-most and the bottom-most sections should be displayed in green color. Also, there should be no overlap of border-colors at the corners.</p> - -<table> - <thead class="first"> - <tr><td></td></tr> - </thead> - <thead class="second"> - <tr><td></td></tr> - </thead> - <tbody> - <tr><td></td></tr> - </tbody> - <tfoot class="first"> - <tr><td></td></tr> - </tfoot> - <tfoot class="second"> - <tr><td></td></tr> - </tfoot> -</table> - -</body> -</html>
diff --git a/third_party/blink/web_tests/fast/webgl/texImage-imageBitmap-from-blob-resize-expected.png b/third_party/blink/web_tests/fast/webgl/texImage-imageBitmap-from-blob-resize-expected.png index 8cbfc267..99586a4 100644 --- a/third_party/blink/web_tests/fast/webgl/texImage-imageBitmap-from-blob-resize-expected.png +++ b/third_party/blink/web_tests/fast/webgl/texImage-imageBitmap-from-blob-resize-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/fast/webgl/texImage-imageBitmap-from-canvas-resize-expected.png b/third_party/blink/web_tests/fast/webgl/texImage-imageBitmap-from-canvas-resize-expected.png index 8cbfc267..99586a4 100644 --- a/third_party/blink/web_tests/fast/webgl/texImage-imageBitmap-from-canvas-resize-expected.png +++ b/third_party/blink/web_tests/fast/webgl/texImage-imageBitmap-from-canvas-resize-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/fast/webgl/texImage-imageBitmap-from-image-resize-expected.png b/third_party/blink/web_tests/fast/webgl/texImage-imageBitmap-from-image-resize-expected.png index 8cbfc267..99586a4 100644 --- a/third_party/blink/web_tests/fast/webgl/texImage-imageBitmap-from-image-resize-expected.png +++ b/third_party/blink/web_tests/fast/webgl/texImage-imageBitmap-from-image-resize-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/fast/webgl/texImage-imageBitmap-from-imageData-resize-expected.png b/third_party/blink/web_tests/fast/webgl/texImage-imageBitmap-from-imageData-resize-expected.png index 8cbfc267..99586a4 100644 --- a/third_party/blink/web_tests/fast/webgl/texImage-imageBitmap-from-imageData-resize-expected.png +++ b/third_party/blink/web_tests/fast/webgl/texImage-imageBitmap-from-imageData-resize-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/fast/webgl/texImage-imageBitmap-from-offscreen-canvas-resize-expected.png b/third_party/blink/web_tests/fast/webgl/texImage-imageBitmap-from-offscreen-canvas-resize-expected.png index 8cbfc267..99586a4 100644 --- a/third_party/blink/web_tests/fast/webgl/texImage-imageBitmap-from-offscreen-canvas-resize-expected.png +++ b/third_party/blink/web_tests/fast/webgl/texImage-imageBitmap-from-offscreen-canvas-resize-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/fast/webgl/texImage-imageBitmap-from-video-resize-expected.png b/third_party/blink/web_tests/fast/webgl/texImage-imageBitmap-from-video-resize-expected.png index 2328a0e..7d4b620d8 100644 --- a/third_party/blink/web_tests/fast/webgl/texImage-imageBitmap-from-video-resize-expected.png +++ b/third_party/blink/web_tests/fast/webgl/texImage-imageBitmap-from-video-resize-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/composite-after-paint/css3/blending/effect-background-blend-mode-stacking-expected.png b/third_party/blink/web_tests/flag-specific/composite-after-paint/css3/blending/effect-background-blend-mode-stacking-expected.png index 96ff48c..2a3487b 100644 --- a/third_party/blink/web_tests/flag-specific/composite-after-paint/css3/blending/effect-background-blend-mode-stacking-expected.png +++ b/third_party/blink/web_tests/flag-specific/composite-after-paint/css3/blending/effect-background-blend-mode-stacking-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/composite-after-paint/fast/borders/inline-mask-overlay-image-outset-expected.png b/third_party/blink/web_tests/flag-specific/composite-after-paint/fast/borders/inline-mask-overlay-image-outset-expected.png deleted file mode 100644 index 8bb0a288..0000000 --- a/third_party/blink/web_tests/flag-specific/composite-after-paint/fast/borders/inline-mask-overlay-image-outset-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/composite-after-paint/tables/mozilla/bugs/bug101674-expected.png b/third_party/blink/web_tests/flag-specific/composite-after-paint/tables/mozilla/bugs/bug101674-expected.png deleted file mode 100644 index cb29e64..0000000 --- a/third_party/blink/web_tests/flag-specific/composite-after-paint/tables/mozilla/bugs/bug101674-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/composite-after-paint/tables/mozilla/bugs/bug1296-expected.png b/third_party/blink/web_tests/flag-specific/composite-after-paint/tables/mozilla/bugs/bug1296-expected.png deleted file mode 100644 index 212b0d3..0000000 --- a/third_party/blink/web_tests/flag-specific/composite-after-paint/tables/mozilla/bugs/bug1296-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/composite-after-paint/tables/mozilla/bugs/bug1430-expected.png b/third_party/blink/web_tests/flag-specific/composite-after-paint/tables/mozilla/bugs/bug1430-expected.png deleted file mode 100644 index 7ca4a524..0000000 --- a/third_party/blink/web_tests/flag-specific/composite-after-paint/tables/mozilla/bugs/bug1430-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/composite-after-paint/tables/mozilla/bugs/bug4093-expected.png b/third_party/blink/web_tests/flag-specific/composite-after-paint/tables/mozilla/bugs/bug4093-expected.png deleted file mode 100644 index 792d083..0000000 --- a/third_party/blink/web_tests/flag-specific/composite-after-paint/tables/mozilla/bugs/bug4093-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/composite-after-paint/tables/mozilla/bugs/bug4427-expected.png b/third_party/blink/web_tests/flag-specific/composite-after-paint/tables/mozilla/bugs/bug4427-expected.png deleted file mode 100644 index 4f38f98..0000000 --- a/third_party/blink/web_tests/flag-specific/composite-after-paint/tables/mozilla/bugs/bug4427-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/composite-after-paint/tables/mozilla/bugs/bug625-expected.png b/third_party/blink/web_tests/flag-specific/composite-after-paint/tables/mozilla/bugs/bug625-expected.png deleted file mode 100644 index 8e95cae..0000000 --- a/third_party/blink/web_tests/flag-specific/composite-after-paint/tables/mozilla/bugs/bug625-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/disable-layout-ng/fast/borders/inline-mask-overlay-image-outset-expected.png b/third_party/blink/web_tests/flag-specific/disable-layout-ng/fast/borders/inline-mask-overlay-image-outset-expected.png index 49cfdf61..826d515 100644 --- a/third_party/blink/web_tests/flag-specific/disable-layout-ng/fast/borders/inline-mask-overlay-image-outset-expected.png +++ b/third_party/blink/web_tests/flag-specific/disable-layout-ng/fast/borders/inline-mask-overlay-image-outset-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/disable-layout-ng/http/tests/misc/slow-loading-image-in-pattern-expected.png b/third_party/blink/web_tests/flag-specific/disable-layout-ng/http/tests/misc/slow-loading-image-in-pattern-expected.png index f451693..e6ce6bd 100644 --- a/third_party/blink/web_tests/flag-specific/disable-layout-ng/http/tests/misc/slow-loading-image-in-pattern-expected.png +++ b/third_party/blink/web_tests/flag-specific/disable-layout-ng/http/tests/misc/slow-loading-image-in-pattern-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/disable-layout-ng/tables/mozilla/bugs/bug101674-expected.png b/third_party/blink/web_tests/flag-specific/disable-layout-ng/tables/mozilla/bugs/bug101674-expected.png index 8029608..734dc2f 100644 --- a/third_party/blink/web_tests/flag-specific/disable-layout-ng/tables/mozilla/bugs/bug101674-expected.png +++ b/third_party/blink/web_tests/flag-specific/disable-layout-ng/tables/mozilla/bugs/bug101674-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/disable-layout-ng/tables/mozilla/bugs/bug1296-expected.png b/third_party/blink/web_tests/flag-specific/disable-layout-ng/tables/mozilla/bugs/bug1296-expected.png index 3af7173f..a35e038a 100644 --- a/third_party/blink/web_tests/flag-specific/disable-layout-ng/tables/mozilla/bugs/bug1296-expected.png +++ b/third_party/blink/web_tests/flag-specific/disable-layout-ng/tables/mozilla/bugs/bug1296-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/disable-layout-ng/tables/mozilla/bugs/bug1430-expected.png b/third_party/blink/web_tests/flag-specific/disable-layout-ng/tables/mozilla/bugs/bug1430-expected.png index b2e6590b..01da8ff6 100644 --- a/third_party/blink/web_tests/flag-specific/disable-layout-ng/tables/mozilla/bugs/bug1430-expected.png +++ b/third_party/blink/web_tests/flag-specific/disable-layout-ng/tables/mozilla/bugs/bug1430-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/disable-layout-ng/tables/mozilla/bugs/bug4093-expected.png b/third_party/blink/web_tests/flag-specific/disable-layout-ng/tables/mozilla/bugs/bug4093-expected.png index e3b6ab3..166913fb 100644 --- a/third_party/blink/web_tests/flag-specific/disable-layout-ng/tables/mozilla/bugs/bug4093-expected.png +++ b/third_party/blink/web_tests/flag-specific/disable-layout-ng/tables/mozilla/bugs/bug4093-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/disable-layout-ng/tables/mozilla/bugs/bug4427-expected.png b/third_party/blink/web_tests/flag-specific/disable-layout-ng/tables/mozilla/bugs/bug4427-expected.png index f969eba..4a29f8c 100644 --- a/third_party/blink/web_tests/flag-specific/disable-layout-ng/tables/mozilla/bugs/bug4427-expected.png +++ b/third_party/blink/web_tests/flag-specific/disable-layout-ng/tables/mozilla/bugs/bug4427-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/disable-layout-ng/tables/mozilla/bugs/bug625-expected.png b/third_party/blink/web_tests/flag-specific/disable-layout-ng/tables/mozilla/bugs/bug625-expected.png index 5198087..3912c50 100644 --- a/third_party/blink/web_tests/flag-specific/disable-layout-ng/tables/mozilla/bugs/bug625-expected.png +++ b/third_party/blink/web_tests/flag-specific/disable-layout-ng/tables/mozilla/bugs/bug625-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/http/tests/accessibility/file-upload-button-with-axpress.html b/third_party/blink/web_tests/http/tests/accessibility/file-upload-button-with-axpress.html deleted file mode 100644 index 91dd77d..0000000 --- a/third_party/blink/web_tests/http/tests/accessibility/file-upload-button-with-axpress.html +++ /dev/null
@@ -1,29 +0,0 @@ -<!DOCTYPE HTML> -<html> -<body> -<script src="/resources/testharness.js"></script> -<script src="/resources/testharnessreport.js"></script> - -<input id="filetype" type="file"> - -<div id="description"></div> -<div id="console"></div> - -<script type="module"> -import {mockFileChooserFactory} from '/wpt_internal/forms/resources/mock-file-chooser.js'; - -promise_test(async () => { - const inputFile = document.getElementById('filetype'); - const activatePromise = new Promise( - resolve => inputFile.addEventListener('DOMActivate', resolve)); - const openPromise = new Promise( - resolve => mockFileChooserFactory.addEventListener('open', resolve)); - accessibilityController.accessibleElementById('filetype').press(); - await activatePromise; - const {detail} = await openPromise; - assert_equals(detail, 'kOpen'); -}, 'when AXPress is used, DOMActivate will be handled by file input elements'); - -</script> -</body> -</html>
diff --git a/third_party/blink/web_tests/images/color-profile-background-image-cover-expected.png b/third_party/blink/web_tests/images/color-profile-background-image-cover-expected.png index 7b224b3c..d6f8669 100644 --- a/third_party/blink/web_tests/images/color-profile-background-image-cover-expected.png +++ b/third_party/blink/web_tests/images/color-profile-background-image-cover-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/images/color-profile-background-image-space-expected.png b/third_party/blink/web_tests/images/color-profile-background-image-space-expected.png index f821b2f..2fa6ca1b 100644 --- a/third_party/blink/web_tests/images/color-profile-background-image-space-expected.png +++ b/third_party/blink/web_tests/images/color-profile-background-image-space-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/images/color-profile-border-image-expected.png b/third_party/blink/web_tests/images/color-profile-border-image-expected.png index 5e478a4..a7cd2e4 100644 --- a/third_party/blink/web_tests/images/color-profile-border-image-expected.png +++ b/third_party/blink/web_tests/images/color-profile-border-image-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/paint/invalidation/svg/js-update-image-expected.png b/third_party/blink/web_tests/paint/invalidation/svg/js-update-image-expected.png index a1fd67e3..c93cffd 100644 --- a/third_party/blink/web_tests/paint/invalidation/svg/js-update-image-expected.png +++ b/third_party/blink/web_tests/paint/invalidation/svg/js-update-image-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/fuchsia/tables/mozilla/core/bloomberg-expected.png b/third_party/blink/web_tests/platform/fuchsia/tables/mozilla/core/bloomberg-expected.png index 65d14b2..962ed32 100644 --- a/third_party/blink/web_tests/platform/fuchsia/tables/mozilla/core/bloomberg-expected.png +++ b/third_party/blink/web_tests/platform/fuchsia/tables/mozilla/core/bloomberg-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/compositing/video/video-controls-layer-creation-expected.png b/third_party/blink/web_tests/platform/linux/compositing/video/video-controls-layer-creation-expected.png deleted file mode 100644 index 32536c0..0000000 --- a/third_party/blink/web_tests/platform/linux/compositing/video/video-controls-layer-creation-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/backgrounds/size/backgroundSize16-expected.png b/third_party/blink/web_tests/platform/linux/fast/backgrounds/size/backgroundSize16-expected.png index c57f984..f0e8a7a 100644 --- a/third_party/blink/web_tests/platform/linux/fast/backgrounds/size/backgroundSize16-expected.png +++ b/third_party/blink/web_tests/platform/linux/fast/backgrounds/size/backgroundSize16-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/backgrounds/size/contain-and-cover-expected.png b/third_party/blink/web_tests/platform/linux/fast/backgrounds/size/contain-and-cover-expected.png index 83a5e6f..baa166e 100644 --- a/third_party/blink/web_tests/platform/linux/fast/backgrounds/size/contain-and-cover-expected.png +++ b/third_party/blink/web_tests/platform/linux/fast/backgrounds/size/contain-and-cover-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/borders/border-image-border-radius-expected.png b/third_party/blink/web_tests/platform/linux/fast/borders/border-image-border-radius-expected.png index 8c3b4cd..e19b6b5 100644 --- a/third_party/blink/web_tests/platform/linux/fast/borders/border-image-border-radius-expected.png +++ b/third_party/blink/web_tests/platform/linux/fast/borders/border-image-border-radius-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/borders/border-image-scaled-expected.png b/third_party/blink/web_tests/platform/linux/fast/borders/border-image-scaled-expected.png index 69a4d82..ac934e5 100644 --- a/third_party/blink/web_tests/platform/linux/fast/borders/border-image-scaled-expected.png +++ b/third_party/blink/web_tests/platform/linux/fast/borders/border-image-scaled-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/borders/inline-mask-overlay-image-outset-expected.png b/third_party/blink/web_tests/platform/linux/fast/borders/inline-mask-overlay-image-outset-expected.png index 8bb0a288..a206678 100644 --- a/third_party/blink/web_tests/platform/linux/fast/borders/inline-mask-overlay-image-outset-expected.png +++ b/third_party/blink/web_tests/platform/linux/fast/borders/inline-mask-overlay-image-outset-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/borders/scaled-border-image-expected.png b/third_party/blink/web_tests/platform/linux/fast/borders/scaled-border-image-expected.png index 19370fc..8fd99ed 100644 --- a/third_party/blink/web_tests/platform/linux/fast/borders/scaled-border-image-expected.png +++ b/third_party/blink/web_tests/platform/linux/fast/borders/scaled-border-image-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/color-scheme/media/video-overlay-menu-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/color-scheme/media/video-overlay-menu-expected.png index 7f0b4f3..1f2f392 100644 --- a/third_party/blink/web_tests/platform/linux/fast/forms/color-scheme/media/video-overlay-menu-expected.png +++ b/third_party/blink/web_tests/platform/linux/fast/forms/color-scheme/media/video-overlay-menu-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/overflow/overflow-of-video-outline-expected.png b/third_party/blink/web_tests/platform/linux/fast/overflow/overflow-of-video-outline-expected.png index 5253f2c4..6ae3ca2 100644 --- a/third_party/blink/web_tests/platform/linux/fast/overflow/overflow-of-video-outline-expected.png +++ b/third_party/blink/web_tests/platform/linux/fast/overflow/overflow-of-video-outline-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/http/tests/misc/slow-loading-image-in-pattern-expected.png b/third_party/blink/web_tests/platform/linux/http/tests/misc/slow-loading-image-in-pattern-expected.png index a3e1fa52..3326cfa 100644 --- a/third_party/blink/web_tests/platform/linux/http/tests/misc/slow-loading-image-in-pattern-expected.png +++ b/third_party/blink/web_tests/platform/linux/http/tests/misc/slow-loading-image-in-pattern-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/images/color-profile-svg-fill-text-expected.png b/third_party/blink/web_tests/platform/linux/images/color-profile-svg-fill-text-expected.png index f93b8d64..958b0e2e 100644 --- a/third_party/blink/web_tests/platform/linux/images/color-profile-svg-fill-text-expected.png +++ b/third_party/blink/web_tests/platform/linux/images/color-profile-svg-fill-text-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/media/controls-after-reload-expected.png b/third_party/blink/web_tests/platform/linux/media/controls-after-reload-expected.png index 4aea95e8..7094c019 100644 --- a/third_party/blink/web_tests/platform/linux/media/controls-after-reload-expected.png +++ b/third_party/blink/web_tests/platform/linux/media/controls-after-reload-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/media/controls-layout-direction-expected.png b/third_party/blink/web_tests/platform/linux/media/controls-layout-direction-expected.png index e5e8d6de..79e5c44 100644 --- a/third_party/blink/web_tests/platform/linux/media/controls-layout-direction-expected.png +++ b/third_party/blink/web_tests/platform/linux/media/controls-layout-direction-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/media/controls-strict-expected.png b/third_party/blink/web_tests/platform/linux/media/controls-strict-expected.png index deda1fd..6777f50 100644 --- a/third_party/blink/web_tests/platform/linux/media/controls-strict-expected.png +++ b/third_party/blink/web_tests/platform/linux/media/controls-strict-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/media/controls-styling-expected.png b/third_party/blink/web_tests/platform/linux/media/controls-styling-expected.png index c23f5e5..3adb06b 100644 --- a/third_party/blink/web_tests/platform/linux/media/controls-styling-expected.png +++ b/third_party/blink/web_tests/platform/linux/media/controls-styling-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/media/controls-styling-strict-expected.png b/third_party/blink/web_tests/platform/linux/media/controls-styling-strict-expected.png index 637142e..3a5ffa2 100644 --- a/third_party/blink/web_tests/platform/linux/media/controls-styling-strict-expected.png +++ b/third_party/blink/web_tests/platform/linux/media/controls-styling-strict-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/media/controls-without-preload-expected.png b/third_party/blink/web_tests/platform/linux/media/controls-without-preload-expected.png index 03caecb..94a2754 100644 --- a/third_party/blink/web_tests/platform/linux/media/controls-without-preload-expected.png +++ b/third_party/blink/web_tests/platform/linux/media/controls-without-preload-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/media/controls/paint-controls-webkit-appearance-none-expected.png b/third_party/blink/web_tests/platform/linux/media/controls/paint-controls-webkit-appearance-none-expected.png index 47e4806..cdeef48 100644 --- a/third_party/blink/web_tests/platform/linux/media/controls/paint-controls-webkit-appearance-none-expected.png +++ b/third_party/blink/web_tests/platform/linux/media/controls/paint-controls-webkit-appearance-none-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/media/media-controls-clone-expected.png b/third_party/blink/web_tests/platform/linux/media/media-controls-clone-expected.png index 9c530f5..2be93d1e 100644 --- a/third_party/blink/web_tests/platform/linux/media/media-controls-clone-expected.png +++ b/third_party/blink/web_tests/platform/linux/media/media-controls-clone-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/media/media-controls-grey-scrubber-expected.png b/third_party/blink/web_tests/platform/linux/media/media-controls-grey-scrubber-expected.png index 9572b808..3d2ca93 100644 --- a/third_party/blink/web_tests/platform/linux/media/media-controls-grey-scrubber-expected.png +++ b/third_party/blink/web_tests/platform/linux/media/media-controls-grey-scrubber-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/media/video-controls-rendering-expected.png b/third_party/blink/web_tests/platform/linux/media/video-controls-rendering-expected.png index 1c39f89..b69e1d20 100644 --- a/third_party/blink/web_tests/platform/linux/media/video-controls-rendering-expected.png +++ b/third_party/blink/web_tests/platform/linux/media/video-controls-rendering-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/media/video-display-toggle-expected.png b/third_party/blink/web_tests/platform/linux/media/video-display-toggle-expected.png index 884b3c8..16fedfd1 100644 --- a/third_party/blink/web_tests/platform/linux/media/video-display-toggle-expected.png +++ b/third_party/blink/web_tests/platform/linux/media/video-display-toggle-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/media/video-empty-source-expected.png b/third_party/blink/web_tests/platform/linux/media/video-empty-source-expected.png index e422345..80304120 100644 --- a/third_party/blink/web_tests/platform/linux/media/video-empty-source-expected.png +++ b/third_party/blink/web_tests/platform/linux/media/video-empty-source-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/media/video-no-audio-expected.png b/third_party/blink/web_tests/platform/linux/media/video-no-audio-expected.png index 670a2253..07075b7 100644 --- a/third_party/blink/web_tests/platform/linux/media/video-no-audio-expected.png +++ b/third_party/blink/web_tests/platform/linux/media/video-no-audio-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/media/video-zoom-controls-expected.png b/third_party/blink/web_tests/platform/linux/media/video-zoom-controls-expected.png index e6d5d0d..bdad034 100644 --- a/third_party/blink/web_tests/platform/linux/media/video-zoom-controls-expected.png +++ b/third_party/blink/web_tests/platform/linux/media/video-zoom-controls-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/paint/invalidation/svg/animated-path-inside-transformed-html-expected.png b/third_party/blink/web_tests/platform/linux/paint/invalidation/svg/animated-path-inside-transformed-html-expected.png index ca09d30e..973efec 100644 --- a/third_party/blink/web_tests/platform/linux/paint/invalidation/svg/animated-path-inside-transformed-html-expected.png +++ b/third_party/blink/web_tests/platform/linux/paint/invalidation/svg/animated-path-inside-transformed-html-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/svg/carto.net/selectionlist-expected.png b/third_party/blink/web_tests/platform/linux/svg/carto.net/selectionlist-expected.png index 70d86a9..c0964d5 100644 --- a/third_party/blink/web_tests/platform/linux/svg/carto.net/selectionlist-expected.png +++ b/third_party/blink/web_tests/platform/linux/svg/carto.net/selectionlist-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/svg/custom/createImageElement2-expected.png b/third_party/blink/web_tests/platform/linux/svg/custom/createImageElement2-expected.png index 9132bd44..48aa65b 100644 --- a/third_party/blink/web_tests/platform/linux/svg/custom/createImageElement2-expected.png +++ b/third_party/blink/web_tests/platform/linux/svg/custom/createImageElement2-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/svg/custom/image-parent-translation-expected.png b/third_party/blink/web_tests/platform/linux/svg/custom/image-parent-translation-expected.png index 54189e4..f6c8f0c 100644 --- a/third_party/blink/web_tests/platform/linux/svg/custom/image-parent-translation-expected.png +++ b/third_party/blink/web_tests/platform/linux/svg/custom/image-parent-translation-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/svg/custom/image-small-width-height-expected.png b/third_party/blink/web_tests/platform/linux/svg/custom/image-small-width-height-expected.png index 7cebb34..1a42687 100644 --- a/third_party/blink/web_tests/platform/linux/svg/custom/image-small-width-height-expected.png +++ b/third_party/blink/web_tests/platform/linux/svg/custom/image-small-width-height-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/svg/custom/pointer-events-image-css-transform-expected.png b/third_party/blink/web_tests/platform/linux/svg/custom/pointer-events-image-css-transform-expected.png index ddec429..8846ef94 100644 --- a/third_party/blink/web_tests/platform/linux/svg/custom/pointer-events-image-css-transform-expected.png +++ b/third_party/blink/web_tests/platform/linux/svg/custom/pointer-events-image-css-transform-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/svg/custom/pointer-events-image-expected.png b/third_party/blink/web_tests/platform/linux/svg/custom/pointer-events-image-expected.png index ddec429..8846ef94 100644 --- a/third_party/blink/web_tests/platform/linux/svg/custom/pointer-events-image-expected.png +++ b/third_party/blink/web_tests/platform/linux/svg/custom/pointer-events-image-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/svg/custom/text-image-opacity-expected.png b/third_party/blink/web_tests/platform/linux/svg/custom/text-image-opacity-expected.png index 5207b1b..1c26e2b 100644 --- a/third_party/blink/web_tests/platform/linux/svg/custom/text-image-opacity-expected.png +++ b/third_party/blink/web_tests/platform/linux/svg/custom/text-image-opacity-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/svg/hixie/perf/004-expected.png b/third_party/blink/web_tests/platform/linux/svg/hixie/perf/004-expected.png index 77e9c32..d53f2bc3 100644 --- a/third_party/blink/web_tests/platform/linux/svg/hixie/perf/004-expected.png +++ b/third_party/blink/web_tests/platform/linux/svg/hixie/perf/004-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/svg/wicd/test-rightsizing-b-expected.png b/third_party/blink/web_tests/platform/linux/svg/wicd/test-rightsizing-b-expected.png index a96acb9..9375d058 100644 --- a/third_party/blink/web_tests/platform/linux/svg/wicd/test-rightsizing-b-expected.png +++ b/third_party/blink/web_tests/platform/linux/svg/wicd/test-rightsizing-b-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/tables/mozilla/bugs/bug101674-expected.png b/third_party/blink/web_tests/platform/linux/tables/mozilla/bugs/bug101674-expected.png index cb29e64..da98207a 100644 --- a/third_party/blink/web_tests/platform/linux/tables/mozilla/bugs/bug101674-expected.png +++ b/third_party/blink/web_tests/platform/linux/tables/mozilla/bugs/bug101674-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/tables/mozilla/bugs/bug11026-expected.png b/third_party/blink/web_tests/platform/linux/tables/mozilla/bugs/bug11026-expected.png index d6d349b..c1de732 100644 --- a/third_party/blink/web_tests/platform/linux/tables/mozilla/bugs/bug11026-expected.png +++ b/third_party/blink/web_tests/platform/linux/tables/mozilla/bugs/bug11026-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/tables/mozilla/bugs/bug1296-expected.png b/third_party/blink/web_tests/platform/linux/tables/mozilla/bugs/bug1296-expected.png index 212b0d3..a760f37c 100644 --- a/third_party/blink/web_tests/platform/linux/tables/mozilla/bugs/bug1296-expected.png +++ b/third_party/blink/web_tests/platform/linux/tables/mozilla/bugs/bug1296-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/tables/mozilla/bugs/bug1430-expected.png b/third_party/blink/web_tests/platform/linux/tables/mozilla/bugs/bug1430-expected.png index 7ca4a524..3f79ad3b 100644 --- a/third_party/blink/web_tests/platform/linux/tables/mozilla/bugs/bug1430-expected.png +++ b/third_party/blink/web_tests/platform/linux/tables/mozilla/bugs/bug1430-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/tables/mozilla/bugs/bug4093-expected.png b/third_party/blink/web_tests/platform/linux/tables/mozilla/bugs/bug4093-expected.png index 792d083..cedbf63 100644 --- a/third_party/blink/web_tests/platform/linux/tables/mozilla/bugs/bug4093-expected.png +++ b/third_party/blink/web_tests/platform/linux/tables/mozilla/bugs/bug4093-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/tables/mozilla/bugs/bug4427-expected.png b/third_party/blink/web_tests/platform/linux/tables/mozilla/bugs/bug4427-expected.png index 4f38f98..ec83a623 100644 --- a/third_party/blink/web_tests/platform/linux/tables/mozilla/bugs/bug4427-expected.png +++ b/third_party/blink/web_tests/platform/linux/tables/mozilla/bugs/bug4427-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/tables/mozilla/bugs/bug625-expected.png b/third_party/blink/web_tests/platform/linux/tables/mozilla/bugs/bug625-expected.png index 8e95cae..179ba16 100644 --- a/third_party/blink/web_tests/platform/linux/tables/mozilla/bugs/bug625-expected.png +++ b/third_party/blink/web_tests/platform/linux/tables/mozilla/bugs/bug625-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/android/fullscreen/video-controls-timeline-expected.png b/third_party/blink/web_tests/platform/linux/virtual/android/fullscreen/video-controls-timeline-expected.png index 3f8bdd44..425df0c 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/android/fullscreen/video-controls-timeline-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/android/fullscreen/video-controls-timeline-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/android/fullscreen/video-scrolled-iframe-expected.png b/third_party/blink/web_tests/platform/linux/virtual/android/fullscreen/video-scrolled-iframe-expected.png index 529e2160..68776a3 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/android/fullscreen/video-scrolled-iframe-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/android/fullscreen/video-scrolled-iframe-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-hc/fast/forms/color-scheme/media/video-overlay-menu-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-hc/fast/forms/color-scheme/media/video-overlay-menu-expected.png index 61ffa67..4139f3f0 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-hc/fast/forms/color-scheme/media/video-overlay-menu-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-hc/fast/forms/color-scheme/media/video-overlay-menu-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/dark-color-scheme/fast/forms/color-scheme/media/video-overlay-menu-expected.png b/third_party/blink/web_tests/platform/linux/virtual/dark-color-scheme/fast/forms/color-scheme/media/video-overlay-menu-expected.png index 70ab693..f8b20c1 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/dark-color-scheme/fast/forms/color-scheme/media/video-overlay-menu-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/dark-color-scheme/fast/forms/color-scheme/media/video-overlay-menu-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/dark-color-scheme/media/video-controls-rendering-expected.png b/third_party/blink/web_tests/platform/linux/virtual/dark-color-scheme/media/video-controls-rendering-expected.png index 6193b01..38d136d 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/dark-color-scheme/media/video-controls-rendering-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/dark-color-scheme/media/video-controls-rendering-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/dark-color-scheme/media/video-focus-ring-expected.png b/third_party/blink/web_tests/platform/linux/virtual/dark-color-scheme/media/video-focus-ring-expected.png index d8b4929..e4a35ee 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/dark-color-scheme/media/video-focus-ring-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/dark-color-scheme/media/video-focus-ring-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/exotic-color-space/images/color-profile-svg-fill-text-expected.png b/third_party/blink/web_tests/platform/linux/virtual/exotic-color-space/images/color-profile-svg-fill-text-expected.png index 5c5b8cee..3deefbf0 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/exotic-color-space/images/color-profile-svg-fill-text-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/exotic-color-space/images/color-profile-svg-fill-text-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/gpu-rasterization/images/color-profile-image-filter-all-expected.png b/third_party/blink/web_tests/platform/linux/virtual/gpu-rasterization/images/color-profile-image-filter-all-expected.png index 6283ca4..a8f1bf2 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/gpu-rasterization/images/color-profile-image-filter-all-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/gpu-rasterization/images/color-profile-image-filter-all-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/gpu-rasterization/images/color-profile-svg-fill-text-expected.png b/third_party/blink/web_tests/platform/linux/virtual/gpu-rasterization/images/color-profile-svg-fill-text-expected.png index fb7a16ce..57ac050 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/gpu-rasterization/images/color-profile-svg-fill-text-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/gpu-rasterization/images/color-profile-svg-fill-text-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac-arm11.0/compositing/img-layer-object-fit-expected.png b/third_party/blink/web_tests/platform/mac-mac-arm11.0/compositing/img-layer-object-fit-expected.png deleted file mode 100644 index e7aedde..0000000 --- a/third_party/blink/web_tests/platform/mac-mac-arm11.0/compositing/img-layer-object-fit-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac-arm11.0/compositing/video/video-controls-layer-creation-expected.png b/third_party/blink/web_tests/platform/mac-mac-arm11.0/compositing/video/video-controls-layer-creation-expected.png deleted file mode 100644 index 8c401b6..0000000 --- a/third_party/blink/web_tests/platform/mac-mac-arm11.0/compositing/video/video-controls-layer-creation-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac-arm11.0/css3/blending/background-blend-mode-different-image-formats-expected.png b/third_party/blink/web_tests/platform/mac-mac-arm11.0/css3/blending/background-blend-mode-different-image-formats-expected.png deleted file mode 100644 index 4ec9d00..0000000 --- a/third_party/blink/web_tests/platform/mac-mac-arm11.0/css3/blending/background-blend-mode-different-image-formats-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac-arm11.0/css3/blending/background-blend-mode-multiple-background-layers-expected.png b/third_party/blink/web_tests/platform/mac-mac-arm11.0/css3/blending/background-blend-mode-multiple-background-layers-expected.png deleted file mode 100644 index d084364c..0000000 --- a/third_party/blink/web_tests/platform/mac-mac-arm11.0/css3/blending/background-blend-mode-multiple-background-layers-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac-arm11.0/external/wpt/clipboard-apis/clipboard-item.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac-arm11.0/external/wpt/clipboard-apis/clipboard-item.https-expected.txt new file mode 100644 index 0000000..ad40535 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac-arm11.0/external/wpt/clipboard-apis/clipboard-item.https-expected.txt
@@ -0,0 +1,14 @@ +This is a testharness.js-based test. +PASS ClipboardItem({string, Blob}) succeeds with different types +PASS ClipboardItem() succeeds with empty options +PASS ClipboardItem({}) fails with empty dictionary input +PASS ClipboardItem(Blob) fails +PASS ClipboardItem() fails with null input +PASS ClipboardItem() fails with no input +PASS types() returns correct values +FAIL raw() returns correct values, defaulting to false assert_equals: expected (boolean) false but got (undefined) undefined +PASS getType(DOMString valid type) succeeds with correct output +PASS getType(DOMString invalid type) succeeds with correct output +PASS getType(DOMString type) rejects correctly when querying for missing type +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac-arm11.0/external/wpt/css/cssom/idlharness-expected.txt b/third_party/blink/web_tests/platform/mac-mac-arm11.0/external/wpt/css/cssom/idlharness-expected.txt new file mode 100644 index 0000000..185f987 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac-arm11.0/external/wpt/css/cssom/idlharness-expected.txt
@@ -0,0 +1,441 @@ +This is a testharness.js-based test. +Found 435 tests; 380 PASS, 55 FAIL, 0 TIMEOUT, 0 NOTRUN. +PASS idl_test setup +PASS idl_test validation +PASS Partial interface CSSStyleSheet: original interface defined +PASS Partial interface CSSStyleSheet: member names are unique +PASS Partial interface mixin DocumentOrShadowRoot: original interface mixin defined +PASS Partial interface mixin DocumentOrShadowRoot: member names are unique +PASS Partial interface Window: original interface defined +PASS Partial interface Window: member names are unique +PASS Partial interface mixin DocumentOrShadowRoot[2]: member names are unique +PASS Partial interface HTMLLinkElement: member names are unique +PASS Partial interface HTMLStyleElement: member names are unique +PASS Partial interface Window[2]: member names are unique +PASS ProcessingInstruction includes LinkStyle: member names are unique +PASS HTMLElement includes ElementCSSInlineStyle: member names are unique +PASS HTMLElement includes GlobalEventHandlers: member names are unique +PASS HTMLElement includes DocumentAndElementEventHandlers: member names are unique +PASS HTMLElement includes ElementContentEditable: member names are unique +PASS HTMLElement includes HTMLOrSVGElement: member names are unique +PASS SVGElement includes ElementCSSInlineStyle: member names are unique +PASS SVGElement includes GlobalEventHandlers: member names are unique +PASS SVGElement includes DocumentAndElementEventHandlers: member names are unique +PASS SVGElement includes SVGElementInstance: member names are unique +PASS SVGElement includes HTMLOrSVGElement: member names are unique +PASS SVGStyleElement includes LinkStyle: member names are unique +PASS HTMLLinkElement includes LinkStyle: member names are unique +PASS HTMLStyleElement includes LinkStyle: member names are unique +PASS Window includes GlobalEventHandlers: member names are unique +PASS Window includes WindowEventHandlers: member names are unique +PASS Window includes WindowOrWorkerGlobalScope: member names are unique +PASS Window includes AnimationFrameProvider: member names are unique +PASS Window includes WindowSessionStorage: member names are unique +PASS Window includes WindowLocalStorage: member names are unique +PASS Document includes NonElementParentNode: member names are unique +PASS Document includes DocumentOrShadowRoot: member names are unique +PASS Document includes ParentNode: member names are unique +PASS Document includes XPathEvaluatorBase: member names are unique +PASS DocumentFragment includes NonElementParentNode: member names are unique +PASS DocumentFragment includes ParentNode: member names are unique +PASS ShadowRoot includes DocumentOrShadowRoot: member names are unique +PASS Element includes ParentNode: member names are unique +PASS Element includes NonDocumentTypeChildNode: member names are unique +PASS Element includes ChildNode: member names are unique +PASS Element includes Slottable: member names are unique +PASS CharacterData includes NonDocumentTypeChildNode: member names are unique +PASS CharacterData includes ChildNode: member names are unique +PASS MediaList interface: existence and properties of interface object +PASS MediaList interface object length +PASS MediaList interface object name +PASS MediaList interface: existence and properties of interface prototype object +PASS MediaList interface: existence and properties of interface prototype object's "constructor" property +PASS MediaList interface: existence and properties of interface prototype object's @@unscopables property +PASS MediaList interface: attribute mediaText +PASS MediaList interface: stringifier +PASS MediaList interface: attribute length +PASS MediaList interface: operation item(unsigned long) +PASS MediaList interface: operation appendMedium(CSSOMString) +PASS MediaList interface: operation deleteMedium(CSSOMString) +PASS MediaList must be primary interface of sheet.media +PASS Stringification of sheet.media +PASS MediaList interface: sheet.media must inherit property "mediaText" with the proper type +PASS MediaList interface: sheet.media must inherit property "length" with the proper type +PASS MediaList interface: sheet.media must inherit property "item(unsigned long)" with the proper type +PASS MediaList interface: calling item(unsigned long) on sheet.media with too few arguments must throw TypeError +PASS MediaList interface: sheet.media must inherit property "appendMedium(CSSOMString)" with the proper type +PASS MediaList interface: calling appendMedium(CSSOMString) on sheet.media with too few arguments must throw TypeError +PASS MediaList interface: sheet.media must inherit property "deleteMedium(CSSOMString)" with the proper type +PASS MediaList interface: calling deleteMedium(CSSOMString) on sheet.media with too few arguments must throw TypeError +PASS StyleSheet interface: existence and properties of interface object +PASS StyleSheet interface object length +PASS StyleSheet interface object name +PASS StyleSheet interface: existence and properties of interface prototype object +PASS StyleSheet interface: existence and properties of interface prototype object's "constructor" property +PASS StyleSheet interface: existence and properties of interface prototype object's @@unscopables property +PASS StyleSheet interface: attribute type +PASS StyleSheet interface: attribute href +PASS StyleSheet interface: attribute ownerNode +PASS StyleSheet interface: attribute parentStyleSheet +PASS StyleSheet interface: attribute title +PASS StyleSheet interface: attribute media +PASS StyleSheet interface: attribute disabled +FAIL CSSStyleSheet interface: existence and properties of interface object assert_throws_js: interface object didn't throw TypeError when called as a constructor function "function() { + new interface_object(); + }" did not throw +PASS CSSStyleSheet interface object length +PASS CSSStyleSheet interface object name +PASS CSSStyleSheet interface: existence and properties of interface prototype object +PASS CSSStyleSheet interface: existence and properties of interface prototype object's "constructor" property +PASS CSSStyleSheet interface: existence and properties of interface prototype object's @@unscopables property +PASS CSSStyleSheet interface: attribute ownerRule +PASS CSSStyleSheet interface: attribute cssRules +PASS CSSStyleSheet interface: operation insertRule(CSSOMString, optional unsigned long) +PASS CSSStyleSheet interface: operation deleteRule(unsigned long) +PASS CSSStyleSheet interface: attribute rules +PASS CSSStyleSheet interface: operation addRule(optional DOMString, optional DOMString, optional unsigned long) +PASS CSSStyleSheet interface: operation removeRule(optional unsigned long) +PASS CSSStyleSheet must be primary interface of sheet +PASS Stringification of sheet +PASS CSSStyleSheet interface: sheet must inherit property "ownerRule" with the proper type +PASS CSSStyleSheet interface: sheet must inherit property "cssRules" with the proper type +PASS CSSStyleSheet interface: sheet must inherit property "insertRule(CSSOMString, optional unsigned long)" with the proper type +PASS CSSStyleSheet interface: calling insertRule(CSSOMString, optional unsigned long) on sheet with too few arguments must throw TypeError +PASS CSSStyleSheet interface: sheet must inherit property "deleteRule(unsigned long)" with the proper type +PASS CSSStyleSheet interface: calling deleteRule(unsigned long) on sheet with too few arguments must throw TypeError +PASS CSSStyleSheet interface: sheet must inherit property "rules" with the proper type +PASS CSSStyleSheet interface: sheet must inherit property "addRule(optional DOMString, optional DOMString, optional unsigned long)" with the proper type +PASS CSSStyleSheet interface: calling addRule(optional DOMString, optional DOMString, optional unsigned long) on sheet with too few arguments must throw TypeError +PASS CSSStyleSheet interface: sheet must inherit property "removeRule(optional unsigned long)" with the proper type +PASS CSSStyleSheet interface: calling removeRule(optional unsigned long) on sheet with too few arguments must throw TypeError +PASS StyleSheet interface: sheet must inherit property "type" with the proper type +PASS StyleSheet interface: sheet must inherit property "href" with the proper type +PASS StyleSheet interface: sheet must inherit property "ownerNode" with the proper type +PASS StyleSheet interface: sheet must inherit property "parentStyleSheet" with the proper type +PASS StyleSheet interface: sheet must inherit property "title" with the proper type +PASS StyleSheet interface: sheet must inherit property "media" with the proper type +PASS StyleSheet interface: sheet must inherit property "disabled" with the proper type +PASS StyleSheetList interface: existence and properties of interface object +PASS StyleSheetList interface object length +PASS StyleSheetList interface object name +PASS StyleSheetList interface: existence and properties of interface prototype object +PASS StyleSheetList interface: existence and properties of interface prototype object's "constructor" property +PASS StyleSheetList interface: existence and properties of interface prototype object's @@unscopables property +PASS StyleSheetList interface: operation item(unsigned long) +PASS StyleSheetList interface: attribute length +PASS StyleSheetList must be primary interface of document.styleSheets +PASS Stringification of document.styleSheets +PASS StyleSheetList interface: document.styleSheets must inherit property "item(unsigned long)" with the proper type +PASS StyleSheetList interface: calling item(unsigned long) on document.styleSheets with too few arguments must throw TypeError +PASS StyleSheetList interface: document.styleSheets must inherit property "length" with the proper type +PASS CSSRuleList interface: existence and properties of interface object +PASS CSSRuleList interface object length +PASS CSSRuleList interface object name +PASS CSSRuleList interface: existence and properties of interface prototype object +PASS CSSRuleList interface: existence and properties of interface prototype object's "constructor" property +PASS CSSRuleList interface: existence and properties of interface prototype object's @@unscopables property +PASS CSSRuleList interface: operation item(unsigned long) +PASS CSSRuleList interface: attribute length +PASS CSSRuleList must be primary interface of sheet.cssRules +PASS Stringification of sheet.cssRules +PASS CSSRuleList interface: sheet.cssRules must inherit property "item(unsigned long)" with the proper type +PASS CSSRuleList interface: calling item(unsigned long) on sheet.cssRules with too few arguments must throw TypeError +PASS CSSRuleList interface: sheet.cssRules must inherit property "length" with the proper type +PASS CSSRule interface: existence and properties of interface object +PASS CSSRule interface object length +PASS CSSRule interface object name +PASS CSSRule interface: existence and properties of interface prototype object +PASS CSSRule interface: existence and properties of interface prototype object's "constructor" property +PASS CSSRule interface: existence and properties of interface prototype object's @@unscopables property +PASS CSSRule interface: attribute cssText +PASS CSSRule interface: attribute parentRule +PASS CSSRule interface: attribute parentStyleSheet +PASS CSSRule interface: attribute type +PASS CSSRule interface: constant STYLE_RULE on interface object +PASS CSSRule interface: constant STYLE_RULE on interface prototype object +PASS CSSRule interface: constant CHARSET_RULE on interface object +PASS CSSRule interface: constant CHARSET_RULE on interface prototype object +PASS CSSRule interface: constant IMPORT_RULE on interface object +PASS CSSRule interface: constant IMPORT_RULE on interface prototype object +PASS CSSRule interface: constant MEDIA_RULE on interface object +PASS CSSRule interface: constant MEDIA_RULE on interface prototype object +PASS CSSRule interface: constant FONT_FACE_RULE on interface object +PASS CSSRule interface: constant FONT_FACE_RULE on interface prototype object +PASS CSSRule interface: constant PAGE_RULE on interface object +PASS CSSRule interface: constant PAGE_RULE on interface prototype object +FAIL CSSRule interface: constant MARGIN_RULE on interface object assert_own_property: expected property "MARGIN_RULE" missing +FAIL CSSRule interface: constant MARGIN_RULE on interface prototype object assert_own_property: expected property "MARGIN_RULE" missing +PASS CSSRule interface: constant NAMESPACE_RULE on interface object +PASS CSSRule interface: constant NAMESPACE_RULE on interface prototype object +PASS CSSStyleRule interface: existence and properties of interface object +PASS CSSStyleRule interface object length +PASS CSSStyleRule interface object name +PASS CSSStyleRule interface: existence and properties of interface prototype object +PASS CSSStyleRule interface: existence and properties of interface prototype object's "constructor" property +PASS CSSStyleRule interface: existence and properties of interface prototype object's @@unscopables property +PASS CSSStyleRule interface: attribute selectorText +PASS CSSStyleRule interface: attribute style +PASS CSSStyleRule must be primary interface of sheet.cssRules[4] +PASS Stringification of sheet.cssRules[4] +PASS CSSStyleRule interface: sheet.cssRules[4] must inherit property "selectorText" with the proper type +PASS CSSStyleRule interface: sheet.cssRules[4] must inherit property "style" with the proper type +PASS CSSRule interface: sheet.cssRules[4] must inherit property "cssText" with the proper type +PASS CSSRule interface: sheet.cssRules[4] must inherit property "parentRule" with the proper type +PASS CSSRule interface: sheet.cssRules[4] must inherit property "parentStyleSheet" with the proper type +PASS CSSRule interface: sheet.cssRules[4] must inherit property "type" with the proper type +PASS CSSRule interface: sheet.cssRules[4] must inherit property "STYLE_RULE" with the proper type +PASS CSSRule interface: sheet.cssRules[4] must inherit property "CHARSET_RULE" with the proper type +PASS CSSRule interface: sheet.cssRules[4] must inherit property "IMPORT_RULE" with the proper type +PASS CSSRule interface: sheet.cssRules[4] must inherit property "MEDIA_RULE" with the proper type +PASS CSSRule interface: sheet.cssRules[4] must inherit property "FONT_FACE_RULE" with the proper type +PASS CSSRule interface: sheet.cssRules[4] must inherit property "PAGE_RULE" with the proper type +FAIL CSSRule interface: sheet.cssRules[4] must inherit property "MARGIN_RULE" with the proper type assert_inherits: property "MARGIN_RULE" not found in prototype chain +PASS CSSRule interface: sheet.cssRules[4] must inherit property "NAMESPACE_RULE" with the proper type +PASS CSSImportRule interface: existence and properties of interface object +PASS CSSImportRule interface object length +PASS CSSImportRule interface object name +PASS CSSImportRule interface: existence and properties of interface prototype object +PASS CSSImportRule interface: existence and properties of interface prototype object's "constructor" property +PASS CSSImportRule interface: existence and properties of interface prototype object's @@unscopables property +PASS CSSImportRule interface: attribute href +PASS CSSImportRule interface: attribute media +PASS CSSImportRule interface: attribute styleSheet +PASS CSSImportRule must be primary interface of sheet.cssRules[0] +PASS Stringification of sheet.cssRules[0] +PASS CSSImportRule interface: sheet.cssRules[0] must inherit property "href" with the proper type +PASS CSSImportRule interface: sheet.cssRules[0] must inherit property "media" with the proper type +PASS CSSImportRule interface: sheet.cssRules[0] must inherit property "styleSheet" with the proper type +PASS CSSRule interface: sheet.cssRules[0] must inherit property "cssText" with the proper type +PASS CSSRule interface: sheet.cssRules[0] must inherit property "parentRule" with the proper type +PASS CSSRule interface: sheet.cssRules[0] must inherit property "parentStyleSheet" with the proper type +PASS CSSRule interface: sheet.cssRules[0] must inherit property "type" with the proper type +PASS CSSRule interface: sheet.cssRules[0] must inherit property "STYLE_RULE" with the proper type +PASS CSSRule interface: sheet.cssRules[0] must inherit property "CHARSET_RULE" with the proper type +PASS CSSRule interface: sheet.cssRules[0] must inherit property "IMPORT_RULE" with the proper type +PASS CSSRule interface: sheet.cssRules[0] must inherit property "MEDIA_RULE" with the proper type +PASS CSSRule interface: sheet.cssRules[0] must inherit property "FONT_FACE_RULE" with the proper type +PASS CSSRule interface: sheet.cssRules[0] must inherit property "PAGE_RULE" with the proper type +FAIL CSSRule interface: sheet.cssRules[0] must inherit property "MARGIN_RULE" with the proper type assert_inherits: property "MARGIN_RULE" not found in prototype chain +PASS CSSRule interface: sheet.cssRules[0] must inherit property "NAMESPACE_RULE" with the proper type +PASS CSSGroupingRule interface: existence and properties of interface object +PASS CSSGroupingRule interface object length +PASS CSSGroupingRule interface object name +PASS CSSGroupingRule interface: existence and properties of interface prototype object +PASS CSSGroupingRule interface: existence and properties of interface prototype object's "constructor" property +PASS CSSGroupingRule interface: existence and properties of interface prototype object's @@unscopables property +PASS CSSGroupingRule interface: attribute cssRules +FAIL CSSGroupingRule interface: operation insertRule(CSSOMString, optional unsigned long) assert_equals: property has wrong .length expected 1 but got 2 +PASS CSSGroupingRule interface: operation deleteRule(unsigned long) +FAIL CSSPageRule interface: existence and properties of interface object assert_equals: prototype of CSSPageRule is not CSSGroupingRule expected function "function CSSGroupingRule() { [native code] }" but got function "function CSSRule() { [native code] }" +PASS CSSPageRule interface object length +PASS CSSPageRule interface object name +FAIL CSSPageRule interface: existence and properties of interface prototype object assert_equals: prototype of CSSPageRule.prototype is not CSSGroupingRule.prototype expected object "[object CSSGroupingRule]" but got object "[object CSSRule]" +PASS CSSPageRule interface: existence and properties of interface prototype object's "constructor" property +PASS CSSPageRule interface: existence and properties of interface prototype object's @@unscopables property +PASS CSSPageRule interface: attribute selectorText +PASS CSSPageRule interface: attribute style +PASS CSSPageRule must be primary interface of sheet.cssRules[2] +PASS Stringification of sheet.cssRules[2] +PASS CSSPageRule interface: sheet.cssRules[2] must inherit property "selectorText" with the proper type +PASS CSSPageRule interface: sheet.cssRules[2] must inherit property "style" with the proper type +FAIL CSSGroupingRule interface: sheet.cssRules[2] must inherit property "cssRules" with the proper type assert_inherits: property "cssRules" not found in prototype chain +FAIL CSSGroupingRule interface: sheet.cssRules[2] must inherit property "insertRule(CSSOMString, optional unsigned long)" with the proper type assert_inherits: property "insertRule" not found in prototype chain +FAIL CSSGroupingRule interface: calling insertRule(CSSOMString, optional unsigned long) on sheet.cssRules[2] with too few arguments must throw TypeError assert_inherits: property "insertRule" not found in prototype chain +FAIL CSSGroupingRule interface: sheet.cssRules[2] must inherit property "deleteRule(unsigned long)" with the proper type assert_inherits: property "deleteRule" not found in prototype chain +FAIL CSSGroupingRule interface: calling deleteRule(unsigned long) on sheet.cssRules[2] with too few arguments must throw TypeError assert_inherits: property "deleteRule" not found in prototype chain +PASS CSSRule interface: sheet.cssRules[2] must inherit property "cssText" with the proper type +PASS CSSRule interface: sheet.cssRules[2] must inherit property "parentRule" with the proper type +PASS CSSRule interface: sheet.cssRules[2] must inherit property "parentStyleSheet" with the proper type +PASS CSSRule interface: sheet.cssRules[2] must inherit property "type" with the proper type +PASS CSSRule interface: sheet.cssRules[2] must inherit property "STYLE_RULE" with the proper type +PASS CSSRule interface: sheet.cssRules[2] must inherit property "CHARSET_RULE" with the proper type +PASS CSSRule interface: sheet.cssRules[2] must inherit property "IMPORT_RULE" with the proper type +PASS CSSRule interface: sheet.cssRules[2] must inherit property "MEDIA_RULE" with the proper type +PASS CSSRule interface: sheet.cssRules[2] must inherit property "FONT_FACE_RULE" with the proper type +PASS CSSRule interface: sheet.cssRules[2] must inherit property "PAGE_RULE" with the proper type +FAIL CSSRule interface: sheet.cssRules[2] must inherit property "MARGIN_RULE" with the proper type assert_inherits: property "MARGIN_RULE" not found in prototype chain +PASS CSSRule interface: sheet.cssRules[2] must inherit property "NAMESPACE_RULE" with the proper type +FAIL CSSMarginRule interface: existence and properties of interface object assert_own_property: self does not have own property "CSSMarginRule" expected property "CSSMarginRule" missing +FAIL CSSMarginRule interface object length assert_own_property: self does not have own property "CSSMarginRule" expected property "CSSMarginRule" missing +FAIL CSSMarginRule interface object name assert_own_property: self does not have own property "CSSMarginRule" expected property "CSSMarginRule" missing +FAIL CSSMarginRule interface: existence and properties of interface prototype object assert_own_property: self does not have own property "CSSMarginRule" expected property "CSSMarginRule" missing +FAIL CSSMarginRule interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "CSSMarginRule" expected property "CSSMarginRule" missing +FAIL CSSMarginRule interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "CSSMarginRule" expected property "CSSMarginRule" missing +FAIL CSSMarginRule interface: attribute name assert_own_property: self does not have own property "CSSMarginRule" expected property "CSSMarginRule" missing +FAIL CSSMarginRule interface: attribute style assert_own_property: self does not have own property "CSSMarginRule" expected property "CSSMarginRule" missing +FAIL CSSMarginRule must be primary interface of sheet.cssRules[2].cssRules[0] assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined" +FAIL Stringification of sheet.cssRules[2].cssRules[0] assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined" +FAIL CSSMarginRule interface: sheet.cssRules[2].cssRules[0] must inherit property "name" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined" +FAIL CSSMarginRule interface: sheet.cssRules[2].cssRules[0] must inherit property "style" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined" +FAIL CSSRule interface: sheet.cssRules[2].cssRules[0] must inherit property "cssText" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined" +FAIL CSSRule interface: sheet.cssRules[2].cssRules[0] must inherit property "parentRule" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined" +FAIL CSSRule interface: sheet.cssRules[2].cssRules[0] must inherit property "parentStyleSheet" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined" +FAIL CSSRule interface: sheet.cssRules[2].cssRules[0] must inherit property "type" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined" +FAIL CSSRule interface: sheet.cssRules[2].cssRules[0] must inherit property "STYLE_RULE" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined" +FAIL CSSRule interface: sheet.cssRules[2].cssRules[0] must inherit property "CHARSET_RULE" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined" +FAIL CSSRule interface: sheet.cssRules[2].cssRules[0] must inherit property "IMPORT_RULE" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined" +FAIL CSSRule interface: sheet.cssRules[2].cssRules[0] must inherit property "MEDIA_RULE" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined" +FAIL CSSRule interface: sheet.cssRules[2].cssRules[0] must inherit property "FONT_FACE_RULE" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined" +FAIL CSSRule interface: sheet.cssRules[2].cssRules[0] must inherit property "PAGE_RULE" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined" +FAIL CSSRule interface: sheet.cssRules[2].cssRules[0] must inherit property "MARGIN_RULE" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined" +FAIL CSSRule interface: sheet.cssRules[2].cssRules[0] must inherit property "NAMESPACE_RULE" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined" +PASS CSSNamespaceRule interface: existence and properties of interface object +PASS CSSNamespaceRule interface object length +PASS CSSNamespaceRule interface object name +PASS CSSNamespaceRule interface: existence and properties of interface prototype object +PASS CSSNamespaceRule interface: existence and properties of interface prototype object's "constructor" property +PASS CSSNamespaceRule interface: existence and properties of interface prototype object's @@unscopables property +PASS CSSNamespaceRule interface: attribute namespaceURI +PASS CSSNamespaceRule interface: attribute prefix +PASS CSSNamespaceRule must be primary interface of sheet.cssRules[1] +PASS Stringification of sheet.cssRules[1] +PASS CSSNamespaceRule interface: sheet.cssRules[1] must inherit property "namespaceURI" with the proper type +PASS CSSNamespaceRule interface: sheet.cssRules[1] must inherit property "prefix" with the proper type +PASS CSSRule interface: sheet.cssRules[1] must inherit property "cssText" with the proper type +PASS CSSRule interface: sheet.cssRules[1] must inherit property "parentRule" with the proper type +PASS CSSRule interface: sheet.cssRules[1] must inherit property "parentStyleSheet" with the proper type +PASS CSSRule interface: sheet.cssRules[1] must inherit property "type" with the proper type +PASS CSSRule interface: sheet.cssRules[1] must inherit property "STYLE_RULE" with the proper type +PASS CSSRule interface: sheet.cssRules[1] must inherit property "CHARSET_RULE" with the proper type +PASS CSSRule interface: sheet.cssRules[1] must inherit property "IMPORT_RULE" with the proper type +PASS CSSRule interface: sheet.cssRules[1] must inherit property "MEDIA_RULE" with the proper type +PASS CSSRule interface: sheet.cssRules[1] must inherit property "FONT_FACE_RULE" with the proper type +PASS CSSRule interface: sheet.cssRules[1] must inherit property "PAGE_RULE" with the proper type +FAIL CSSRule interface: sheet.cssRules[1] must inherit property "MARGIN_RULE" with the proper type assert_inherits: property "MARGIN_RULE" not found in prototype chain +PASS CSSRule interface: sheet.cssRules[1] must inherit property "NAMESPACE_RULE" with the proper type +PASS CSSStyleDeclaration interface: existence and properties of interface object +PASS CSSStyleDeclaration interface object length +PASS CSSStyleDeclaration interface object name +PASS CSSStyleDeclaration interface: existence and properties of interface prototype object +PASS CSSStyleDeclaration interface: existence and properties of interface prototype object's "constructor" property +PASS CSSStyleDeclaration interface: existence and properties of interface prototype object's @@unscopables property +PASS CSSStyleDeclaration interface: attribute cssText +PASS CSSStyleDeclaration interface: attribute length +PASS CSSStyleDeclaration interface: operation item(unsigned long) +PASS CSSStyleDeclaration interface: operation getPropertyValue(CSSOMString) +PASS CSSStyleDeclaration interface: operation getPropertyPriority(CSSOMString) +PASS CSSStyleDeclaration interface: operation setProperty(CSSOMString, CSSOMString, optional CSSOMString) +PASS CSSStyleDeclaration interface: operation removeProperty(CSSOMString) +PASS CSSStyleDeclaration interface: attribute parentRule +PASS CSSStyleDeclaration interface: attribute cssFloat +PASS CSSStyleDeclaration must be primary interface of sheet.cssRules[4].style +PASS Stringification of sheet.cssRules[4].style +PASS CSSStyleDeclaration interface: sheet.cssRules[4].style must inherit property "cssText" with the proper type +PASS CSSStyleDeclaration interface: sheet.cssRules[4].style must inherit property "length" with the proper type +PASS CSSStyleDeclaration interface: sheet.cssRules[4].style must inherit property "item(unsigned long)" with the proper type +PASS CSSStyleDeclaration interface: calling item(unsigned long) on sheet.cssRules[4].style with too few arguments must throw TypeError +PASS CSSStyleDeclaration interface: sheet.cssRules[4].style must inherit property "getPropertyValue(CSSOMString)" with the proper type +PASS CSSStyleDeclaration interface: calling getPropertyValue(CSSOMString) on sheet.cssRules[4].style with too few arguments must throw TypeError +PASS CSSStyleDeclaration interface: sheet.cssRules[4].style must inherit property "getPropertyPriority(CSSOMString)" with the proper type +PASS CSSStyleDeclaration interface: calling getPropertyPriority(CSSOMString) on sheet.cssRules[4].style with too few arguments must throw TypeError +PASS CSSStyleDeclaration interface: sheet.cssRules[4].style must inherit property "setProperty(CSSOMString, CSSOMString, optional CSSOMString)" with the proper type +PASS CSSStyleDeclaration interface: calling setProperty(CSSOMString, CSSOMString, optional CSSOMString) on sheet.cssRules[4].style with too few arguments must throw TypeError +PASS CSSStyleDeclaration interface: sheet.cssRules[4].style must inherit property "removeProperty(CSSOMString)" with the proper type +PASS CSSStyleDeclaration interface: calling removeProperty(CSSOMString) on sheet.cssRules[4].style with too few arguments must throw TypeError +PASS CSSStyleDeclaration interface: sheet.cssRules[4].style must inherit property "parentRule" with the proper type +PASS CSSStyleDeclaration interface: sheet.cssRules[4].style must inherit property "cssFloat" with the proper type +PASS CSSStyleDeclaration must be primary interface of sheet.cssRules[2].style +PASS Stringification of sheet.cssRules[2].style +PASS CSSStyleDeclaration interface: sheet.cssRules[2].style must inherit property "cssText" with the proper type +PASS CSSStyleDeclaration interface: sheet.cssRules[2].style must inherit property "length" with the proper type +PASS CSSStyleDeclaration interface: sheet.cssRules[2].style must inherit property "item(unsigned long)" with the proper type +PASS CSSStyleDeclaration interface: calling item(unsigned long) on sheet.cssRules[2].style with too few arguments must throw TypeError +PASS CSSStyleDeclaration interface: sheet.cssRules[2].style must inherit property "getPropertyValue(CSSOMString)" with the proper type +PASS CSSStyleDeclaration interface: calling getPropertyValue(CSSOMString) on sheet.cssRules[2].style with too few arguments must throw TypeError +PASS CSSStyleDeclaration interface: sheet.cssRules[2].style must inherit property "getPropertyPriority(CSSOMString)" with the proper type +PASS CSSStyleDeclaration interface: calling getPropertyPriority(CSSOMString) on sheet.cssRules[2].style with too few arguments must throw TypeError +PASS CSSStyleDeclaration interface: sheet.cssRules[2].style must inherit property "setProperty(CSSOMString, CSSOMString, optional CSSOMString)" with the proper type +PASS CSSStyleDeclaration interface: calling setProperty(CSSOMString, CSSOMString, optional CSSOMString) on sheet.cssRules[2].style with too few arguments must throw TypeError +PASS CSSStyleDeclaration interface: sheet.cssRules[2].style must inherit property "removeProperty(CSSOMString)" with the proper type +PASS CSSStyleDeclaration interface: calling removeProperty(CSSOMString) on sheet.cssRules[2].style with too few arguments must throw TypeError +PASS CSSStyleDeclaration interface: sheet.cssRules[2].style must inherit property "parentRule" with the proper type +PASS CSSStyleDeclaration interface: sheet.cssRules[2].style must inherit property "cssFloat" with the proper type +FAIL CSSStyleDeclaration must be primary interface of sheet.cssRules[2].cssRules[0].style assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined" +FAIL Stringification of sheet.cssRules[2].cssRules[0].style assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined" +FAIL CSSStyleDeclaration interface: sheet.cssRules[2].cssRules[0].style must inherit property "cssText" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined" +FAIL CSSStyleDeclaration interface: sheet.cssRules[2].cssRules[0].style must inherit property "length" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined" +FAIL CSSStyleDeclaration interface: sheet.cssRules[2].cssRules[0].style must inherit property "item(unsigned long)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined" +FAIL CSSStyleDeclaration interface: calling item(unsigned long) on sheet.cssRules[2].cssRules[0].style with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined" +FAIL CSSStyleDeclaration interface: sheet.cssRules[2].cssRules[0].style must inherit property "getPropertyValue(CSSOMString)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined" +FAIL CSSStyleDeclaration interface: calling getPropertyValue(CSSOMString) on sheet.cssRules[2].cssRules[0].style with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined" +FAIL CSSStyleDeclaration interface: sheet.cssRules[2].cssRules[0].style must inherit property "getPropertyPriority(CSSOMString)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined" +FAIL CSSStyleDeclaration interface: calling getPropertyPriority(CSSOMString) on sheet.cssRules[2].cssRules[0].style with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined" +FAIL CSSStyleDeclaration interface: sheet.cssRules[2].cssRules[0].style must inherit property "setProperty(CSSOMString, CSSOMString, optional CSSOMString)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined" +FAIL CSSStyleDeclaration interface: calling setProperty(CSSOMString, CSSOMString, optional CSSOMString) on sheet.cssRules[2].cssRules[0].style with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined" +FAIL CSSStyleDeclaration interface: sheet.cssRules[2].cssRules[0].style must inherit property "removeProperty(CSSOMString)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined" +FAIL CSSStyleDeclaration interface: calling removeProperty(CSSOMString) on sheet.cssRules[2].cssRules[0].style with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined" +FAIL CSSStyleDeclaration interface: sheet.cssRules[2].cssRules[0].style must inherit property "parentRule" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined" +FAIL CSSStyleDeclaration interface: sheet.cssRules[2].cssRules[0].style must inherit property "cssFloat" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined" +PASS CSSStyleDeclaration must be primary interface of style_element.style +PASS Stringification of style_element.style +PASS CSSStyleDeclaration interface: style_element.style must inherit property "cssText" with the proper type +PASS CSSStyleDeclaration interface: style_element.style must inherit property "length" with the proper type +PASS CSSStyleDeclaration interface: style_element.style must inherit property "item(unsigned long)" with the proper type +PASS CSSStyleDeclaration interface: calling item(unsigned long) on style_element.style with too few arguments must throw TypeError +PASS CSSStyleDeclaration interface: style_element.style must inherit property "getPropertyValue(CSSOMString)" with the proper type +PASS CSSStyleDeclaration interface: calling getPropertyValue(CSSOMString) on style_element.style with too few arguments must throw TypeError +PASS CSSStyleDeclaration interface: style_element.style must inherit property "getPropertyPriority(CSSOMString)" with the proper type +PASS CSSStyleDeclaration interface: calling getPropertyPriority(CSSOMString) on style_element.style with too few arguments must throw TypeError +PASS CSSStyleDeclaration interface: style_element.style must inherit property "setProperty(CSSOMString, CSSOMString, optional CSSOMString)" with the proper type +PASS CSSStyleDeclaration interface: calling setProperty(CSSOMString, CSSOMString, optional CSSOMString) on style_element.style with too few arguments must throw TypeError +PASS CSSStyleDeclaration interface: style_element.style must inherit property "removeProperty(CSSOMString)" with the proper type +PASS CSSStyleDeclaration interface: calling removeProperty(CSSOMString) on style_element.style with too few arguments must throw TypeError +PASS CSSStyleDeclaration interface: style_element.style must inherit property "parentRule" with the proper type +PASS CSSStyleDeclaration interface: style_element.style must inherit property "cssFloat" with the proper type +PASS CSSStyleDeclaration must be primary interface of svg_element.style +PASS Stringification of svg_element.style +PASS CSSStyleDeclaration interface: svg_element.style must inherit property "cssText" with the proper type +PASS CSSStyleDeclaration interface: svg_element.style must inherit property "length" with the proper type +PASS CSSStyleDeclaration interface: svg_element.style must inherit property "item(unsigned long)" with the proper type +PASS CSSStyleDeclaration interface: calling item(unsigned long) on svg_element.style with too few arguments must throw TypeError +PASS CSSStyleDeclaration interface: svg_element.style must inherit property "getPropertyValue(CSSOMString)" with the proper type +PASS CSSStyleDeclaration interface: calling getPropertyValue(CSSOMString) on svg_element.style with too few arguments must throw TypeError +PASS CSSStyleDeclaration interface: svg_element.style must inherit property "getPropertyPriority(CSSOMString)" with the proper type +PASS CSSStyleDeclaration interface: calling getPropertyPriority(CSSOMString) on svg_element.style with too few arguments must throw TypeError +PASS CSSStyleDeclaration interface: svg_element.style must inherit property "setProperty(CSSOMString, CSSOMString, optional CSSOMString)" with the proper type +PASS CSSStyleDeclaration interface: calling setProperty(CSSOMString, CSSOMString, optional CSSOMString) on svg_element.style with too few arguments must throw TypeError +PASS CSSStyleDeclaration interface: svg_element.style must inherit property "removeProperty(CSSOMString)" with the proper type +PASS CSSStyleDeclaration interface: calling removeProperty(CSSOMString) on svg_element.style with too few arguments must throw TypeError +PASS CSSStyleDeclaration interface: svg_element.style must inherit property "parentRule" with the proper type +PASS CSSStyleDeclaration interface: svg_element.style must inherit property "cssFloat" with the proper type +PASS CSSStyleDeclaration must be primary interface of getComputedStyle(svg_element) +PASS Stringification of getComputedStyle(svg_element) +PASS CSSStyleDeclaration interface: getComputedStyle(svg_element) must inherit property "cssText" with the proper type +PASS CSSStyleDeclaration interface: getComputedStyle(svg_element) must inherit property "length" with the proper type +PASS CSSStyleDeclaration interface: getComputedStyle(svg_element) must inherit property "item(unsigned long)" with the proper type +PASS CSSStyleDeclaration interface: calling item(unsigned long) on getComputedStyle(svg_element) with too few arguments must throw TypeError +PASS CSSStyleDeclaration interface: getComputedStyle(svg_element) must inherit property "getPropertyValue(CSSOMString)" with the proper type +PASS CSSStyleDeclaration interface: calling getPropertyValue(CSSOMString) on getComputedStyle(svg_element) with too few arguments must throw TypeError +PASS CSSStyleDeclaration interface: getComputedStyle(svg_element) must inherit property "getPropertyPriority(CSSOMString)" with the proper type +PASS CSSStyleDeclaration interface: calling getPropertyPriority(CSSOMString) on getComputedStyle(svg_element) with too few arguments must throw TypeError +PASS CSSStyleDeclaration interface: getComputedStyle(svg_element) must inherit property "setProperty(CSSOMString, CSSOMString, optional CSSOMString)" with the proper type +PASS CSSStyleDeclaration interface: calling setProperty(CSSOMString, CSSOMString, optional CSSOMString) on getComputedStyle(svg_element) with too few arguments must throw TypeError +PASS CSSStyleDeclaration interface: getComputedStyle(svg_element) must inherit property "removeProperty(CSSOMString)" with the proper type +PASS CSSStyleDeclaration interface: calling removeProperty(CSSOMString) on getComputedStyle(svg_element) with too few arguments must throw TypeError +PASS CSSStyleDeclaration interface: getComputedStyle(svg_element) must inherit property "parentRule" with the proper type +PASS CSSStyleDeclaration interface: getComputedStyle(svg_element) must inherit property "cssFloat" with the proper type +PASS CSS namespace: extended attributes +PASS CSS namespace: property descriptor +PASS CSS namespace: [[Extensible]] is true +PASS CSS namespace: [[Prototype]] is Object.prototype +PASS CSS namespace: typeof is "object" +PASS CSS namespace: operation escape(CSSOMString) +PASS SVGElement interface: attribute style +PASS SVGElement interface: svg_element must inherit property "style" with the proper type +PASS SVGStyleElement interface: attribute sheet +PASS HTMLElement interface: attribute style +PASS HTMLElement interface: style_element must inherit property "style" with the proper type +PASS HTMLElement interface: document.createElement("unknownelement") must inherit property "style" with the proper type +PASS HTMLLinkElement interface: attribute sheet +PASS HTMLStyleElement interface: attribute sheet +PASS Window interface: operation getComputedStyle(Element, optional CSSOMString?) +PASS Window interface: window must inherit property "getComputedStyle(Element, optional CSSOMString?)" with the proper type +PASS Window interface: calling getComputedStyle(Element, optional CSSOMString?) on window with too few arguments must throw TypeError +PASS Document interface: attribute styleSheets +PASS Document interface: document must inherit property "styleSheets" with the proper type +PASS Document interface: new Document() must inherit property "styleSheets" with the proper type +PASS ShadowRoot interface: attribute styleSheets +PASS ProcessingInstruction interface: attribute sheet +PASS ProcessingInstruction interface: xmlss_pi must inherit property "sheet" with the proper type +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac-arm11.0/external/wpt/html/dom/idlharness.https_include=HTML._-expected.txt b/third_party/blink/web_tests/platform/mac-mac-arm11.0/external/wpt/html/dom/idlharness.https_include=HTML._-expected.txt new file mode 100644 index 0000000..bab3797 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac-arm11.0/external/wpt/html/dom/idlharness.https_include=HTML._-expected.txt
@@ -0,0 +1,3742 @@ +This is a testharness.js-based test. +Found 3738 tests; 3709 PASS, 29 FAIL, 0 TIMEOUT, 0 NOTRUN. +PASS idl_test setup +PASS idl_test validation +PASS Partial interface Document: original interface defined +PASS Partial interface Document: member names are unique +PASS Partial interface mixin DocumentOrShadowRoot: original interface mixin defined +PASS Partial interface mixin DocumentOrShadowRoot: member names are unique +PASS Partial interface mixin NavigatorID: original interface mixin defined +PASS Partial interface mixin NavigatorID: member names are unique +PASS Partial interface HTMLAnchorElement: original interface defined +PASS Partial interface HTMLAnchorElement: member names are unique +PASS Partial interface HTMLAreaElement: original interface defined +PASS Partial interface HTMLAreaElement: member names are unique +PASS Partial interface HTMLBodyElement: original interface defined +PASS Partial interface HTMLBodyElement: member names are unique +PASS Partial interface HTMLBRElement: original interface defined +PASS Partial interface HTMLBRElement: member names are unique +PASS Partial interface HTMLTableCaptionElement: original interface defined +PASS Partial interface HTMLTableCaptionElement: member names are unique +PASS Partial interface HTMLTableColElement: original interface defined +PASS Partial interface HTMLTableColElement: member names are unique +PASS Partial interface HTMLDivElement: original interface defined +PASS Partial interface HTMLDivElement: member names are unique +PASS Partial interface HTMLDListElement: original interface defined +PASS Partial interface HTMLDListElement: member names are unique +PASS Partial interface HTMLEmbedElement: original interface defined +PASS Partial interface HTMLEmbedElement: member names are unique +PASS Partial interface HTMLHeadingElement: original interface defined +PASS Partial interface HTMLHeadingElement: member names are unique +PASS Partial interface HTMLHRElement: original interface defined +PASS Partial interface HTMLHRElement: member names are unique +PASS Partial interface HTMLHtmlElement: original interface defined +PASS Partial interface HTMLHtmlElement: member names are unique +PASS Partial interface HTMLIFrameElement: original interface defined +PASS Partial interface HTMLIFrameElement: member names are unique +PASS Partial interface HTMLImageElement: original interface defined +PASS Partial interface HTMLImageElement: member names are unique +PASS Partial interface HTMLInputElement: original interface defined +PASS Partial interface HTMLInputElement: member names are unique +PASS Partial interface HTMLLegendElement: original interface defined +PASS Partial interface HTMLLegendElement: member names are unique +PASS Partial interface HTMLLIElement: original interface defined +PASS Partial interface HTMLLIElement: member names are unique +PASS Partial interface HTMLLinkElement: original interface defined +PASS Partial interface HTMLLinkElement: member names are unique +PASS Partial interface HTMLMenuElement: original interface defined +PASS Partial interface HTMLMenuElement: member names are unique +PASS Partial interface HTMLMetaElement: original interface defined +PASS Partial interface HTMLMetaElement: member names are unique +PASS Partial interface HTMLObjectElement: original interface defined +PASS Partial interface HTMLObjectElement: member names are unique +PASS Partial interface HTMLOListElement: original interface defined +PASS Partial interface HTMLOListElement: member names are unique +PASS Partial interface HTMLParagraphElement: original interface defined +PASS Partial interface HTMLParagraphElement: member names are unique +PASS Partial interface HTMLParamElement: original interface defined +PASS Partial interface HTMLParamElement: member names are unique +PASS Partial interface HTMLPreElement: original interface defined +PASS Partial interface HTMLPreElement: member names are unique +PASS Partial interface HTMLStyleElement: original interface defined +PASS Partial interface HTMLStyleElement: member names are unique +PASS Partial interface HTMLScriptElement: original interface defined +PASS Partial interface HTMLScriptElement: member names are unique +PASS Partial interface HTMLTableElement: original interface defined +PASS Partial interface HTMLTableElement: member names are unique +PASS Partial interface HTMLTableSectionElement: original interface defined +PASS Partial interface HTMLTableSectionElement: member names are unique +PASS Partial interface HTMLTableCellElement: original interface defined +PASS Partial interface HTMLTableCellElement: member names are unique +PASS Partial interface HTMLTableRowElement: original interface defined +PASS Partial interface HTMLTableRowElement: member names are unique +PASS Partial interface HTMLUListElement: original interface defined +PASS Partial interface HTMLUListElement: member names are unique +PASS Partial interface Document[2]: original interface defined +PASS Partial interface Document[2]: member names are unique +PASS Partial interface Window: original interface defined +PASS Partial interface Window: member names are unique +PASS Partial interface Document[3]: member names are unique +PASS Partial interface mixin DocumentOrShadowRoot[2]: member names are unique +PASS Partial interface UIEvent: member names are unique +PASS Document includes GlobalEventHandlers: member names are unique +PASS Document includes DocumentAndElementEventHandlers: member names are unique +PASS Document includes NonElementParentNode: member names are unique +PASS Document includes DocumentOrShadowRoot: member names are unique +PASS Document includes ParentNode: member names are unique +PASS Document includes XPathEvaluatorBase: member names are unique +PASS HTMLElement includes GlobalEventHandlers: member names are unique +PASS HTMLElement includes DocumentAndElementEventHandlers: member names are unique +PASS HTMLElement includes ElementContentEditable: member names are unique +PASS HTMLElement includes HTMLOrSVGElement: member names are unique +PASS HTMLElement includes ElementCSSInlineStyle: member names are unique +PASS HTMLLinkElement includes LinkStyle: member names are unique +PASS HTMLStyleElement includes LinkStyle: member names are unique +PASS HTMLBodyElement includes WindowEventHandlers: member names are unique +PASS HTMLAnchorElement includes HTMLHyperlinkElementUtils: member names are unique +PASS HTMLAreaElement includes HTMLHyperlinkElementUtils: member names are unique +PASS CanvasRenderingContext2D includes CanvasState: member names are unique +PASS CanvasRenderingContext2D includes CanvasTransform: member names are unique +PASS CanvasRenderingContext2D includes CanvasCompositing: member names are unique +PASS CanvasRenderingContext2D includes CanvasImageSmoothing: member names are unique +PASS CanvasRenderingContext2D includes CanvasFillStrokeStyles: member names are unique +PASS CanvasRenderingContext2D includes CanvasShadowStyles: member names are unique +PASS CanvasRenderingContext2D includes CanvasFilters: member names are unique +PASS CanvasRenderingContext2D includes CanvasRect: member names are unique +PASS CanvasRenderingContext2D includes CanvasDrawPath: member names are unique +PASS CanvasRenderingContext2D includes CanvasUserInterface: member names are unique +PASS CanvasRenderingContext2D includes CanvasText: member names are unique +PASS CanvasRenderingContext2D includes CanvasDrawImage: member names are unique +PASS CanvasRenderingContext2D includes CanvasImageData: member names are unique +PASS CanvasRenderingContext2D includes CanvasPathDrawingStyles: member names are unique +PASS CanvasRenderingContext2D includes CanvasTextDrawingStyles: member names are unique +PASS CanvasRenderingContext2D includes CanvasPath: member names are unique +PASS Path2D includes CanvasPath: member names are unique +PASS OffscreenCanvasRenderingContext2D includes CanvasState: member names are unique +PASS OffscreenCanvasRenderingContext2D includes CanvasTransform: member names are unique +PASS OffscreenCanvasRenderingContext2D includes CanvasCompositing: member names are unique +PASS OffscreenCanvasRenderingContext2D includes CanvasImageSmoothing: member names are unique +PASS OffscreenCanvasRenderingContext2D includes CanvasFillStrokeStyles: member names are unique +PASS OffscreenCanvasRenderingContext2D includes CanvasShadowStyles: member names are unique +PASS OffscreenCanvasRenderingContext2D includes CanvasFilters: member names are unique +PASS OffscreenCanvasRenderingContext2D includes CanvasRect: member names are unique +PASS OffscreenCanvasRenderingContext2D includes CanvasDrawPath: member names are unique +PASS OffscreenCanvasRenderingContext2D includes CanvasText: member names are unique +PASS OffscreenCanvasRenderingContext2D includes CanvasDrawImage: member names are unique +PASS OffscreenCanvasRenderingContext2D includes CanvasImageData: member names are unique +PASS OffscreenCanvasRenderingContext2D includes CanvasPathDrawingStyles: member names are unique +PASS OffscreenCanvasRenderingContext2D includes CanvasTextDrawingStyles: member names are unique +PASS OffscreenCanvasRenderingContext2D includes CanvasPath: member names are unique +PASS ElementInternals includes ARIAMixin: member names are unique +PASS Window includes GlobalEventHandlers: member names are unique +PASS Window includes WindowEventHandlers: member names are unique +PASS Window includes WindowOrWorkerGlobalScope: member names are unique +PASS Window includes AnimationFrameProvider: member names are unique +PASS Window includes WindowSessionStorage: member names are unique +PASS Window includes WindowLocalStorage: member names are unique +PASS WorkerGlobalScope includes WindowOrWorkerGlobalScope: member names are unique +PASS Navigator includes NavigatorID: member names are unique +PASS Navigator includes NavigatorLanguage: member names are unique +PASS Navigator includes NavigatorOnLine: member names are unique +PASS Navigator includes NavigatorContentUtils: member names are unique +PASS Navigator includes NavigatorCookies: member names are unique +PASS Navigator includes NavigatorPlugins: member names are unique +PASS Navigator includes NavigatorConcurrentHardware: member names are unique +PASS DedicatedWorkerGlobalScope includes AnimationFrameProvider: member names are unique +PASS Worker includes AbstractWorker: member names are unique +PASS SharedWorker includes AbstractWorker: member names are unique +PASS WorkerNavigator includes NavigatorID: member names are unique +PASS WorkerNavigator includes NavigatorLanguage: member names are unique +PASS WorkerNavigator includes NavigatorOnLine: member names are unique +PASS WorkerNavigator includes NavigatorConcurrentHardware: member names are unique +PASS HTMLFrameSetElement includes WindowEventHandlers: member names are unique +PASS Element includes ARIAMixin: member names are unique +PASS Element includes ParentNode: member names are unique +PASS Element includes NonDocumentTypeChildNode: member names are unique +PASS Element includes ChildNode: member names are unique +PASS Element includes Slottable: member names are unique +PASS SVGElement includes GlobalEventHandlers: member names are unique +PASS SVGElement includes DocumentAndElementEventHandlers: member names are unique +PASS SVGElement includes SVGElementInstance: member names are unique +PASS SVGElement includes HTMLOrSVGElement: member names are unique +PASS SVGElement includes ElementCSSInlineStyle: member names are unique +PASS SVGGraphicsElement includes SVGTests: member names are unique +PASS SVGSVGElement includes SVGFitToViewBox: member names are unique +PASS SVGSVGElement includes WindowEventHandlers: member names are unique +PASS SVGImageElement includes SVGURIReference: member names are unique +PASS SVGScriptElement includes SVGURIReference: member names are unique +PASS SVGAElement includes SVGURIReference: member names are unique +FAIL SVGAElement includes HTMLHyperlinkElementUtils: member names are unique assert_true: member href is unique expected true got false +PASS DocumentFragment includes NonElementParentNode: member names are unique +PASS DocumentFragment includes ParentNode: member names are unique +PASS ShadowRoot includes DocumentOrShadowRoot: member names are unique +PASS HTMLAllCollection interface: existence and properties of interface object +PASS HTMLAllCollection interface object length +PASS HTMLAllCollection interface object name +PASS HTMLAllCollection interface: existence and properties of interface prototype object +PASS HTMLAllCollection interface: existence and properties of interface prototype object's "constructor" property +PASS HTMLAllCollection interface: existence and properties of interface prototype object's @@unscopables property +PASS HTMLAllCollection interface: attribute length +PASS HTMLAllCollection interface: operation namedItem(DOMString) +PASS HTMLAllCollection interface: operation item(optional DOMString) +PASS HTMLAllCollection must be primary interface of document.all +PASS Stringification of document.all +PASS HTMLAllCollection interface: document.all must inherit property "length" with the proper type +PASS HTMLAllCollection interface: document.all must inherit property "namedItem(DOMString)" with the proper type +PASS HTMLAllCollection interface: calling namedItem(DOMString) on document.all with too few arguments must throw TypeError +PASS HTMLAllCollection interface: document.all must inherit property "item(optional DOMString)" with the proper type +PASS HTMLAllCollection interface: calling item(optional DOMString) on document.all with too few arguments must throw TypeError +PASS HTMLFormControlsCollection interface: existence and properties of interface object +PASS HTMLFormControlsCollection interface object length +PASS HTMLFormControlsCollection interface object name +PASS HTMLFormControlsCollection interface: existence and properties of interface prototype object +PASS HTMLFormControlsCollection interface: existence and properties of interface prototype object's "constructor" property +PASS HTMLFormControlsCollection interface: existence and properties of interface prototype object's @@unscopables property +PASS HTMLFormControlsCollection interface: operation namedItem(DOMString) +PASS HTMLFormControlsCollection must be primary interface of document.createElement("form").elements +PASS Stringification of document.createElement("form").elements +PASS HTMLFormControlsCollection interface: document.createElement("form").elements must inherit property "namedItem(DOMString)" with the proper type +PASS HTMLFormControlsCollection interface: calling namedItem(DOMString) on document.createElement("form").elements with too few arguments must throw TypeError +PASS HTMLOptionsCollection interface: existence and properties of interface object +PASS HTMLOptionsCollection interface object length +PASS HTMLOptionsCollection interface object name +PASS HTMLOptionsCollection interface: existence and properties of interface prototype object +PASS HTMLOptionsCollection interface: existence and properties of interface prototype object's "constructor" property +PASS HTMLOptionsCollection interface: existence and properties of interface prototype object's @@unscopables property +PASS HTMLOptionsCollection interface: attribute length +PASS HTMLOptionsCollection interface: operation add((HTMLOptionElement or HTMLOptGroupElement), optional (HTMLElement or long)?) +PASS HTMLOptionsCollection interface: operation remove(long) +PASS HTMLOptionsCollection interface: attribute selectedIndex +PASS HTMLOptionsCollection must be primary interface of document.createElement("select").options +PASS Stringification of document.createElement("select").options +PASS HTMLOptionsCollection interface: document.createElement("select").options must inherit property "length" with the proper type +PASS HTMLOptionsCollection interface: document.createElement("select").options must inherit property "add((HTMLOptionElement or HTMLOptGroupElement), optional (HTMLElement or long)?)" with the proper type +PASS HTMLOptionsCollection interface: calling add((HTMLOptionElement or HTMLOptGroupElement), optional (HTMLElement or long)?) on document.createElement("select").options with too few arguments must throw TypeError +PASS HTMLOptionsCollection interface: document.createElement("select").options must inherit property "remove(long)" with the proper type +PASS HTMLOptionsCollection interface: calling remove(long) on document.createElement("select").options with too few arguments must throw TypeError +PASS HTMLOptionsCollection interface: document.createElement("select").options must inherit property "selectedIndex" with the proper type +PASS HTMLElement interface: existence and properties of interface object +PASS HTMLElement interface object length +PASS HTMLElement interface object name +PASS HTMLElement interface: existence and properties of interface prototype object +PASS HTMLElement interface: existence and properties of interface prototype object's "constructor" property +PASS HTMLElement interface: existence and properties of interface prototype object's @@unscopables property +PASS HTMLElement interface: attribute title +PASS HTMLElement interface: attribute lang +PASS HTMLElement interface: attribute translate +PASS HTMLElement interface: attribute dir +PASS HTMLElement interface: attribute hidden +PASS HTMLElement interface: operation click() +PASS HTMLElement interface: attribute accessKey +FAIL HTMLElement interface: attribute accessKeyLabel assert_true: The prototype object must have a property "accessKeyLabel" expected true got false +PASS HTMLElement interface: attribute draggable +PASS HTMLElement interface: attribute spellcheck +PASS HTMLElement interface: attribute autocapitalize +PASS HTMLElement interface: attribute innerText +PASS HTMLElement interface: operation attachInternals() +PASS HTMLElement interface: attribute onabort +PASS HTMLElement interface: attribute onauxclick +PASS HTMLElement interface: attribute onblur +PASS HTMLElement interface: attribute oncancel +PASS HTMLElement interface: attribute oncanplay +PASS HTMLElement interface: attribute oncanplaythrough +PASS HTMLElement interface: attribute onchange +PASS HTMLElement interface: attribute onclick +PASS HTMLElement interface: attribute onclose +PASS HTMLElement interface: attribute oncontextmenu +PASS HTMLElement interface: attribute oncuechange +PASS HTMLElement interface: attribute ondblclick +PASS HTMLElement interface: attribute ondrag +PASS HTMLElement interface: attribute ondragend +PASS HTMLElement interface: attribute ondragenter +PASS HTMLElement interface: attribute ondragleave +PASS HTMLElement interface: attribute ondragover +PASS HTMLElement interface: attribute ondragstart +PASS HTMLElement interface: attribute ondrop +PASS HTMLElement interface: attribute ondurationchange +PASS HTMLElement interface: attribute onemptied +PASS HTMLElement interface: attribute onended +PASS HTMLElement interface: attribute onerror +PASS HTMLElement interface: attribute onfocus +PASS HTMLElement interface: attribute onformdata +PASS HTMLElement interface: attribute oninput +PASS HTMLElement interface: attribute oninvalid +PASS HTMLElement interface: attribute onkeydown +PASS HTMLElement interface: attribute onkeypress +PASS HTMLElement interface: attribute onkeyup +PASS HTMLElement interface: attribute onload +PASS HTMLElement interface: attribute onloadeddata +PASS HTMLElement interface: attribute onloadedmetadata +PASS HTMLElement interface: attribute onloadstart +PASS HTMLElement interface: attribute onmousedown +PASS HTMLElement interface: attribute onmouseenter +PASS HTMLElement interface: attribute onmouseleave +PASS HTMLElement interface: attribute onmousemove +PASS HTMLElement interface: attribute onmouseout +PASS HTMLElement interface: attribute onmouseover +PASS HTMLElement interface: attribute onmouseup +PASS HTMLElement interface: attribute onpause +PASS HTMLElement interface: attribute onplay +PASS HTMLElement interface: attribute onplaying +PASS HTMLElement interface: attribute onprogress +PASS HTMLElement interface: attribute onratechange +PASS HTMLElement interface: attribute onreset +PASS HTMLElement interface: attribute onresize +PASS HTMLElement interface: attribute onscroll +FAIL HTMLElement interface: attribute onsecuritypolicyviolation assert_true: The prototype object must have a property "onsecuritypolicyviolation" expected true got false +PASS HTMLElement interface: attribute onseeked +PASS HTMLElement interface: attribute onseeking +PASS HTMLElement interface: attribute onselect +FAIL HTMLElement interface: attribute onslotchange assert_true: The prototype object must have a property "onslotchange" expected true got false +PASS HTMLElement interface: attribute onstalled +PASS HTMLElement interface: attribute onsubmit +PASS HTMLElement interface: attribute onsuspend +PASS HTMLElement interface: attribute ontimeupdate +PASS HTMLElement interface: attribute ontoggle +PASS HTMLElement interface: attribute onvolumechange +PASS HTMLElement interface: attribute onwaiting +PASS HTMLElement interface: attribute onwebkitanimationend +PASS HTMLElement interface: attribute onwebkitanimationiteration +PASS HTMLElement interface: attribute onwebkitanimationstart +PASS HTMLElement interface: attribute onwebkittransitionend +PASS HTMLElement interface: attribute onwheel +PASS HTMLElement interface: attribute oncopy +PASS HTMLElement interface: attribute oncut +PASS HTMLElement interface: attribute onpaste +PASS HTMLElement interface: attribute contentEditable +PASS HTMLElement interface: attribute enterKeyHint +PASS HTMLElement interface: attribute isContentEditable +PASS HTMLElement interface: attribute inputMode +PASS HTMLElement interface: attribute dataset +PASS HTMLElement interface: attribute nonce +PASS HTMLElement interface: attribute autofocus +PASS HTMLElement interface: attribute tabIndex +PASS HTMLElement interface: operation focus(optional FocusOptions) +PASS HTMLElement interface: operation blur() +PASS HTMLElement must be primary interface of document.createElement("noscript") +PASS Stringification of document.createElement("noscript") +PASS HTMLElement interface: document.createElement("noscript") must inherit property "title" with the proper type +PASS HTMLElement interface: document.createElement("noscript") must inherit property "lang" with the proper type +PASS HTMLElement interface: document.createElement("noscript") must inherit property "translate" with the proper type +PASS HTMLElement interface: document.createElement("noscript") must inherit property "dir" with the proper type +PASS HTMLElement interface: document.createElement("noscript") must inherit property "hidden" with the proper type +PASS HTMLElement interface: document.createElement("noscript") must inherit property "click()" with the proper type +PASS HTMLElement interface: document.createElement("noscript") must inherit property "accessKey" with the proper type +FAIL HTMLElement interface: document.createElement("noscript") must inherit property "accessKeyLabel" with the proper type assert_inherits: property "accessKeyLabel" not found in prototype chain +PASS HTMLElement interface: document.createElement("noscript") must inherit property "draggable" with the proper type +PASS HTMLElement interface: document.createElement("noscript") must inherit property "spellcheck" with the proper type +PASS HTMLElement interface: document.createElement("noscript") must inherit property "autocapitalize" with the proper type +PASS HTMLElement interface: document.createElement("noscript") must inherit property "innerText" with the proper type +PASS HTMLElement interface: document.createElement("noscript") must inherit property "attachInternals()" with the proper type +PASS HTMLElement interface: document.createElement("noscript") must inherit property "onabort" with the proper type +PASS HTMLElement interface: document.createElement("noscript") must inherit property "onauxclick" with the proper type +PASS HTMLElement interface: document.createElement("noscript") must inherit property "onblur" with the proper type +PASS HTMLElement interface: document.createElement("noscript") must inherit property "oncancel" with the proper type +PASS HTMLElement interface: document.createElement("noscript") must inherit property "oncanplay" with the proper type +PASS HTMLElement interface: document.createElement("noscript") must inherit property "oncanplaythrough" with the proper type +PASS HTMLElement interface: document.createElement("noscript") must inherit property "onchange" with the proper type +PASS HTMLElement interface: document.createElement("noscript") must inherit property "onclick" with the proper type +PASS HTMLElement interface: document.createElement("noscript") must inherit property "onclose" with the proper type +PASS HTMLElement interface: document.createElement("noscript") must inherit property "oncontextmenu" with the proper type +PASS HTMLElement interface: document.createElement("noscript") must inherit property "oncuechange" with the proper type +PASS HTMLElement interface: document.createElement("noscript") must inherit property "ondblclick" with the proper type +PASS HTMLElement interface: document.createElement("noscript") must inherit property "ondrag" with the proper type +PASS HTMLElement interface: document.createElement("noscript") must inherit property "ondragend" with the proper type +PASS HTMLElement interface: document.createElement("noscript") must inherit property "ondragenter" with the proper type +PASS HTMLElement interface: document.createElement("noscript") must inherit property "ondragleave" with the proper type +PASS HTMLElement interface: document.createElement("noscript") must inherit property "ondragover" with the proper type +PASS HTMLElement interface: document.createElement("noscript") must inherit property "ondragstart" with the proper type +PASS HTMLElement interface: document.createElement("noscript") must inherit property "ondrop" with the proper type +PASS HTMLElement interface: document.createElement("noscript") must inherit property "ondurationchange" with the proper type +PASS HTMLElement interface: document.createElement("noscript") must inherit property "onemptied" with the proper type +PASS HTMLElement interface: document.createElement("noscript") must inherit property "onended" with the proper type +PASS HTMLElement interface: document.createElement("noscript") must inherit property "onerror" with the proper type +PASS HTMLElement interface: document.createElement("noscript") must inherit property "onfocus" with the proper type +PASS HTMLElement interface: document.createElement("noscript") must inherit property "onformdata" with the proper type +PASS HTMLElement interface: document.createElement("noscript") must inherit property "oninput" with the proper type +PASS HTMLElement interface: document.createElement("noscript") must inherit property "oninvalid" with the proper type +PASS HTMLElement interface: document.createElement("noscript") must inherit property "onkeydown" with the proper type +PASS HTMLElement interface: document.createElement("noscript") must inherit property "onkeypress" with the proper type +PASS HTMLElement interface: document.createElement("noscript") must inherit property "onkeyup" with the proper type +PASS HTMLElement interface: document.createElement("noscript") must inherit property "onload" with the proper type +PASS HTMLElement interface: document.createElement("noscript") must inherit property "onloadeddata" with the proper type +PASS HTMLElement interface: document.createElement("noscript") must inherit property "onloadedmetadata" with the proper type +PASS HTMLElement interface: document.createElement("noscript") must inherit property "onloadstart" with the proper type +PASS HTMLElement interface: document.createElement("noscript") must inherit property "onmousedown" with the proper type +PASS HTMLElement interface: document.createElement("noscript") must inherit property "onmouseenter" with the proper type +PASS HTMLElement interface: document.createElement("noscript") must inherit property "onmouseleave" with the proper type +PASS HTMLElement interface: document.createElement("noscript") must inherit property "onmousemove" with the proper type +PASS HTMLElement interface: document.createElement("noscript") must inherit property "onmouseout" with the proper type +PASS HTMLElement interface: document.createElement("noscript") must inherit property "onmouseover" with the proper type +PASS HTMLElement interface: document.createElement("noscript") must inherit property "onmouseup" with the proper type +PASS HTMLElement interface: document.createElement("noscript") must inherit property "onpause" with the proper type +PASS HTMLElement interface: document.createElement("noscript") must inherit property "onplay" with the proper type +PASS HTMLElement interface: document.createElement("noscript") must inherit property "onplaying" with the proper type +PASS HTMLElement interface: document.createElement("noscript") must inherit property "onprogress" with the proper type +PASS HTMLElement interface: document.createElement("noscript") must inherit property "onratechange" with the proper type +PASS HTMLElement interface: document.createElement("noscript") must inherit property "onreset" with the proper type +PASS HTMLElement interface: document.createElement("noscript") must inherit property "onresize" with the proper type +PASS HTMLElement interface: document.createElement("noscript") must inherit property "onscroll" with the proper type +FAIL HTMLElement interface: document.createElement("noscript") must inherit property "onsecuritypolicyviolation" with the proper type assert_inherits: property "onsecuritypolicyviolation" not found in prototype chain +PASS HTMLElement interface: document.createElement("noscript") must inherit property "onseeked" with the proper type +PASS HTMLElement interface: document.createElement("noscript") must inherit property "onseeking" with the proper type +PASS HTMLElement interface: document.createElement("noscript") must inherit property "onselect" with the proper type +FAIL HTMLElement interface: document.createElement("noscript") must inherit property "onslotchange" with the proper type assert_inherits: property "onslotchange" not found in prototype chain +PASS HTMLElement interface: document.createElement("noscript") must inherit property "onstalled" with the proper type +PASS HTMLElement interface: document.createElement("noscript") must inherit property "onsubmit" with the proper type +PASS HTMLElement interface: document.createElement("noscript") must inherit property "onsuspend" with the proper type +PASS HTMLElement interface: document.createElement("noscript") must inherit property "ontimeupdate" with the proper type +PASS HTMLElement interface: document.createElement("noscript") must inherit property "ontoggle" with the proper type +PASS HTMLElement interface: document.createElement("noscript") must inherit property "onvolumechange" with the proper type +PASS HTMLElement interface: document.createElement("noscript") must inherit property "onwaiting" with the proper type +PASS HTMLElement interface: document.createElement("noscript") must inherit property "onwebkitanimationend" with the proper type +PASS HTMLElement interface: document.createElement("noscript") must inherit property "onwebkitanimationiteration" with the proper type +PASS HTMLElement interface: document.createElement("noscript") must inherit property "onwebkitanimationstart" with the proper type +PASS HTMLElement interface: document.createElement("noscript") must inherit property "onwebkittransitionend" with the proper type +PASS HTMLElement interface: document.createElement("noscript") must inherit property "onwheel" with the proper type +PASS HTMLElement interface: document.createElement("noscript") must inherit property "oncopy" with the proper type +PASS HTMLElement interface: document.createElement("noscript") must inherit property "oncut" with the proper type +PASS HTMLElement interface: document.createElement("noscript") must inherit property "onpaste" with the proper type +PASS HTMLElement interface: document.createElement("noscript") must inherit property "contentEditable" with the proper type +PASS HTMLElement interface: document.createElement("noscript") must inherit property "enterKeyHint" with the proper type +PASS HTMLElement interface: document.createElement("noscript") must inherit property "isContentEditable" with the proper type +PASS HTMLElement interface: document.createElement("noscript") must inherit property "inputMode" with the proper type +PASS HTMLElement interface: document.createElement("noscript") must inherit property "dataset" with the proper type +PASS HTMLElement interface: document.createElement("noscript") must inherit property "nonce" with the proper type +PASS HTMLElement interface: document.createElement("noscript") must inherit property "autofocus" with the proper type +PASS HTMLElement interface: document.createElement("noscript") must inherit property "tabIndex" with the proper type +PASS HTMLElement interface: document.createElement("noscript") must inherit property "focus(optional FocusOptions)" with the proper type +PASS HTMLElement interface: calling focus(optional FocusOptions) on document.createElement("noscript") with too few arguments must throw TypeError +PASS HTMLElement interface: document.createElement("noscript") must inherit property "blur()" with the proper type +PASS HTMLUnknownElement interface: existence and properties of interface object +PASS HTMLUnknownElement interface object length +PASS HTMLUnknownElement interface object name +PASS HTMLUnknownElement interface: existence and properties of interface prototype object +PASS HTMLUnknownElement interface: existence and properties of interface prototype object's "constructor" property +PASS HTMLUnknownElement interface: existence and properties of interface prototype object's @@unscopables property +PASS HTMLUnknownElement must be primary interface of document.createElement("bgsound") +PASS Stringification of document.createElement("bgsound") +PASS HTMLHtmlElement interface: existence and properties of interface object +PASS HTMLHtmlElement interface object length +PASS HTMLHtmlElement interface object name +PASS HTMLHtmlElement interface: existence and properties of interface prototype object +PASS HTMLHtmlElement interface: existence and properties of interface prototype object's "constructor" property +PASS HTMLHtmlElement interface: existence and properties of interface prototype object's @@unscopables property +PASS HTMLHtmlElement interface: attribute version +PASS HTMLHtmlElement must be primary interface of document.createElement("html") +PASS Stringification of document.createElement("html") +PASS HTMLHtmlElement interface: document.createElement("html") must inherit property "version" with the proper type +PASS HTMLHeadElement interface: existence and properties of interface object +PASS HTMLHeadElement interface object length +PASS HTMLHeadElement interface object name +PASS HTMLHeadElement interface: existence and properties of interface prototype object +PASS HTMLHeadElement interface: existence and properties of interface prototype object's "constructor" property +PASS HTMLHeadElement interface: existence and properties of interface prototype object's @@unscopables property +PASS HTMLHeadElement must be primary interface of document.createElement("head") +PASS Stringification of document.createElement("head") +PASS HTMLTitleElement interface: existence and properties of interface object +PASS HTMLTitleElement interface object length +PASS HTMLTitleElement interface object name +PASS HTMLTitleElement interface: existence and properties of interface prototype object +PASS HTMLTitleElement interface: existence and properties of interface prototype object's "constructor" property +PASS HTMLTitleElement interface: existence and properties of interface prototype object's @@unscopables property +PASS HTMLTitleElement interface: attribute text +PASS HTMLTitleElement must be primary interface of document.createElement("title") +PASS Stringification of document.createElement("title") +PASS HTMLTitleElement interface: document.createElement("title") must inherit property "text" with the proper type +PASS HTMLBaseElement interface: existence and properties of interface object +PASS HTMLBaseElement interface object length +PASS HTMLBaseElement interface object name +PASS HTMLBaseElement interface: existence and properties of interface prototype object +PASS HTMLBaseElement interface: existence and properties of interface prototype object's "constructor" property +PASS HTMLBaseElement interface: existence and properties of interface prototype object's @@unscopables property +PASS HTMLBaseElement interface: attribute href +PASS HTMLBaseElement interface: attribute target +PASS HTMLBaseElement must be primary interface of document.createElement("base") +PASS Stringification of document.createElement("base") +PASS HTMLBaseElement interface: document.createElement("base") must inherit property "href" with the proper type +PASS HTMLBaseElement interface: document.createElement("base") must inherit property "target" with the proper type +PASS HTMLLinkElement interface: existence and properties of interface object +PASS HTMLLinkElement interface object length +PASS HTMLLinkElement interface object name +PASS HTMLLinkElement interface: existence and properties of interface prototype object +PASS HTMLLinkElement interface: existence and properties of interface prototype object's "constructor" property +PASS HTMLLinkElement interface: existence and properties of interface prototype object's @@unscopables property +PASS HTMLLinkElement interface: attribute href +PASS HTMLLinkElement interface: attribute crossOrigin +PASS HTMLLinkElement interface: attribute rel +PASS HTMLLinkElement interface: attribute as +PASS HTMLLinkElement interface: attribute relList +PASS HTMLLinkElement interface: attribute media +PASS HTMLLinkElement interface: attribute integrity +PASS HTMLLinkElement interface: attribute hreflang +PASS HTMLLinkElement interface: attribute type +PASS HTMLLinkElement interface: attribute sizes +PASS HTMLLinkElement interface: attribute imageSrcset +PASS HTMLLinkElement interface: attribute imageSizes +PASS HTMLLinkElement interface: attribute referrerPolicy +PASS HTMLLinkElement interface: attribute disabled +PASS HTMLLinkElement interface: attribute charset +PASS HTMLLinkElement interface: attribute rev +PASS HTMLLinkElement interface: attribute target +PASS HTMLLinkElement must be primary interface of document.createElement("link") +PASS Stringification of document.createElement("link") +PASS HTMLLinkElement interface: document.createElement("link") must inherit property "href" with the proper type +PASS HTMLLinkElement interface: document.createElement("link") must inherit property "crossOrigin" with the proper type +PASS HTMLLinkElement interface: document.createElement("link") must inherit property "rel" with the proper type +PASS HTMLLinkElement interface: document.createElement("link") must inherit property "as" with the proper type +PASS HTMLLinkElement interface: document.createElement("link") must inherit property "relList" with the proper type +PASS HTMLLinkElement interface: document.createElement("link") must inherit property "media" with the proper type +PASS HTMLLinkElement interface: document.createElement("link") must inherit property "integrity" with the proper type +PASS HTMLLinkElement interface: document.createElement("link") must inherit property "hreflang" with the proper type +PASS HTMLLinkElement interface: document.createElement("link") must inherit property "type" with the proper type +PASS HTMLLinkElement interface: document.createElement("link") must inherit property "sizes" with the proper type +PASS HTMLLinkElement interface: document.createElement("link") must inherit property "imageSrcset" with the proper type +PASS HTMLLinkElement interface: document.createElement("link") must inherit property "imageSizes" with the proper type +PASS HTMLLinkElement interface: document.createElement("link") must inherit property "referrerPolicy" with the proper type +PASS HTMLLinkElement interface: document.createElement("link") must inherit property "disabled" with the proper type +PASS HTMLLinkElement interface: document.createElement("link") must inherit property "charset" with the proper type +PASS HTMLLinkElement interface: document.createElement("link") must inherit property "rev" with the proper type +PASS HTMLLinkElement interface: document.createElement("link") must inherit property "target" with the proper type +PASS HTMLMetaElement interface: existence and properties of interface object +PASS HTMLMetaElement interface object length +PASS HTMLMetaElement interface object name +PASS HTMLMetaElement interface: existence and properties of interface prototype object +PASS HTMLMetaElement interface: existence and properties of interface prototype object's "constructor" property +PASS HTMLMetaElement interface: existence and properties of interface prototype object's @@unscopables property +PASS HTMLMetaElement interface: attribute name +PASS HTMLMetaElement interface: attribute httpEquiv +PASS HTMLMetaElement interface: attribute content +PASS HTMLMetaElement interface: attribute scheme +PASS HTMLMetaElement must be primary interface of document.createElement("meta") +PASS Stringification of document.createElement("meta") +PASS HTMLMetaElement interface: document.createElement("meta") must inherit property "name" with the proper type +PASS HTMLMetaElement interface: document.createElement("meta") must inherit property "httpEquiv" with the proper type +PASS HTMLMetaElement interface: document.createElement("meta") must inherit property "content" with the proper type +PASS HTMLMetaElement interface: document.createElement("meta") must inherit property "scheme" with the proper type +PASS HTMLStyleElement interface: existence and properties of interface object +PASS HTMLStyleElement interface object length +PASS HTMLStyleElement interface object name +PASS HTMLStyleElement interface: existence and properties of interface prototype object +PASS HTMLStyleElement interface: existence and properties of interface prototype object's "constructor" property +PASS HTMLStyleElement interface: existence and properties of interface prototype object's @@unscopables property +PASS HTMLStyleElement interface: attribute media +PASS HTMLStyleElement interface: attribute type +PASS HTMLStyleElement must be primary interface of document.createElement("style") +PASS Stringification of document.createElement("style") +PASS HTMLStyleElement interface: document.createElement("style") must inherit property "media" with the proper type +PASS HTMLStyleElement interface: document.createElement("style") must inherit property "type" with the proper type +PASS HTMLBodyElement interface: existence and properties of interface object +PASS HTMLBodyElement interface object length +PASS HTMLBodyElement interface object name +PASS HTMLBodyElement interface: existence and properties of interface prototype object +PASS HTMLBodyElement interface: existence and properties of interface prototype object's "constructor" property +PASS HTMLBodyElement interface: existence and properties of interface prototype object's @@unscopables property +PASS HTMLBodyElement interface: attribute text +PASS HTMLBodyElement interface: attribute link +PASS HTMLBodyElement interface: attribute vLink +PASS HTMLBodyElement interface: attribute aLink +PASS HTMLBodyElement interface: attribute bgColor +PASS HTMLBodyElement interface: attribute background +PASS HTMLBodyElement interface: attribute onafterprint +PASS HTMLBodyElement interface: attribute onbeforeprint +PASS HTMLBodyElement interface: attribute onbeforeunload +PASS HTMLBodyElement interface: attribute onhashchange +PASS HTMLBodyElement interface: attribute onlanguagechange +PASS HTMLBodyElement interface: attribute onmessage +PASS HTMLBodyElement interface: attribute onmessageerror +PASS HTMLBodyElement interface: attribute onoffline +PASS HTMLBodyElement interface: attribute ononline +PASS HTMLBodyElement interface: attribute onpagehide +PASS HTMLBodyElement interface: attribute onpageshow +PASS HTMLBodyElement interface: attribute onpopstate +PASS HTMLBodyElement interface: attribute onrejectionhandled +PASS HTMLBodyElement interface: attribute onstorage +PASS HTMLBodyElement interface: attribute onunhandledrejection +PASS HTMLBodyElement interface: attribute onunload +PASS HTMLBodyElement must be primary interface of document.createElement("body") +PASS Stringification of document.createElement("body") +PASS HTMLBodyElement interface: document.createElement("body") must inherit property "text" with the proper type +PASS HTMLBodyElement interface: document.createElement("body") must inherit property "link" with the proper type +PASS HTMLBodyElement interface: document.createElement("body") must inherit property "vLink" with the proper type +PASS HTMLBodyElement interface: document.createElement("body") must inherit property "aLink" with the proper type +PASS HTMLBodyElement interface: document.createElement("body") must inherit property "bgColor" with the proper type +PASS HTMLBodyElement interface: document.createElement("body") must inherit property "background" with the proper type +PASS HTMLBodyElement interface: document.createElement("body") must inherit property "onafterprint" with the proper type +PASS HTMLBodyElement interface: document.createElement("body") must inherit property "onbeforeprint" with the proper type +PASS HTMLBodyElement interface: document.createElement("body") must inherit property "onbeforeunload" with the proper type +PASS HTMLBodyElement interface: document.createElement("body") must inherit property "onhashchange" with the proper type +PASS HTMLBodyElement interface: document.createElement("body") must inherit property "onlanguagechange" with the proper type +PASS HTMLBodyElement interface: document.createElement("body") must inherit property "onmessage" with the proper type +PASS HTMLBodyElement interface: document.createElement("body") must inherit property "onmessageerror" with the proper type +PASS HTMLBodyElement interface: document.createElement("body") must inherit property "onoffline" with the proper type +PASS HTMLBodyElement interface: document.createElement("body") must inherit property "ononline" with the proper type +PASS HTMLBodyElement interface: document.createElement("body") must inherit property "onpagehide" with the proper type +PASS HTMLBodyElement interface: document.createElement("body") must inherit property "onpageshow" with the proper type +PASS HTMLBodyElement interface: document.createElement("body") must inherit property "onpopstate" with the proper type +PASS HTMLBodyElement interface: document.createElement("body") must inherit property "onrejectionhandled" with the proper type +PASS HTMLBodyElement interface: document.createElement("body") must inherit property "onstorage" with the proper type +PASS HTMLBodyElement interface: document.createElement("body") must inherit property "onunhandledrejection" with the proper type +PASS HTMLBodyElement interface: document.createElement("body") must inherit property "onunload" with the proper type +PASS HTMLHeadingElement interface: existence and properties of interface object +PASS HTMLHeadingElement interface object length +PASS HTMLHeadingElement interface object name +PASS HTMLHeadingElement interface: existence and properties of interface prototype object +PASS HTMLHeadingElement interface: existence and properties of interface prototype object's "constructor" property +PASS HTMLHeadingElement interface: existence and properties of interface prototype object's @@unscopables property +PASS HTMLHeadingElement interface: attribute align +PASS HTMLHeadingElement must be primary interface of document.createElement("h1") +PASS Stringification of document.createElement("h1") +PASS HTMLHeadingElement interface: document.createElement("h1") must inherit property "align" with the proper type +PASS HTMLParagraphElement interface: existence and properties of interface object +PASS HTMLParagraphElement interface object length +PASS HTMLParagraphElement interface object name +PASS HTMLParagraphElement interface: existence and properties of interface prototype object +PASS HTMLParagraphElement interface: existence and properties of interface prototype object's "constructor" property +PASS HTMLParagraphElement interface: existence and properties of interface prototype object's @@unscopables property +PASS HTMLParagraphElement interface: attribute align +PASS HTMLParagraphElement must be primary interface of document.createElement("p") +PASS Stringification of document.createElement("p") +PASS HTMLParagraphElement interface: document.createElement("p") must inherit property "align" with the proper type +PASS HTMLHRElement interface: existence and properties of interface object +PASS HTMLHRElement interface object length +PASS HTMLHRElement interface object name +PASS HTMLHRElement interface: existence and properties of interface prototype object +PASS HTMLHRElement interface: existence and properties of interface prototype object's "constructor" property +PASS HTMLHRElement interface: existence and properties of interface prototype object's @@unscopables property +PASS HTMLHRElement interface: attribute align +PASS HTMLHRElement interface: attribute color +PASS HTMLHRElement interface: attribute noShade +PASS HTMLHRElement interface: attribute size +PASS HTMLHRElement interface: attribute width +PASS HTMLHRElement must be primary interface of document.createElement("hr") +PASS Stringification of document.createElement("hr") +PASS HTMLHRElement interface: document.createElement("hr") must inherit property "align" with the proper type +PASS HTMLHRElement interface: document.createElement("hr") must inherit property "color" with the proper type +PASS HTMLHRElement interface: document.createElement("hr") must inherit property "noShade" with the proper type +PASS HTMLHRElement interface: document.createElement("hr") must inherit property "size" with the proper type +PASS HTMLHRElement interface: document.createElement("hr") must inherit property "width" with the proper type +PASS HTMLPreElement interface: existence and properties of interface object +PASS HTMLPreElement interface object length +PASS HTMLPreElement interface object name +PASS HTMLPreElement interface: existence and properties of interface prototype object +PASS HTMLPreElement interface: existence and properties of interface prototype object's "constructor" property +PASS HTMLPreElement interface: existence and properties of interface prototype object's @@unscopables property +PASS HTMLPreElement interface: attribute width +PASS HTMLPreElement must be primary interface of document.createElement("pre") +PASS Stringification of document.createElement("pre") +PASS HTMLPreElement interface: document.createElement("pre") must inherit property "width" with the proper type +PASS HTMLPreElement must be primary interface of document.createElement("listing") +PASS Stringification of document.createElement("listing") +PASS HTMLPreElement interface: document.createElement("listing") must inherit property "width" with the proper type +PASS HTMLPreElement must be primary interface of document.createElement("xmp") +PASS Stringification of document.createElement("xmp") +PASS HTMLPreElement interface: document.createElement("xmp") must inherit property "width" with the proper type +PASS HTMLQuoteElement interface: existence and properties of interface object +PASS HTMLQuoteElement interface object length +PASS HTMLQuoteElement interface object name +PASS HTMLQuoteElement interface: existence and properties of interface prototype object +PASS HTMLQuoteElement interface: existence and properties of interface prototype object's "constructor" property +PASS HTMLQuoteElement interface: existence and properties of interface prototype object's @@unscopables property +PASS HTMLQuoteElement interface: attribute cite +PASS HTMLQuoteElement must be primary interface of document.createElement("blockquote") +PASS Stringification of document.createElement("blockquote") +PASS HTMLQuoteElement interface: document.createElement("blockquote") must inherit property "cite" with the proper type +PASS HTMLQuoteElement must be primary interface of document.createElement("q") +PASS Stringification of document.createElement("q") +PASS HTMLQuoteElement interface: document.createElement("q") must inherit property "cite" with the proper type +PASS HTMLOListElement interface: existence and properties of interface object +PASS HTMLOListElement interface object length +PASS HTMLOListElement interface object name +PASS HTMLOListElement interface: existence and properties of interface prototype object +PASS HTMLOListElement interface: existence and properties of interface prototype object's "constructor" property +PASS HTMLOListElement interface: existence and properties of interface prototype object's @@unscopables property +PASS HTMLOListElement interface: attribute reversed +PASS HTMLOListElement interface: attribute start +PASS HTMLOListElement interface: attribute type +PASS HTMLOListElement interface: attribute compact +PASS HTMLUListElement interface: existence and properties of interface object +PASS HTMLUListElement interface object length +PASS HTMLUListElement interface object name +PASS HTMLUListElement interface: existence and properties of interface prototype object +PASS HTMLUListElement interface: existence and properties of interface prototype object's "constructor" property +PASS HTMLUListElement interface: existence and properties of interface prototype object's @@unscopables property +PASS HTMLUListElement interface: attribute compact +PASS HTMLUListElement interface: attribute type +PASS HTMLMenuElement interface: existence and properties of interface object +PASS HTMLMenuElement interface object length +PASS HTMLMenuElement interface object name +PASS HTMLMenuElement interface: existence and properties of interface prototype object +PASS HTMLMenuElement interface: existence and properties of interface prototype object's "constructor" property +PASS HTMLMenuElement interface: existence and properties of interface prototype object's @@unscopables property +PASS HTMLMenuElement interface: attribute compact +PASS HTMLMenuElement must be primary interface of document.createElement("menu") +PASS Stringification of document.createElement("menu") +PASS HTMLMenuElement interface: document.createElement("menu") must inherit property "compact" with the proper type +PASS HTMLLIElement interface: existence and properties of interface object +PASS HTMLLIElement interface object length +PASS HTMLLIElement interface object name +PASS HTMLLIElement interface: existence and properties of interface prototype object +PASS HTMLLIElement interface: existence and properties of interface prototype object's "constructor" property +PASS HTMLLIElement interface: existence and properties of interface prototype object's @@unscopables property +PASS HTMLLIElement interface: attribute value +PASS HTMLLIElement interface: attribute type +PASS HTMLLIElement must be primary interface of document.createElement("li") +PASS Stringification of document.createElement("li") +PASS HTMLLIElement interface: document.createElement("li") must inherit property "value" with the proper type +PASS HTMLLIElement interface: document.createElement("li") must inherit property "type" with the proper type +PASS HTMLDListElement interface: existence and properties of interface object +PASS HTMLDListElement interface object length +PASS HTMLDListElement interface object name +PASS HTMLDListElement interface: existence and properties of interface prototype object +PASS HTMLDListElement interface: existence and properties of interface prototype object's "constructor" property +PASS HTMLDListElement interface: existence and properties of interface prototype object's @@unscopables property +PASS HTMLDListElement interface: attribute compact +PASS HTMLDivElement interface: existence and properties of interface object +PASS HTMLDivElement interface object length +PASS HTMLDivElement interface object name +PASS HTMLDivElement interface: existence and properties of interface prototype object +PASS HTMLDivElement interface: existence and properties of interface prototype object's "constructor" property +PASS HTMLDivElement interface: existence and properties of interface prototype object's @@unscopables property +PASS HTMLDivElement interface: attribute align +PASS HTMLDivElement must be primary interface of document.createElement("div") +PASS Stringification of document.createElement("div") +PASS HTMLDivElement interface: document.createElement("div") must inherit property "align" with the proper type +PASS HTMLAnchorElement interface: existence and properties of interface object +PASS HTMLAnchorElement interface object length +PASS HTMLAnchorElement interface object name +PASS HTMLAnchorElement interface: existence and properties of interface prototype object +PASS HTMLAnchorElement interface: existence and properties of interface prototype object's "constructor" property +PASS HTMLAnchorElement interface: existence and properties of interface prototype object's @@unscopables property +PASS HTMLAnchorElement interface: attribute target +PASS HTMLAnchorElement interface: attribute download +PASS HTMLAnchorElement interface: attribute ping +PASS HTMLAnchorElement interface: attribute rel +PASS HTMLAnchorElement interface: attribute relList +PASS HTMLAnchorElement interface: attribute hreflang +PASS HTMLAnchorElement interface: attribute type +PASS HTMLAnchorElement interface: attribute text +PASS HTMLAnchorElement interface: attribute referrerPolicy +PASS HTMLAnchorElement interface: attribute coords +PASS HTMLAnchorElement interface: attribute charset +PASS HTMLAnchorElement interface: attribute name +PASS HTMLAnchorElement interface: attribute rev +PASS HTMLAnchorElement interface: attribute shape +PASS HTMLAnchorElement interface: attribute href +PASS HTMLAnchorElement interface: stringifier +PASS HTMLAnchorElement interface: attribute origin +PASS HTMLAnchorElement interface: attribute protocol +PASS HTMLAnchorElement interface: attribute username +PASS HTMLAnchorElement interface: attribute password +PASS HTMLAnchorElement interface: attribute host +PASS HTMLAnchorElement interface: attribute hostname +PASS HTMLAnchorElement interface: attribute port +PASS HTMLAnchorElement interface: attribute pathname +PASS HTMLAnchorElement interface: attribute search +PASS HTMLAnchorElement interface: attribute hash +PASS HTMLAnchorElement must be primary interface of document.createElement("a") +PASS Stringification of document.createElement("a") +PASS HTMLAnchorElement interface: document.createElement("a") must inherit property "target" with the proper type +PASS HTMLAnchorElement interface: document.createElement("a") must inherit property "download" with the proper type +PASS HTMLAnchorElement interface: document.createElement("a") must inherit property "ping" with the proper type +PASS HTMLAnchorElement interface: document.createElement("a") must inherit property "rel" with the proper type +PASS HTMLAnchorElement interface: document.createElement("a") must inherit property "relList" with the proper type +PASS HTMLAnchorElement interface: document.createElement("a") must inherit property "hreflang" with the proper type +PASS HTMLAnchorElement interface: document.createElement("a") must inherit property "type" with the proper type +PASS HTMLAnchorElement interface: document.createElement("a") must inherit property "text" with the proper type +PASS HTMLAnchorElement interface: document.createElement("a") must inherit property "referrerPolicy" with the proper type +PASS HTMLAnchorElement interface: document.createElement("a") must inherit property "coords" with the proper type +PASS HTMLAnchorElement interface: document.createElement("a") must inherit property "charset" with the proper type +PASS HTMLAnchorElement interface: document.createElement("a") must inherit property "name" with the proper type +PASS HTMLAnchorElement interface: document.createElement("a") must inherit property "rev" with the proper type +PASS HTMLAnchorElement interface: document.createElement("a") must inherit property "shape" with the proper type +PASS HTMLAnchorElement interface: document.createElement("a") must inherit property "href" with the proper type +PASS HTMLAnchorElement interface: document.createElement("a") must inherit property "origin" with the proper type +PASS HTMLAnchorElement interface: document.createElement("a") must inherit property "protocol" with the proper type +PASS HTMLAnchorElement interface: document.createElement("a") must inherit property "username" with the proper type +PASS HTMLAnchorElement interface: document.createElement("a") must inherit property "password" with the proper type +PASS HTMLAnchorElement interface: document.createElement("a") must inherit property "host" with the proper type +PASS HTMLAnchorElement interface: document.createElement("a") must inherit property "hostname" with the proper type +PASS HTMLAnchorElement interface: document.createElement("a") must inherit property "port" with the proper type +PASS HTMLAnchorElement interface: document.createElement("a") must inherit property "pathname" with the proper type +PASS HTMLAnchorElement interface: document.createElement("a") must inherit property "search" with the proper type +PASS HTMLAnchorElement interface: document.createElement("a") must inherit property "hash" with the proper type +PASS HTMLDataElement interface: existence and properties of interface object +PASS HTMLDataElement interface object length +PASS HTMLDataElement interface object name +PASS HTMLDataElement interface: existence and properties of interface prototype object +PASS HTMLDataElement interface: existence and properties of interface prototype object's "constructor" property +PASS HTMLDataElement interface: existence and properties of interface prototype object's @@unscopables property +PASS HTMLDataElement interface: attribute value +PASS HTMLDataElement must be primary interface of document.createElement("data") +PASS Stringification of document.createElement("data") +PASS HTMLDataElement interface: document.createElement("data") must inherit property "value" with the proper type +PASS HTMLTimeElement interface: existence and properties of interface object +PASS HTMLTimeElement interface object length +PASS HTMLTimeElement interface object name +PASS HTMLTimeElement interface: existence and properties of interface prototype object +PASS HTMLTimeElement interface: existence and properties of interface prototype object's "constructor" property +PASS HTMLTimeElement interface: existence and properties of interface prototype object's @@unscopables property +PASS HTMLTimeElement interface: attribute dateTime +PASS HTMLTimeElement must be primary interface of document.createElement("time") +PASS Stringification of document.createElement("time") +PASS HTMLTimeElement interface: document.createElement("time") must inherit property "dateTime" with the proper type +PASS HTMLSpanElement interface: existence and properties of interface object +PASS HTMLSpanElement interface object length +PASS HTMLSpanElement interface object name +PASS HTMLSpanElement interface: existence and properties of interface prototype object +PASS HTMLSpanElement interface: existence and properties of interface prototype object's "constructor" property +PASS HTMLSpanElement interface: existence and properties of interface prototype object's @@unscopables property +PASS HTMLSpanElement must be primary interface of document.createElement("span") +PASS Stringification of document.createElement("span") +PASS HTMLBRElement interface: existence and properties of interface object +PASS HTMLBRElement interface object length +PASS HTMLBRElement interface object name +PASS HTMLBRElement interface: existence and properties of interface prototype object +PASS HTMLBRElement interface: existence and properties of interface prototype object's "constructor" property +PASS HTMLBRElement interface: existence and properties of interface prototype object's @@unscopables property +PASS HTMLBRElement interface: attribute clear +PASS HTMLBRElement must be primary interface of document.createElement("br") +PASS Stringification of document.createElement("br") +PASS HTMLBRElement interface: document.createElement("br") must inherit property "clear" with the proper type +PASS HTMLModElement interface: existence and properties of interface object +PASS HTMLModElement interface object length +PASS HTMLModElement interface object name +PASS HTMLModElement interface: existence and properties of interface prototype object +PASS HTMLModElement interface: existence and properties of interface prototype object's "constructor" property +PASS HTMLModElement interface: existence and properties of interface prototype object's @@unscopables property +PASS HTMLModElement interface: attribute cite +PASS HTMLModElement interface: attribute dateTime +PASS HTMLModElement must be primary interface of document.createElement("ins") +PASS Stringification of document.createElement("ins") +PASS HTMLModElement interface: document.createElement("ins") must inherit property "cite" with the proper type +PASS HTMLModElement interface: document.createElement("ins") must inherit property "dateTime" with the proper type +PASS HTMLModElement must be primary interface of document.createElement("del") +PASS Stringification of document.createElement("del") +PASS HTMLModElement interface: document.createElement("del") must inherit property "cite" with the proper type +PASS HTMLModElement interface: document.createElement("del") must inherit property "dateTime" with the proper type +PASS HTMLPictureElement interface: existence and properties of interface object +PASS HTMLPictureElement interface object length +PASS HTMLPictureElement interface object name +PASS HTMLPictureElement interface: existence and properties of interface prototype object +PASS HTMLPictureElement interface: existence and properties of interface prototype object's "constructor" property +PASS HTMLPictureElement interface: existence and properties of interface prototype object's @@unscopables property +PASS HTMLPictureElement must be primary interface of document.createElement("picture") +PASS Stringification of document.createElement("picture") +PASS HTMLSourceElement interface: existence and properties of interface object +PASS HTMLSourceElement interface object length +PASS HTMLSourceElement interface object name +PASS HTMLSourceElement interface: existence and properties of interface prototype object +PASS HTMLSourceElement interface: existence and properties of interface prototype object's "constructor" property +PASS HTMLSourceElement interface: existence and properties of interface prototype object's @@unscopables property +PASS HTMLSourceElement interface: attribute src +PASS HTMLSourceElement interface: attribute type +PASS HTMLSourceElement interface: attribute srcset +PASS HTMLSourceElement interface: attribute sizes +PASS HTMLSourceElement interface: attribute media +PASS HTMLSourceElement must be primary interface of document.createElement("source") +PASS Stringification of document.createElement("source") +PASS HTMLSourceElement interface: document.createElement("source") must inherit property "src" with the proper type +PASS HTMLSourceElement interface: document.createElement("source") must inherit property "type" with the proper type +PASS HTMLSourceElement interface: document.createElement("source") must inherit property "srcset" with the proper type +PASS HTMLSourceElement interface: document.createElement("source") must inherit property "sizes" with the proper type +PASS HTMLSourceElement interface: document.createElement("source") must inherit property "media" with the proper type +PASS HTMLImageElement interface: existence and properties of interface object +PASS HTMLImageElement interface object length +PASS HTMLImageElement interface object name +PASS HTMLImageElement interface: named constructor +PASS HTMLImageElement interface: named constructor object +PASS HTMLImageElement interface: named constructor prototype property +PASS HTMLImageElement interface: named constructor name +PASS HTMLImageElement interface: named constructor length +PASS HTMLImageElement interface: named constructor without 'new' +PASS HTMLImageElement interface: existence and properties of interface prototype object +PASS HTMLImageElement interface: existence and properties of interface prototype object's "constructor" property +PASS HTMLImageElement interface: existence and properties of interface prototype object's @@unscopables property +PASS HTMLImageElement interface: attribute alt +PASS HTMLImageElement interface: attribute src +PASS HTMLImageElement interface: attribute srcset +PASS HTMLImageElement interface: attribute sizes +PASS HTMLImageElement interface: attribute crossOrigin +PASS HTMLImageElement interface: attribute useMap +PASS HTMLImageElement interface: attribute isMap +PASS HTMLImageElement interface: attribute width +PASS HTMLImageElement interface: attribute height +PASS HTMLImageElement interface: attribute naturalWidth +PASS HTMLImageElement interface: attribute naturalHeight +PASS HTMLImageElement interface: attribute complete +PASS HTMLImageElement interface: attribute currentSrc +PASS HTMLImageElement interface: attribute referrerPolicy +PASS HTMLImageElement interface: attribute decoding +PASS HTMLImageElement interface: attribute loading +PASS HTMLImageElement interface: operation decode() +PASS HTMLImageElement interface: attribute name +PASS HTMLImageElement interface: attribute lowsrc +PASS HTMLImageElement interface: attribute align +PASS HTMLImageElement interface: attribute hspace +PASS HTMLImageElement interface: attribute vspace +PASS HTMLImageElement interface: attribute longDesc +PASS HTMLImageElement interface: attribute border +PASS HTMLImageElement must be primary interface of document.createElement("img") +PASS Stringification of document.createElement("img") +PASS HTMLImageElement interface: document.createElement("img") must inherit property "alt" with the proper type +PASS HTMLImageElement interface: document.createElement("img") must inherit property "src" with the proper type +PASS HTMLImageElement interface: document.createElement("img") must inherit property "srcset" with the proper type +PASS HTMLImageElement interface: document.createElement("img") must inherit property "sizes" with the proper type +PASS HTMLImageElement interface: document.createElement("img") must inherit property "crossOrigin" with the proper type +PASS HTMLImageElement interface: document.createElement("img") must inherit property "useMap" with the proper type +PASS HTMLImageElement interface: document.createElement("img") must inherit property "isMap" with the proper type +PASS HTMLImageElement interface: document.createElement("img") must inherit property "width" with the proper type +PASS HTMLImageElement interface: document.createElement("img") must inherit property "height" with the proper type +PASS HTMLImageElement interface: document.createElement("img") must inherit property "naturalWidth" with the proper type +PASS HTMLImageElement interface: document.createElement("img") must inherit property "naturalHeight" with the proper type +PASS HTMLImageElement interface: document.createElement("img") must inherit property "complete" with the proper type +PASS HTMLImageElement interface: document.createElement("img") must inherit property "currentSrc" with the proper type +PASS HTMLImageElement interface: document.createElement("img") must inherit property "referrerPolicy" with the proper type +PASS HTMLImageElement interface: document.createElement("img") must inherit property "decoding" with the proper type +PASS HTMLImageElement interface: document.createElement("img") must inherit property "loading" with the proper type +PASS HTMLImageElement interface: document.createElement("img") must inherit property "decode()" with the proper type +PASS HTMLImageElement interface: document.createElement("img") must inherit property "name" with the proper type +PASS HTMLImageElement interface: document.createElement("img") must inherit property "lowsrc" with the proper type +PASS HTMLImageElement interface: document.createElement("img") must inherit property "align" with the proper type +PASS HTMLImageElement interface: document.createElement("img") must inherit property "hspace" with the proper type +PASS HTMLImageElement interface: document.createElement("img") must inherit property "vspace" with the proper type +PASS HTMLImageElement interface: document.createElement("img") must inherit property "longDesc" with the proper type +PASS HTMLImageElement interface: document.createElement("img") must inherit property "border" with the proper type +PASS HTMLImageElement must be primary interface of new Image() +PASS Stringification of new Image() +PASS HTMLImageElement interface: new Image() must inherit property "alt" with the proper type +PASS HTMLImageElement interface: new Image() must inherit property "src" with the proper type +PASS HTMLImageElement interface: new Image() must inherit property "srcset" with the proper type +PASS HTMLImageElement interface: new Image() must inherit property "sizes" with the proper type +PASS HTMLImageElement interface: new Image() must inherit property "crossOrigin" with the proper type +PASS HTMLImageElement interface: new Image() must inherit property "useMap" with the proper type +PASS HTMLImageElement interface: new Image() must inherit property "isMap" with the proper type +PASS HTMLImageElement interface: new Image() must inherit property "width" with the proper type +PASS HTMLImageElement interface: new Image() must inherit property "height" with the proper type +PASS HTMLImageElement interface: new Image() must inherit property "naturalWidth" with the proper type +PASS HTMLImageElement interface: new Image() must inherit property "naturalHeight" with the proper type +PASS HTMLImageElement interface: new Image() must inherit property "complete" with the proper type +PASS HTMLImageElement interface: new Image() must inherit property "currentSrc" with the proper type +PASS HTMLImageElement interface: new Image() must inherit property "referrerPolicy" with the proper type +PASS HTMLImageElement interface: new Image() must inherit property "decoding" with the proper type +PASS HTMLImageElement interface: new Image() must inherit property "loading" with the proper type +PASS HTMLImageElement interface: new Image() must inherit property "decode()" with the proper type +PASS HTMLImageElement interface: new Image() must inherit property "name" with the proper type +PASS HTMLImageElement interface: new Image() must inherit property "lowsrc" with the proper type +PASS HTMLImageElement interface: new Image() must inherit property "align" with the proper type +PASS HTMLImageElement interface: new Image() must inherit property "hspace" with the proper type +PASS HTMLImageElement interface: new Image() must inherit property "vspace" with the proper type +PASS HTMLImageElement interface: new Image() must inherit property "longDesc" with the proper type +PASS HTMLImageElement interface: new Image() must inherit property "border" with the proper type +PASS HTMLIFrameElement interface: existence and properties of interface object +PASS HTMLIFrameElement interface object length +PASS HTMLIFrameElement interface object name +PASS HTMLIFrameElement interface: existence and properties of interface prototype object +PASS HTMLIFrameElement interface: existence and properties of interface prototype object's "constructor" property +PASS HTMLIFrameElement interface: existence and properties of interface prototype object's @@unscopables property +PASS HTMLIFrameElement interface: attribute src +PASS HTMLIFrameElement interface: attribute srcdoc +PASS HTMLIFrameElement interface: attribute name +PASS HTMLIFrameElement interface: attribute sandbox +PASS HTMLIFrameElement interface: attribute allow +PASS HTMLIFrameElement interface: attribute allowFullscreen +PASS HTMLIFrameElement interface: attribute width +PASS HTMLIFrameElement interface: attribute height +PASS HTMLIFrameElement interface: attribute referrerPolicy +PASS HTMLIFrameElement interface: attribute loading +PASS HTMLIFrameElement interface: attribute contentDocument +PASS HTMLIFrameElement interface: attribute contentWindow +PASS HTMLIFrameElement interface: operation getSVGDocument() +PASS HTMLIFrameElement interface: attribute align +PASS HTMLIFrameElement interface: attribute scrolling +PASS HTMLIFrameElement interface: attribute frameBorder +PASS HTMLIFrameElement interface: attribute longDesc +PASS HTMLIFrameElement interface: attribute marginHeight +PASS HTMLIFrameElement interface: attribute marginWidth +PASS HTMLEmbedElement interface: existence and properties of interface object +PASS HTMLEmbedElement interface object length +PASS HTMLEmbedElement interface object name +PASS HTMLEmbedElement interface: existence and properties of interface prototype object +PASS HTMLEmbedElement interface: existence and properties of interface prototype object's "constructor" property +PASS HTMLEmbedElement interface: existence and properties of interface prototype object's @@unscopables property +PASS HTMLEmbedElement interface: attribute src +PASS HTMLEmbedElement interface: attribute type +PASS HTMLEmbedElement interface: attribute width +PASS HTMLEmbedElement interface: attribute height +PASS HTMLEmbedElement interface: operation getSVGDocument() +PASS HTMLEmbedElement interface: attribute align +PASS HTMLEmbedElement interface: attribute name +PASS HTMLEmbedElement must be primary interface of document.createElement("embed") +PASS Stringification of document.createElement("embed") +PASS HTMLEmbedElement interface: document.createElement("embed") must inherit property "src" with the proper type +PASS HTMLEmbedElement interface: document.createElement("embed") must inherit property "type" with the proper type +PASS HTMLEmbedElement interface: document.createElement("embed") must inherit property "width" with the proper type +PASS HTMLEmbedElement interface: document.createElement("embed") must inherit property "height" with the proper type +PASS HTMLEmbedElement interface: document.createElement("embed") must inherit property "getSVGDocument()" with the proper type +PASS HTMLEmbedElement interface: document.createElement("embed") must inherit property "align" with the proper type +PASS HTMLEmbedElement interface: document.createElement("embed") must inherit property "name" with the proper type +PASS HTMLObjectElement interface: existence and properties of interface object +PASS HTMLObjectElement interface object length +PASS HTMLObjectElement interface object name +PASS HTMLObjectElement interface: existence and properties of interface prototype object +PASS HTMLObjectElement interface: existence and properties of interface prototype object's "constructor" property +PASS HTMLObjectElement interface: existence and properties of interface prototype object's @@unscopables property +PASS HTMLObjectElement interface: attribute data +PASS HTMLObjectElement interface: attribute type +PASS HTMLObjectElement interface: attribute name +PASS HTMLObjectElement interface: attribute useMap +PASS HTMLObjectElement interface: attribute form +PASS HTMLObjectElement interface: attribute width +PASS HTMLObjectElement interface: attribute height +PASS HTMLObjectElement interface: attribute contentDocument +PASS HTMLObjectElement interface: attribute contentWindow +PASS HTMLObjectElement interface: operation getSVGDocument() +PASS HTMLObjectElement interface: attribute willValidate +PASS HTMLObjectElement interface: attribute validity +PASS HTMLObjectElement interface: attribute validationMessage +PASS HTMLObjectElement interface: operation checkValidity() +PASS HTMLObjectElement interface: operation reportValidity() +PASS HTMLObjectElement interface: operation setCustomValidity(DOMString) +PASS HTMLObjectElement interface: attribute align +PASS HTMLObjectElement interface: attribute archive +PASS HTMLObjectElement interface: attribute code +PASS HTMLObjectElement interface: attribute declare +PASS HTMLObjectElement interface: attribute hspace +PASS HTMLObjectElement interface: attribute standby +PASS HTMLObjectElement interface: attribute vspace +PASS HTMLObjectElement interface: attribute codeBase +PASS HTMLObjectElement interface: attribute codeType +PASS HTMLObjectElement interface: attribute border +PASS HTMLObjectElement must be primary interface of document.createElement("object") +PASS Stringification of document.createElement("object") +PASS HTMLObjectElement interface: document.createElement("object") must inherit property "data" with the proper type +PASS HTMLObjectElement interface: document.createElement("object") must inherit property "type" with the proper type +PASS HTMLObjectElement interface: document.createElement("object") must inherit property "name" with the proper type +PASS HTMLObjectElement interface: document.createElement("object") must inherit property "useMap" with the proper type +PASS HTMLObjectElement interface: document.createElement("object") must inherit property "form" with the proper type +PASS HTMLObjectElement interface: document.createElement("object") must inherit property "width" with the proper type +PASS HTMLObjectElement interface: document.createElement("object") must inherit property "height" with the proper type +PASS HTMLObjectElement interface: document.createElement("object") must inherit property "contentDocument" with the proper type +PASS HTMLObjectElement interface: document.createElement("object") must inherit property "contentWindow" with the proper type +PASS HTMLObjectElement interface: document.createElement("object") must inherit property "getSVGDocument()" with the proper type +PASS HTMLObjectElement interface: document.createElement("object") must inherit property "willValidate" with the proper type +PASS HTMLObjectElement interface: document.createElement("object") must inherit property "validity" with the proper type +PASS HTMLObjectElement interface: document.createElement("object") must inherit property "validationMessage" with the proper type +PASS HTMLObjectElement interface: document.createElement("object") must inherit property "checkValidity()" with the proper type +PASS HTMLObjectElement interface: document.createElement("object") must inherit property "reportValidity()" with the proper type +PASS HTMLObjectElement interface: document.createElement("object") must inherit property "setCustomValidity(DOMString)" with the proper type +PASS HTMLObjectElement interface: calling setCustomValidity(DOMString) on document.createElement("object") with too few arguments must throw TypeError +PASS HTMLObjectElement interface: document.createElement("object") must inherit property "align" with the proper type +PASS HTMLObjectElement interface: document.createElement("object") must inherit property "archive" with the proper type +PASS HTMLObjectElement interface: document.createElement("object") must inherit property "code" with the proper type +PASS HTMLObjectElement interface: document.createElement("object") must inherit property "declare" with the proper type +PASS HTMLObjectElement interface: document.createElement("object") must inherit property "hspace" with the proper type +PASS HTMLObjectElement interface: document.createElement("object") must inherit property "standby" with the proper type +PASS HTMLObjectElement interface: document.createElement("object") must inherit property "vspace" with the proper type +PASS HTMLObjectElement interface: document.createElement("object") must inherit property "codeBase" with the proper type +PASS HTMLObjectElement interface: document.createElement("object") must inherit property "codeType" with the proper type +PASS HTMLObjectElement interface: document.createElement("object") must inherit property "border" with the proper type +PASS HTMLParamElement interface: existence and properties of interface object +PASS HTMLParamElement interface object length +PASS HTMLParamElement interface object name +PASS HTMLParamElement interface: existence and properties of interface prototype object +PASS HTMLParamElement interface: existence and properties of interface prototype object's "constructor" property +PASS HTMLParamElement interface: existence and properties of interface prototype object's @@unscopables property +PASS HTMLParamElement interface: attribute name +PASS HTMLParamElement interface: attribute value +PASS HTMLParamElement interface: attribute type +PASS HTMLParamElement interface: attribute valueType +PASS HTMLParamElement must be primary interface of document.createElement("param") +PASS Stringification of document.createElement("param") +PASS HTMLParamElement interface: document.createElement("param") must inherit property "name" with the proper type +PASS HTMLParamElement interface: document.createElement("param") must inherit property "value" with the proper type +PASS HTMLParamElement interface: document.createElement("param") must inherit property "type" with the proper type +PASS HTMLParamElement interface: document.createElement("param") must inherit property "valueType" with the proper type +PASS HTMLVideoElement interface: existence and properties of interface object +PASS HTMLVideoElement interface object length +PASS HTMLVideoElement interface object name +PASS HTMLVideoElement interface: existence and properties of interface prototype object +PASS HTMLVideoElement interface: existence and properties of interface prototype object's "constructor" property +PASS HTMLVideoElement interface: existence and properties of interface prototype object's @@unscopables property +PASS HTMLVideoElement interface: attribute width +PASS HTMLVideoElement interface: attribute height +PASS HTMLVideoElement interface: attribute videoWidth +PASS HTMLVideoElement interface: attribute videoHeight +PASS HTMLVideoElement interface: attribute poster +PASS HTMLVideoElement interface: attribute playsInline +PASS HTMLVideoElement must be primary interface of document.createElement("video") +PASS Stringification of document.createElement("video") +PASS HTMLVideoElement interface: document.createElement("video") must inherit property "width" with the proper type +PASS HTMLVideoElement interface: document.createElement("video") must inherit property "height" with the proper type +PASS HTMLVideoElement interface: document.createElement("video") must inherit property "videoWidth" with the proper type +PASS HTMLVideoElement interface: document.createElement("video") must inherit property "videoHeight" with the proper type +PASS HTMLVideoElement interface: document.createElement("video") must inherit property "poster" with the proper type +PASS HTMLVideoElement interface: document.createElement("video") must inherit property "playsInline" with the proper type +PASS HTMLMediaElement interface: document.createElement("video") must inherit property "error" with the proper type +PASS HTMLMediaElement interface: document.createElement("video") must inherit property "src" with the proper type +PASS HTMLMediaElement interface: document.createElement("video") must inherit property "srcObject" with the proper type +PASS HTMLMediaElement interface: document.createElement("video") must inherit property "currentSrc" with the proper type +PASS HTMLMediaElement interface: document.createElement("video") must inherit property "crossOrigin" with the proper type +PASS HTMLMediaElement interface: document.createElement("video") must inherit property "NETWORK_EMPTY" with the proper type +PASS HTMLMediaElement interface: document.createElement("video") must inherit property "NETWORK_IDLE" with the proper type +PASS HTMLMediaElement interface: document.createElement("video") must inherit property "NETWORK_LOADING" with the proper type +PASS HTMLMediaElement interface: document.createElement("video") must inherit property "NETWORK_NO_SOURCE" with the proper type +PASS HTMLMediaElement interface: document.createElement("video") must inherit property "networkState" with the proper type +PASS HTMLMediaElement interface: document.createElement("video") must inherit property "preload" with the proper type +PASS HTMLMediaElement interface: document.createElement("video") must inherit property "buffered" with the proper type +PASS HTMLMediaElement interface: document.createElement("video") must inherit property "load()" with the proper type +PASS HTMLMediaElement interface: document.createElement("video") must inherit property "canPlayType(DOMString)" with the proper type +PASS HTMLMediaElement interface: calling canPlayType(DOMString) on document.createElement("video") with too few arguments must throw TypeError +PASS HTMLMediaElement interface: document.createElement("video") must inherit property "HAVE_NOTHING" with the proper type +PASS HTMLMediaElement interface: document.createElement("video") must inherit property "HAVE_METADATA" with the proper type +PASS HTMLMediaElement interface: document.createElement("video") must inherit property "HAVE_CURRENT_DATA" with the proper type +PASS HTMLMediaElement interface: document.createElement("video") must inherit property "HAVE_FUTURE_DATA" with the proper type +PASS HTMLMediaElement interface: document.createElement("video") must inherit property "HAVE_ENOUGH_DATA" with the proper type +PASS HTMLMediaElement interface: document.createElement("video") must inherit property "readyState" with the proper type +PASS HTMLMediaElement interface: document.createElement("video") must inherit property "seeking" with the proper type +PASS HTMLMediaElement interface: document.createElement("video") must inherit property "currentTime" with the proper type +FAIL HTMLMediaElement interface: document.createElement("video") must inherit property "fastSeek(double)" with the proper type assert_inherits: property "fastSeek" not found in prototype chain +FAIL HTMLMediaElement interface: calling fastSeek(double) on document.createElement("video") with too few arguments must throw TypeError assert_inherits: property "fastSeek" not found in prototype chain +PASS HTMLMediaElement interface: document.createElement("video") must inherit property "duration" with the proper type +FAIL HTMLMediaElement interface: document.createElement("video") must inherit property "getStartDate()" with the proper type assert_inherits: property "getStartDate" not found in prototype chain +PASS HTMLMediaElement interface: document.createElement("video") must inherit property "paused" with the proper type +PASS HTMLMediaElement interface: document.createElement("video") must inherit property "defaultPlaybackRate" with the proper type +PASS HTMLMediaElement interface: document.createElement("video") must inherit property "playbackRate" with the proper type +PASS HTMLMediaElement interface: document.createElement("video") must inherit property "preservesPitch" with the proper type +PASS HTMLMediaElement interface: document.createElement("video") must inherit property "played" with the proper type +PASS HTMLMediaElement interface: document.createElement("video") must inherit property "seekable" with the proper type +PASS HTMLMediaElement interface: document.createElement("video") must inherit property "ended" with the proper type +PASS HTMLMediaElement interface: document.createElement("video") must inherit property "autoplay" with the proper type +PASS HTMLMediaElement interface: document.createElement("video") must inherit property "loop" with the proper type +PASS HTMLMediaElement interface: document.createElement("video") must inherit property "play()" with the proper type +PASS HTMLMediaElement interface: document.createElement("video") must inherit property "pause()" with the proper type +PASS HTMLMediaElement interface: document.createElement("video") must inherit property "controls" with the proper type +PASS HTMLMediaElement interface: document.createElement("video") must inherit property "volume" with the proper type +PASS HTMLMediaElement interface: document.createElement("video") must inherit property "muted" with the proper type +PASS HTMLMediaElement interface: document.createElement("video") must inherit property "defaultMuted" with the proper type +PASS HTMLMediaElement interface: document.createElement("video") must inherit property "audioTracks" with the proper type +PASS HTMLMediaElement interface: document.createElement("video") must inherit property "videoTracks" with the proper type +PASS HTMLMediaElement interface: document.createElement("video") must inherit property "textTracks" with the proper type +PASS HTMLMediaElement interface: document.createElement("video") must inherit property "addTextTrack(TextTrackKind, optional DOMString, optional DOMString)" with the proper type +PASS HTMLMediaElement interface: calling addTextTrack(TextTrackKind, optional DOMString, optional DOMString) on document.createElement("video") with too few arguments must throw TypeError +PASS HTMLAudioElement interface: existence and properties of interface object +PASS HTMLAudioElement interface object length +PASS HTMLAudioElement interface object name +PASS HTMLAudioElement interface: named constructor +PASS HTMLAudioElement interface: named constructor object +PASS HTMLAudioElement interface: named constructor prototype property +PASS HTMLAudioElement interface: named constructor name +PASS HTMLAudioElement interface: named constructor length +PASS HTMLAudioElement interface: named constructor without 'new' +PASS HTMLAudioElement interface: existence and properties of interface prototype object +PASS HTMLAudioElement interface: existence and properties of interface prototype object's "constructor" property +PASS HTMLAudioElement interface: existence and properties of interface prototype object's @@unscopables property +PASS HTMLAudioElement must be primary interface of document.createElement("audio") +PASS Stringification of document.createElement("audio") +PASS HTMLMediaElement interface: document.createElement("audio") must inherit property "error" with the proper type +PASS HTMLMediaElement interface: document.createElement("audio") must inherit property "src" with the proper type +PASS HTMLMediaElement interface: document.createElement("audio") must inherit property "srcObject" with the proper type +PASS HTMLMediaElement interface: document.createElement("audio") must inherit property "currentSrc" with the proper type +PASS HTMLMediaElement interface: document.createElement("audio") must inherit property "crossOrigin" with the proper type +PASS HTMLMediaElement interface: document.createElement("audio") must inherit property "NETWORK_EMPTY" with the proper type +PASS HTMLMediaElement interface: document.createElement("audio") must inherit property "NETWORK_IDLE" with the proper type +PASS HTMLMediaElement interface: document.createElement("audio") must inherit property "NETWORK_LOADING" with the proper type +PASS HTMLMediaElement interface: document.createElement("audio") must inherit property "NETWORK_NO_SOURCE" with the proper type +PASS HTMLMediaElement interface: document.createElement("audio") must inherit property "networkState" with the proper type +PASS HTMLMediaElement interface: document.createElement("audio") must inherit property "preload" with the proper type +PASS HTMLMediaElement interface: document.createElement("audio") must inherit property "buffered" with the proper type +PASS HTMLMediaElement interface: document.createElement("audio") must inherit property "load()" with the proper type +PASS HTMLMediaElement interface: document.createElement("audio") must inherit property "canPlayType(DOMString)" with the proper type +PASS HTMLMediaElement interface: calling canPlayType(DOMString) on document.createElement("audio") with too few arguments must throw TypeError +PASS HTMLMediaElement interface: document.createElement("audio") must inherit property "HAVE_NOTHING" with the proper type +PASS HTMLMediaElement interface: document.createElement("audio") must inherit property "HAVE_METADATA" with the proper type +PASS HTMLMediaElement interface: document.createElement("audio") must inherit property "HAVE_CURRENT_DATA" with the proper type +PASS HTMLMediaElement interface: document.createElement("audio") must inherit property "HAVE_FUTURE_DATA" with the proper type +PASS HTMLMediaElement interface: document.createElement("audio") must inherit property "HAVE_ENOUGH_DATA" with the proper type +PASS HTMLMediaElement interface: document.createElement("audio") must inherit property "readyState" with the proper type +PASS HTMLMediaElement interface: document.createElement("audio") must inherit property "seeking" with the proper type +PASS HTMLMediaElement interface: document.createElement("audio") must inherit property "currentTime" with the proper type +FAIL HTMLMediaElement interface: document.createElement("audio") must inherit property "fastSeek(double)" with the proper type assert_inherits: property "fastSeek" not found in prototype chain +FAIL HTMLMediaElement interface: calling fastSeek(double) on document.createElement("audio") with too few arguments must throw TypeError assert_inherits: property "fastSeek" not found in prototype chain +PASS HTMLMediaElement interface: document.createElement("audio") must inherit property "duration" with the proper type +FAIL HTMLMediaElement interface: document.createElement("audio") must inherit property "getStartDate()" with the proper type assert_inherits: property "getStartDate" not found in prototype chain +PASS HTMLMediaElement interface: document.createElement("audio") must inherit property "paused" with the proper type +PASS HTMLMediaElement interface: document.createElement("audio") must inherit property "defaultPlaybackRate" with the proper type +PASS HTMLMediaElement interface: document.createElement("audio") must inherit property "playbackRate" with the proper type +PASS HTMLMediaElement interface: document.createElement("audio") must inherit property "preservesPitch" with the proper type +PASS HTMLMediaElement interface: document.createElement("audio") must inherit property "played" with the proper type +PASS HTMLMediaElement interface: document.createElement("audio") must inherit property "seekable" with the proper type +PASS HTMLMediaElement interface: document.createElement("audio") must inherit property "ended" with the proper type +PASS HTMLMediaElement interface: document.createElement("audio") must inherit property "autoplay" with the proper type +PASS HTMLMediaElement interface: document.createElement("audio") must inherit property "loop" with the proper type +PASS HTMLMediaElement interface: document.createElement("audio") must inherit property "play()" with the proper type +PASS HTMLMediaElement interface: document.createElement("audio") must inherit property "pause()" with the proper type +PASS HTMLMediaElement interface: document.createElement("audio") must inherit property "controls" with the proper type +PASS HTMLMediaElement interface: document.createElement("audio") must inherit property "volume" with the proper type +PASS HTMLMediaElement interface: document.createElement("audio") must inherit property "muted" with the proper type +PASS HTMLMediaElement interface: document.createElement("audio") must inherit property "defaultMuted" with the proper type +PASS HTMLMediaElement interface: document.createElement("audio") must inherit property "audioTracks" with the proper type +PASS HTMLMediaElement interface: document.createElement("audio") must inherit property "videoTracks" with the proper type +PASS HTMLMediaElement interface: document.createElement("audio") must inherit property "textTracks" with the proper type +PASS HTMLMediaElement interface: document.createElement("audio") must inherit property "addTextTrack(TextTrackKind, optional DOMString, optional DOMString)" with the proper type +PASS HTMLMediaElement interface: calling addTextTrack(TextTrackKind, optional DOMString, optional DOMString) on document.createElement("audio") with too few arguments must throw TypeError +PASS HTMLAudioElement must be primary interface of new Audio() +PASS Stringification of new Audio() +PASS HTMLMediaElement interface: new Audio() must inherit property "error" with the proper type +PASS HTMLMediaElement interface: new Audio() must inherit property "src" with the proper type +PASS HTMLMediaElement interface: new Audio() must inherit property "srcObject" with the proper type +PASS HTMLMediaElement interface: new Audio() must inherit property "currentSrc" with the proper type +PASS HTMLMediaElement interface: new Audio() must inherit property "crossOrigin" with the proper type +PASS HTMLMediaElement interface: new Audio() must inherit property "NETWORK_EMPTY" with the proper type +PASS HTMLMediaElement interface: new Audio() must inherit property "NETWORK_IDLE" with the proper type +PASS HTMLMediaElement interface: new Audio() must inherit property "NETWORK_LOADING" with the proper type +PASS HTMLMediaElement interface: new Audio() must inherit property "NETWORK_NO_SOURCE" with the proper type +PASS HTMLMediaElement interface: new Audio() must inherit property "networkState" with the proper type +PASS HTMLMediaElement interface: new Audio() must inherit property "preload" with the proper type +PASS HTMLMediaElement interface: new Audio() must inherit property "buffered" with the proper type +PASS HTMLMediaElement interface: new Audio() must inherit property "load()" with the proper type +PASS HTMLMediaElement interface: new Audio() must inherit property "canPlayType(DOMString)" with the proper type +PASS HTMLMediaElement interface: calling canPlayType(DOMString) on new Audio() with too few arguments must throw TypeError +PASS HTMLMediaElement interface: new Audio() must inherit property "HAVE_NOTHING" with the proper type +PASS HTMLMediaElement interface: new Audio() must inherit property "HAVE_METADATA" with the proper type +PASS HTMLMediaElement interface: new Audio() must inherit property "HAVE_CURRENT_DATA" with the proper type +PASS HTMLMediaElement interface: new Audio() must inherit property "HAVE_FUTURE_DATA" with the proper type +PASS HTMLMediaElement interface: new Audio() must inherit property "HAVE_ENOUGH_DATA" with the proper type +PASS HTMLMediaElement interface: new Audio() must inherit property "readyState" with the proper type +PASS HTMLMediaElement interface: new Audio() must inherit property "seeking" with the proper type +PASS HTMLMediaElement interface: new Audio() must inherit property "currentTime" with the proper type +FAIL HTMLMediaElement interface: new Audio() must inherit property "fastSeek(double)" with the proper type assert_inherits: property "fastSeek" not found in prototype chain +FAIL HTMLMediaElement interface: calling fastSeek(double) on new Audio() with too few arguments must throw TypeError assert_inherits: property "fastSeek" not found in prototype chain +PASS HTMLMediaElement interface: new Audio() must inherit property "duration" with the proper type +FAIL HTMLMediaElement interface: new Audio() must inherit property "getStartDate()" with the proper type assert_inherits: property "getStartDate" not found in prototype chain +PASS HTMLMediaElement interface: new Audio() must inherit property "paused" with the proper type +PASS HTMLMediaElement interface: new Audio() must inherit property "defaultPlaybackRate" with the proper type +PASS HTMLMediaElement interface: new Audio() must inherit property "playbackRate" with the proper type +PASS HTMLMediaElement interface: new Audio() must inherit property "preservesPitch" with the proper type +PASS HTMLMediaElement interface: new Audio() must inherit property "played" with the proper type +PASS HTMLMediaElement interface: new Audio() must inherit property "seekable" with the proper type +PASS HTMLMediaElement interface: new Audio() must inherit property "ended" with the proper type +PASS HTMLMediaElement interface: new Audio() must inherit property "autoplay" with the proper type +PASS HTMLMediaElement interface: new Audio() must inherit property "loop" with the proper type +PASS HTMLMediaElement interface: new Audio() must inherit property "play()" with the proper type +PASS HTMLMediaElement interface: new Audio() must inherit property "pause()" with the proper type +PASS HTMLMediaElement interface: new Audio() must inherit property "controls" with the proper type +PASS HTMLMediaElement interface: new Audio() must inherit property "volume" with the proper type +PASS HTMLMediaElement interface: new Audio() must inherit property "muted" with the proper type +PASS HTMLMediaElement interface: new Audio() must inherit property "defaultMuted" with the proper type +PASS HTMLMediaElement interface: new Audio() must inherit property "audioTracks" with the proper type +PASS HTMLMediaElement interface: new Audio() must inherit property "videoTracks" with the proper type +PASS HTMLMediaElement interface: new Audio() must inherit property "textTracks" with the proper type +PASS HTMLMediaElement interface: new Audio() must inherit property "addTextTrack(TextTrackKind, optional DOMString, optional DOMString)" with the proper type +PASS HTMLMediaElement interface: calling addTextTrack(TextTrackKind, optional DOMString, optional DOMString) on new Audio() with too few arguments must throw TypeError +PASS HTMLTrackElement interface: existence and properties of interface object +PASS HTMLTrackElement interface object length +PASS HTMLTrackElement interface object name +PASS HTMLTrackElement interface: existence and properties of interface prototype object +PASS HTMLTrackElement interface: existence and properties of interface prototype object's "constructor" property +PASS HTMLTrackElement interface: existence and properties of interface prototype object's @@unscopables property +PASS HTMLTrackElement interface: attribute kind +PASS HTMLTrackElement interface: attribute src +PASS HTMLTrackElement interface: attribute srclang +PASS HTMLTrackElement interface: attribute label +PASS HTMLTrackElement interface: attribute default +PASS HTMLTrackElement interface: constant NONE on interface object +PASS HTMLTrackElement interface: constant NONE on interface prototype object +PASS HTMLTrackElement interface: constant LOADING on interface object +PASS HTMLTrackElement interface: constant LOADING on interface prototype object +PASS HTMLTrackElement interface: constant LOADED on interface object +PASS HTMLTrackElement interface: constant LOADED on interface prototype object +PASS HTMLTrackElement interface: constant ERROR on interface object +PASS HTMLTrackElement interface: constant ERROR on interface prototype object +PASS HTMLTrackElement interface: attribute readyState +PASS HTMLTrackElement interface: attribute track +PASS HTMLTrackElement must be primary interface of document.createElement("track") +PASS Stringification of document.createElement("track") +PASS HTMLTrackElement interface: document.createElement("track") must inherit property "kind" with the proper type +PASS HTMLTrackElement interface: document.createElement("track") must inherit property "src" with the proper type +PASS HTMLTrackElement interface: document.createElement("track") must inherit property "srclang" with the proper type +PASS HTMLTrackElement interface: document.createElement("track") must inherit property "label" with the proper type +PASS HTMLTrackElement interface: document.createElement("track") must inherit property "default" with the proper type +PASS HTMLTrackElement interface: document.createElement("track") must inherit property "NONE" with the proper type +PASS HTMLTrackElement interface: document.createElement("track") must inherit property "LOADING" with the proper type +PASS HTMLTrackElement interface: document.createElement("track") must inherit property "LOADED" with the proper type +PASS HTMLTrackElement interface: document.createElement("track") must inherit property "ERROR" with the proper type +PASS HTMLTrackElement interface: document.createElement("track") must inherit property "readyState" with the proper type +PASS HTMLTrackElement interface: document.createElement("track") must inherit property "track" with the proper type +PASS HTMLMediaElement interface: existence and properties of interface object +PASS HTMLMediaElement interface object length +PASS HTMLMediaElement interface object name +PASS HTMLMediaElement interface: existence and properties of interface prototype object +PASS HTMLMediaElement interface: existence and properties of interface prototype object's "constructor" property +PASS HTMLMediaElement interface: existence and properties of interface prototype object's @@unscopables property +PASS HTMLMediaElement interface: attribute error +PASS HTMLMediaElement interface: attribute src +PASS HTMLMediaElement interface: attribute srcObject +PASS HTMLMediaElement interface: attribute currentSrc +PASS HTMLMediaElement interface: attribute crossOrigin +PASS HTMLMediaElement interface: constant NETWORK_EMPTY on interface object +PASS HTMLMediaElement interface: constant NETWORK_EMPTY on interface prototype object +PASS HTMLMediaElement interface: constant NETWORK_IDLE on interface object +PASS HTMLMediaElement interface: constant NETWORK_IDLE on interface prototype object +PASS HTMLMediaElement interface: constant NETWORK_LOADING on interface object +PASS HTMLMediaElement interface: constant NETWORK_LOADING on interface prototype object +PASS HTMLMediaElement interface: constant NETWORK_NO_SOURCE on interface object +PASS HTMLMediaElement interface: constant NETWORK_NO_SOURCE on interface prototype object +PASS HTMLMediaElement interface: attribute networkState +PASS HTMLMediaElement interface: attribute preload +PASS HTMLMediaElement interface: attribute buffered +PASS HTMLMediaElement interface: operation load() +PASS HTMLMediaElement interface: operation canPlayType(DOMString) +PASS HTMLMediaElement interface: constant HAVE_NOTHING on interface object +PASS HTMLMediaElement interface: constant HAVE_NOTHING on interface prototype object +PASS HTMLMediaElement interface: constant HAVE_METADATA on interface object +PASS HTMLMediaElement interface: constant HAVE_METADATA on interface prototype object +PASS HTMLMediaElement interface: constant HAVE_CURRENT_DATA on interface object +PASS HTMLMediaElement interface: constant HAVE_CURRENT_DATA on interface prototype object +PASS HTMLMediaElement interface: constant HAVE_FUTURE_DATA on interface object +PASS HTMLMediaElement interface: constant HAVE_FUTURE_DATA on interface prototype object +PASS HTMLMediaElement interface: constant HAVE_ENOUGH_DATA on interface object +PASS HTMLMediaElement interface: constant HAVE_ENOUGH_DATA on interface prototype object +PASS HTMLMediaElement interface: attribute readyState +PASS HTMLMediaElement interface: attribute seeking +PASS HTMLMediaElement interface: attribute currentTime +FAIL HTMLMediaElement interface: operation fastSeek(double) assert_own_property: interface prototype object missing non-static operation expected property "fastSeek" missing +PASS HTMLMediaElement interface: attribute duration +FAIL HTMLMediaElement interface: operation getStartDate() assert_own_property: interface prototype object missing non-static operation expected property "getStartDate" missing +PASS HTMLMediaElement interface: attribute paused +PASS HTMLMediaElement interface: attribute defaultPlaybackRate +PASS HTMLMediaElement interface: attribute playbackRate +PASS HTMLMediaElement interface: attribute preservesPitch +PASS HTMLMediaElement interface: attribute played +PASS HTMLMediaElement interface: attribute seekable +PASS HTMLMediaElement interface: attribute ended +PASS HTMLMediaElement interface: attribute autoplay +PASS HTMLMediaElement interface: attribute loop +PASS HTMLMediaElement interface: operation play() +PASS HTMLMediaElement interface: operation pause() +PASS HTMLMediaElement interface: attribute controls +PASS HTMLMediaElement interface: attribute volume +PASS HTMLMediaElement interface: attribute muted +PASS HTMLMediaElement interface: attribute defaultMuted +PASS HTMLMediaElement interface: attribute audioTracks +PASS HTMLMediaElement interface: attribute videoTracks +PASS HTMLMediaElement interface: attribute textTracks +PASS HTMLMediaElement interface: operation addTextTrack(TextTrackKind, optional DOMString, optional DOMString) +PASS HTMLMapElement interface: existence and properties of interface object +PASS HTMLMapElement interface object length +PASS HTMLMapElement interface object name +PASS HTMLMapElement interface: existence and properties of interface prototype object +PASS HTMLMapElement interface: existence and properties of interface prototype object's "constructor" property +PASS HTMLMapElement interface: existence and properties of interface prototype object's @@unscopables property +PASS HTMLMapElement interface: attribute name +PASS HTMLMapElement interface: attribute areas +PASS HTMLMapElement must be primary interface of document.createElement("map") +PASS Stringification of document.createElement("map") +PASS HTMLMapElement interface: document.createElement("map") must inherit property "name" with the proper type +PASS HTMLMapElement interface: document.createElement("map") must inherit property "areas" with the proper type +PASS HTMLAreaElement interface: existence and properties of interface object +PASS HTMLAreaElement interface object length +PASS HTMLAreaElement interface object name +PASS HTMLAreaElement interface: existence and properties of interface prototype object +PASS HTMLAreaElement interface: existence and properties of interface prototype object's "constructor" property +PASS HTMLAreaElement interface: existence and properties of interface prototype object's @@unscopables property +PASS HTMLAreaElement interface: attribute alt +PASS HTMLAreaElement interface: attribute coords +PASS HTMLAreaElement interface: attribute shape +PASS HTMLAreaElement interface: attribute target +PASS HTMLAreaElement interface: attribute download +PASS HTMLAreaElement interface: attribute ping +PASS HTMLAreaElement interface: attribute rel +PASS HTMLAreaElement interface: attribute relList +PASS HTMLAreaElement interface: attribute referrerPolicy +PASS HTMLAreaElement interface: attribute noHref +PASS HTMLAreaElement interface: attribute href +PASS HTMLAreaElement interface: stringifier +PASS HTMLAreaElement interface: attribute origin +PASS HTMLAreaElement interface: attribute protocol +PASS HTMLAreaElement interface: attribute username +PASS HTMLAreaElement interface: attribute password +PASS HTMLAreaElement interface: attribute host +PASS HTMLAreaElement interface: attribute hostname +PASS HTMLAreaElement interface: attribute port +PASS HTMLAreaElement interface: attribute pathname +PASS HTMLAreaElement interface: attribute search +PASS HTMLAreaElement interface: attribute hash +PASS HTMLAreaElement must be primary interface of document.createElement("area") +PASS Stringification of document.createElement("area") +PASS HTMLAreaElement interface: document.createElement("area") must inherit property "alt" with the proper type +PASS HTMLAreaElement interface: document.createElement("area") must inherit property "coords" with the proper type +PASS HTMLAreaElement interface: document.createElement("area") must inherit property "shape" with the proper type +PASS HTMLAreaElement interface: document.createElement("area") must inherit property "target" with the proper type +PASS HTMLAreaElement interface: document.createElement("area") must inherit property "download" with the proper type +PASS HTMLAreaElement interface: document.createElement("area") must inherit property "ping" with the proper type +PASS HTMLAreaElement interface: document.createElement("area") must inherit property "rel" with the proper type +PASS HTMLAreaElement interface: document.createElement("area") must inherit property "relList" with the proper type +PASS HTMLAreaElement interface: document.createElement("area") must inherit property "referrerPolicy" with the proper type +PASS HTMLAreaElement interface: document.createElement("area") must inherit property "noHref" with the proper type +PASS HTMLAreaElement interface: document.createElement("area") must inherit property "href" with the proper type +PASS HTMLAreaElement interface: document.createElement("area") must inherit property "origin" with the proper type +PASS HTMLAreaElement interface: document.createElement("area") must inherit property "protocol" with the proper type +PASS HTMLAreaElement interface: document.createElement("area") must inherit property "username" with the proper type +PASS HTMLAreaElement interface: document.createElement("area") must inherit property "password" with the proper type +PASS HTMLAreaElement interface: document.createElement("area") must inherit property "host" with the proper type +PASS HTMLAreaElement interface: document.createElement("area") must inherit property "hostname" with the proper type +PASS HTMLAreaElement interface: document.createElement("area") must inherit property "port" with the proper type +PASS HTMLAreaElement interface: document.createElement("area") must inherit property "pathname" with the proper type +PASS HTMLAreaElement interface: document.createElement("area") must inherit property "search" with the proper type +PASS HTMLAreaElement interface: document.createElement("area") must inherit property "hash" with the proper type +PASS HTMLTableElement interface: existence and properties of interface object +PASS HTMLTableElement interface object length +PASS HTMLTableElement interface object name +PASS HTMLTableElement interface: existence and properties of interface prototype object +PASS HTMLTableElement interface: existence and properties of interface prototype object's "constructor" property +PASS HTMLTableElement interface: existence and properties of interface prototype object's @@unscopables property +PASS HTMLTableElement interface: attribute caption +PASS HTMLTableElement interface: operation createCaption() +PASS HTMLTableElement interface: operation deleteCaption() +PASS HTMLTableElement interface: attribute tHead +PASS HTMLTableElement interface: operation createTHead() +PASS HTMLTableElement interface: operation deleteTHead() +PASS HTMLTableElement interface: attribute tFoot +PASS HTMLTableElement interface: operation createTFoot() +PASS HTMLTableElement interface: operation deleteTFoot() +PASS HTMLTableElement interface: attribute tBodies +PASS HTMLTableElement interface: operation createTBody() +PASS HTMLTableElement interface: attribute rows +PASS HTMLTableElement interface: operation insertRow(optional long) +PASS HTMLTableElement interface: operation deleteRow(long) +PASS HTMLTableElement interface: attribute align +PASS HTMLTableElement interface: attribute border +PASS HTMLTableElement interface: attribute frame +PASS HTMLTableElement interface: attribute rules +PASS HTMLTableElement interface: attribute summary +PASS HTMLTableElement interface: attribute width +PASS HTMLTableElement interface: attribute bgColor +PASS HTMLTableElement interface: attribute cellPadding +PASS HTMLTableElement interface: attribute cellSpacing +PASS HTMLTableElement must be primary interface of document.createElement("table") +PASS Stringification of document.createElement("table") +PASS HTMLTableElement interface: document.createElement("table") must inherit property "caption" with the proper type +PASS HTMLTableElement interface: document.createElement("table") must inherit property "createCaption()" with the proper type +PASS HTMLTableElement interface: document.createElement("table") must inherit property "deleteCaption()" with the proper type +PASS HTMLTableElement interface: document.createElement("table") must inherit property "tHead" with the proper type +PASS HTMLTableElement interface: document.createElement("table") must inherit property "createTHead()" with the proper type +PASS HTMLTableElement interface: document.createElement("table") must inherit property "deleteTHead()" with the proper type +PASS HTMLTableElement interface: document.createElement("table") must inherit property "tFoot" with the proper type +PASS HTMLTableElement interface: document.createElement("table") must inherit property "createTFoot()" with the proper type +PASS HTMLTableElement interface: document.createElement("table") must inherit property "deleteTFoot()" with the proper type +PASS HTMLTableElement interface: document.createElement("table") must inherit property "tBodies" with the proper type +PASS HTMLTableElement interface: document.createElement("table") must inherit property "createTBody()" with the proper type +PASS HTMLTableElement interface: document.createElement("table") must inherit property "rows" with the proper type +PASS HTMLTableElement interface: document.createElement("table") must inherit property "insertRow(optional long)" with the proper type +PASS HTMLTableElement interface: calling insertRow(optional long) on document.createElement("table") with too few arguments must throw TypeError +PASS HTMLTableElement interface: document.createElement("table") must inherit property "deleteRow(long)" with the proper type +PASS HTMLTableElement interface: calling deleteRow(long) on document.createElement("table") with too few arguments must throw TypeError +PASS HTMLTableElement interface: document.createElement("table") must inherit property "align" with the proper type +PASS HTMLTableElement interface: document.createElement("table") must inherit property "border" with the proper type +PASS HTMLTableElement interface: document.createElement("table") must inherit property "frame" with the proper type +PASS HTMLTableElement interface: document.createElement("table") must inherit property "rules" with the proper type +PASS HTMLTableElement interface: document.createElement("table") must inherit property "summary" with the proper type +PASS HTMLTableElement interface: document.createElement("table") must inherit property "width" with the proper type +PASS HTMLTableElement interface: document.createElement("table") must inherit property "bgColor" with the proper type +PASS HTMLTableElement interface: document.createElement("table") must inherit property "cellPadding" with the proper type +PASS HTMLTableElement interface: document.createElement("table") must inherit property "cellSpacing" with the proper type +PASS HTMLTableCaptionElement interface: existence and properties of interface object +PASS HTMLTableCaptionElement interface object length +PASS HTMLTableCaptionElement interface object name +PASS HTMLTableCaptionElement interface: existence and properties of interface prototype object +PASS HTMLTableCaptionElement interface: existence and properties of interface prototype object's "constructor" property +PASS HTMLTableCaptionElement interface: existence and properties of interface prototype object's @@unscopables property +PASS HTMLTableCaptionElement interface: attribute align +PASS HTMLTableCaptionElement must be primary interface of document.createElement("caption") +PASS Stringification of document.createElement("caption") +PASS HTMLTableCaptionElement interface: document.createElement("caption") must inherit property "align" with the proper type +PASS HTMLTableColElement interface: existence and properties of interface object +PASS HTMLTableColElement interface object length +PASS HTMLTableColElement interface object name +PASS HTMLTableColElement interface: existence and properties of interface prototype object +PASS HTMLTableColElement interface: existence and properties of interface prototype object's "constructor" property +PASS HTMLTableColElement interface: existence and properties of interface prototype object's @@unscopables property +PASS HTMLTableColElement interface: attribute span +PASS HTMLTableColElement interface: attribute align +PASS HTMLTableColElement interface: attribute ch +PASS HTMLTableColElement interface: attribute chOff +PASS HTMLTableColElement interface: attribute vAlign +PASS HTMLTableColElement interface: attribute width +PASS HTMLTableColElement must be primary interface of document.createElement("colgroup") +PASS Stringification of document.createElement("colgroup") +PASS HTMLTableColElement interface: document.createElement("colgroup") must inherit property "span" with the proper type +PASS HTMLTableColElement interface: document.createElement("colgroup") must inherit property "align" with the proper type +PASS HTMLTableColElement interface: document.createElement("colgroup") must inherit property "ch" with the proper type +PASS HTMLTableColElement interface: document.createElement("colgroup") must inherit property "chOff" with the proper type +PASS HTMLTableColElement interface: document.createElement("colgroup") must inherit property "vAlign" with the proper type +PASS HTMLTableColElement interface: document.createElement("colgroup") must inherit property "width" with the proper type +PASS HTMLTableColElement must be primary interface of document.createElement("col") +PASS Stringification of document.createElement("col") +PASS HTMLTableColElement interface: document.createElement("col") must inherit property "span" with the proper type +PASS HTMLTableColElement interface: document.createElement("col") must inherit property "align" with the proper type +PASS HTMLTableColElement interface: document.createElement("col") must inherit property "ch" with the proper type +PASS HTMLTableColElement interface: document.createElement("col") must inherit property "chOff" with the proper type +PASS HTMLTableColElement interface: document.createElement("col") must inherit property "vAlign" with the proper type +PASS HTMLTableColElement interface: document.createElement("col") must inherit property "width" with the proper type +PASS HTMLTableSectionElement interface: existence and properties of interface object +PASS HTMLTableSectionElement interface object length +PASS HTMLTableSectionElement interface object name +PASS HTMLTableSectionElement interface: existence and properties of interface prototype object +PASS HTMLTableSectionElement interface: existence and properties of interface prototype object's "constructor" property +PASS HTMLTableSectionElement interface: existence and properties of interface prototype object's @@unscopables property +PASS HTMLTableSectionElement interface: attribute rows +PASS HTMLTableSectionElement interface: operation insertRow(optional long) +PASS HTMLTableSectionElement interface: operation deleteRow(long) +PASS HTMLTableSectionElement interface: attribute align +PASS HTMLTableSectionElement interface: attribute ch +PASS HTMLTableSectionElement interface: attribute chOff +PASS HTMLTableSectionElement interface: attribute vAlign +PASS HTMLTableSectionElement must be primary interface of document.createElement("tbody") +PASS Stringification of document.createElement("tbody") +PASS HTMLTableSectionElement interface: document.createElement("tbody") must inherit property "rows" with the proper type +PASS HTMLTableSectionElement interface: document.createElement("tbody") must inherit property "insertRow(optional long)" with the proper type +PASS HTMLTableSectionElement interface: calling insertRow(optional long) on document.createElement("tbody") with too few arguments must throw TypeError +PASS HTMLTableSectionElement interface: document.createElement("tbody") must inherit property "deleteRow(long)" with the proper type +PASS HTMLTableSectionElement interface: calling deleteRow(long) on document.createElement("tbody") with too few arguments must throw TypeError +PASS HTMLTableSectionElement interface: document.createElement("tbody") must inherit property "align" with the proper type +PASS HTMLTableSectionElement interface: document.createElement("tbody") must inherit property "ch" with the proper type +PASS HTMLTableSectionElement interface: document.createElement("tbody") must inherit property "chOff" with the proper type +PASS HTMLTableSectionElement interface: document.createElement("tbody") must inherit property "vAlign" with the proper type +PASS HTMLTableSectionElement must be primary interface of document.createElement("thead") +PASS Stringification of document.createElement("thead") +PASS HTMLTableSectionElement interface: document.createElement("thead") must inherit property "rows" with the proper type +PASS HTMLTableSectionElement interface: document.createElement("thead") must inherit property "insertRow(optional long)" with the proper type +PASS HTMLTableSectionElement interface: calling insertRow(optional long) on document.createElement("thead") with too few arguments must throw TypeError +PASS HTMLTableSectionElement interface: document.createElement("thead") must inherit property "deleteRow(long)" with the proper type +PASS HTMLTableSectionElement interface: calling deleteRow(long) on document.createElement("thead") with too few arguments must throw TypeError +PASS HTMLTableSectionElement interface: document.createElement("thead") must inherit property "align" with the proper type +PASS HTMLTableSectionElement interface: document.createElement("thead") must inherit property "ch" with the proper type +PASS HTMLTableSectionElement interface: document.createElement("thead") must inherit property "chOff" with the proper type +PASS HTMLTableSectionElement interface: document.createElement("thead") must inherit property "vAlign" with the proper type +PASS HTMLTableSectionElement must be primary interface of document.createElement("tfoot") +PASS Stringification of document.createElement("tfoot") +PASS HTMLTableSectionElement interface: document.createElement("tfoot") must inherit property "rows" with the proper type +PASS HTMLTableSectionElement interface: document.createElement("tfoot") must inherit property "insertRow(optional long)" with the proper type +PASS HTMLTableSectionElement interface: calling insertRow(optional long) on document.createElement("tfoot") with too few arguments must throw TypeError +PASS HTMLTableSectionElement interface: document.createElement("tfoot") must inherit property "deleteRow(long)" with the proper type +PASS HTMLTableSectionElement interface: calling deleteRow(long) on document.createElement("tfoot") with too few arguments must throw TypeError +PASS HTMLTableSectionElement interface: document.createElement("tfoot") must inherit property "align" with the proper type +PASS HTMLTableSectionElement interface: document.createElement("tfoot") must inherit property "ch" with the proper type +PASS HTMLTableSectionElement interface: document.createElement("tfoot") must inherit property "chOff" with the proper type +PASS HTMLTableSectionElement interface: document.createElement("tfoot") must inherit property "vAlign" with the proper type +PASS HTMLTableRowElement interface: existence and properties of interface object +PASS HTMLTableRowElement interface object length +PASS HTMLTableRowElement interface object name +PASS HTMLTableRowElement interface: existence and properties of interface prototype object +PASS HTMLTableRowElement interface: existence and properties of interface prototype object's "constructor" property +PASS HTMLTableRowElement interface: existence and properties of interface prototype object's @@unscopables property +PASS HTMLTableRowElement interface: attribute rowIndex +PASS HTMLTableRowElement interface: attribute sectionRowIndex +PASS HTMLTableRowElement interface: attribute cells +PASS HTMLTableRowElement interface: operation insertCell(optional long) +PASS HTMLTableRowElement interface: operation deleteCell(long) +PASS HTMLTableRowElement interface: attribute align +PASS HTMLTableRowElement interface: attribute ch +PASS HTMLTableRowElement interface: attribute chOff +PASS HTMLTableRowElement interface: attribute vAlign +PASS HTMLTableRowElement interface: attribute bgColor +PASS HTMLTableRowElement must be primary interface of document.createElement("tr") +PASS Stringification of document.createElement("tr") +PASS HTMLTableRowElement interface: document.createElement("tr") must inherit property "rowIndex" with the proper type +PASS HTMLTableRowElement interface: document.createElement("tr") must inherit property "sectionRowIndex" with the proper type +PASS HTMLTableRowElement interface: document.createElement("tr") must inherit property "cells" with the proper type +PASS HTMLTableRowElement interface: document.createElement("tr") must inherit property "insertCell(optional long)" with the proper type +PASS HTMLTableRowElement interface: calling insertCell(optional long) on document.createElement("tr") with too few arguments must throw TypeError +PASS HTMLTableRowElement interface: document.createElement("tr") must inherit property "deleteCell(long)" with the proper type +PASS HTMLTableRowElement interface: calling deleteCell(long) on document.createElement("tr") with too few arguments must throw TypeError +PASS HTMLTableRowElement interface: document.createElement("tr") must inherit property "align" with the proper type +PASS HTMLTableRowElement interface: document.createElement("tr") must inherit property "ch" with the proper type +PASS HTMLTableRowElement interface: document.createElement("tr") must inherit property "chOff" with the proper type +PASS HTMLTableRowElement interface: document.createElement("tr") must inherit property "vAlign" with the proper type +PASS HTMLTableRowElement interface: document.createElement("tr") must inherit property "bgColor" with the proper type +PASS HTMLTableCellElement interface: existence and properties of interface object +PASS HTMLTableCellElement interface object length +PASS HTMLTableCellElement interface object name +PASS HTMLTableCellElement interface: existence and properties of interface prototype object +PASS HTMLTableCellElement interface: existence and properties of interface prototype object's "constructor" property +PASS HTMLTableCellElement interface: existence and properties of interface prototype object's @@unscopables property +PASS HTMLTableCellElement interface: attribute colSpan +PASS HTMLTableCellElement interface: attribute rowSpan +PASS HTMLTableCellElement interface: attribute headers +PASS HTMLTableCellElement interface: attribute cellIndex +PASS HTMLTableCellElement interface: attribute scope +PASS HTMLTableCellElement interface: attribute abbr +PASS HTMLTableCellElement interface: attribute align +PASS HTMLTableCellElement interface: attribute axis +PASS HTMLTableCellElement interface: attribute height +PASS HTMLTableCellElement interface: attribute width +PASS HTMLTableCellElement interface: attribute ch +PASS HTMLTableCellElement interface: attribute chOff +PASS HTMLTableCellElement interface: attribute noWrap +PASS HTMLTableCellElement interface: attribute vAlign +PASS HTMLTableCellElement interface: attribute bgColor +PASS HTMLTableCellElement must be primary interface of document.createElement("td") +PASS Stringification of document.createElement("td") +PASS HTMLTableCellElement interface: document.createElement("td") must inherit property "colSpan" with the proper type +PASS HTMLTableCellElement interface: document.createElement("td") must inherit property "rowSpan" with the proper type +PASS HTMLTableCellElement interface: document.createElement("td") must inherit property "headers" with the proper type +PASS HTMLTableCellElement interface: document.createElement("td") must inherit property "cellIndex" with the proper type +PASS HTMLTableCellElement interface: document.createElement("td") must inherit property "scope" with the proper type +PASS HTMLTableCellElement interface: document.createElement("td") must inherit property "abbr" with the proper type +PASS HTMLTableCellElement interface: document.createElement("td") must inherit property "align" with the proper type +PASS HTMLTableCellElement interface: document.createElement("td") must inherit property "axis" with the proper type +PASS HTMLTableCellElement interface: document.createElement("td") must inherit property "height" with the proper type +PASS HTMLTableCellElement interface: document.createElement("td") must inherit property "width" with the proper type +PASS HTMLTableCellElement interface: document.createElement("td") must inherit property "ch" with the proper type +PASS HTMLTableCellElement interface: document.createElement("td") must inherit property "chOff" with the proper type +PASS HTMLTableCellElement interface: document.createElement("td") must inherit property "noWrap" with the proper type +PASS HTMLTableCellElement interface: document.createElement("td") must inherit property "vAlign" with the proper type +PASS HTMLTableCellElement interface: document.createElement("td") must inherit property "bgColor" with the proper type +PASS HTMLTableCellElement must be primary interface of document.createElement("th") +PASS Stringification of document.createElement("th") +PASS HTMLTableCellElement interface: document.createElement("th") must inherit property "colSpan" with the proper type +PASS HTMLTableCellElement interface: document.createElement("th") must inherit property "rowSpan" with the proper type +PASS HTMLTableCellElement interface: document.createElement("th") must inherit property "headers" with the proper type +PASS HTMLTableCellElement interface: document.createElement("th") must inherit property "cellIndex" with the proper type +PASS HTMLTableCellElement interface: document.createElement("th") must inherit property "scope" with the proper type +PASS HTMLTableCellElement interface: document.createElement("th") must inherit property "abbr" with the proper type +PASS HTMLTableCellElement interface: document.createElement("th") must inherit property "align" with the proper type +PASS HTMLTableCellElement interface: document.createElement("th") must inherit property "axis" with the proper type +PASS HTMLTableCellElement interface: document.createElement("th") must inherit property "height" with the proper type +PASS HTMLTableCellElement interface: document.createElement("th") must inherit property "width" with the proper type +PASS HTMLTableCellElement interface: document.createElement("th") must inherit property "ch" with the proper type +PASS HTMLTableCellElement interface: document.createElement("th") must inherit property "chOff" with the proper type +PASS HTMLTableCellElement interface: document.createElement("th") must inherit property "noWrap" with the proper type +PASS HTMLTableCellElement interface: document.createElement("th") must inherit property "vAlign" with the proper type +PASS HTMLTableCellElement interface: document.createElement("th") must inherit property "bgColor" with the proper type +PASS HTMLFormElement interface: existence and properties of interface object +PASS HTMLFormElement interface object length +PASS HTMLFormElement interface object name +PASS HTMLFormElement interface: existence and properties of interface prototype object +PASS HTMLFormElement interface: existence and properties of interface prototype object's "constructor" property +PASS HTMLFormElement interface: existence and properties of interface prototype object's @@unscopables property +PASS HTMLFormElement interface: attribute acceptCharset +PASS HTMLFormElement interface: attribute action +PASS HTMLFormElement interface: attribute autocomplete +PASS HTMLFormElement interface: attribute enctype +PASS HTMLFormElement interface: attribute encoding +PASS HTMLFormElement interface: attribute method +PASS HTMLFormElement interface: attribute name +PASS HTMLFormElement interface: attribute noValidate +PASS HTMLFormElement interface: attribute target +FAIL HTMLFormElement interface: attribute rel assert_true: The prototype object must have a property "rel" expected true got false +FAIL HTMLFormElement interface: attribute relList assert_true: The prototype object must have a property "relList" expected true got false +PASS HTMLFormElement interface: attribute elements +PASS HTMLFormElement interface: attribute length +PASS HTMLFormElement interface: operation submit() +PASS HTMLFormElement interface: operation requestSubmit(optional HTMLElement?) +PASS HTMLFormElement interface: operation reset() +PASS HTMLFormElement interface: operation checkValidity() +PASS HTMLFormElement interface: operation reportValidity() +PASS HTMLFormElement must be primary interface of document.createElement("form") +PASS Stringification of document.createElement("form") +PASS HTMLFormElement interface: document.createElement("form") must inherit property "acceptCharset" with the proper type +PASS HTMLFormElement interface: document.createElement("form") must inherit property "action" with the proper type +PASS HTMLFormElement interface: document.createElement("form") must inherit property "autocomplete" with the proper type +PASS HTMLFormElement interface: document.createElement("form") must inherit property "enctype" with the proper type +PASS HTMLFormElement interface: document.createElement("form") must inherit property "encoding" with the proper type +PASS HTMLFormElement interface: document.createElement("form") must inherit property "method" with the proper type +PASS HTMLFormElement interface: document.createElement("form") must inherit property "name" with the proper type +PASS HTMLFormElement interface: document.createElement("form") must inherit property "noValidate" with the proper type +PASS HTMLFormElement interface: document.createElement("form") must inherit property "target" with the proper type +FAIL HTMLFormElement interface: document.createElement("form") must inherit property "rel" with the proper type assert_inherits: property "rel" not found in prototype chain +FAIL HTMLFormElement interface: document.createElement("form") must inherit property "relList" with the proper type assert_inherits: property "relList" not found in prototype chain +PASS HTMLFormElement interface: document.createElement("form") must inherit property "elements" with the proper type +PASS HTMLFormElement interface: document.createElement("form") must inherit property "length" with the proper type +PASS HTMLFormElement interface: document.createElement("form") must inherit property "submit()" with the proper type +PASS HTMLFormElement interface: document.createElement("form") must inherit property "requestSubmit(optional HTMLElement?)" with the proper type +PASS HTMLFormElement interface: calling requestSubmit(optional HTMLElement?) on document.createElement("form") with too few arguments must throw TypeError +PASS HTMLFormElement interface: document.createElement("form") must inherit property "reset()" with the proper type +PASS HTMLFormElement interface: document.createElement("form") must inherit property "checkValidity()" with the proper type +PASS HTMLFormElement interface: document.createElement("form") must inherit property "reportValidity()" with the proper type +PASS HTMLLabelElement interface: existence and properties of interface object +PASS HTMLLabelElement interface object length +PASS HTMLLabelElement interface object name +PASS HTMLLabelElement interface: existence and properties of interface prototype object +PASS HTMLLabelElement interface: existence and properties of interface prototype object's "constructor" property +PASS HTMLLabelElement interface: existence and properties of interface prototype object's @@unscopables property +PASS HTMLLabelElement interface: attribute form +PASS HTMLLabelElement interface: attribute htmlFor +PASS HTMLLabelElement interface: attribute control +PASS HTMLLabelElement must be primary interface of document.createElement("label") +PASS Stringification of document.createElement("label") +PASS HTMLLabelElement interface: document.createElement("label") must inherit property "form" with the proper type +PASS HTMLLabelElement interface: document.createElement("label") must inherit property "htmlFor" with the proper type +PASS HTMLLabelElement interface: document.createElement("label") must inherit property "control" with the proper type +PASS HTMLInputElement interface: existence and properties of interface object +PASS HTMLInputElement interface object length +PASS HTMLInputElement interface object name +PASS HTMLInputElement interface: existence and properties of interface prototype object +PASS HTMLInputElement interface: existence and properties of interface prototype object's "constructor" property +PASS HTMLInputElement interface: existence and properties of interface prototype object's @@unscopables property +PASS HTMLInputElement interface: attribute accept +PASS HTMLInputElement interface: attribute alt +PASS HTMLInputElement interface: attribute autocomplete +PASS HTMLInputElement interface: attribute defaultChecked +PASS HTMLInputElement interface: attribute checked +PASS HTMLInputElement interface: attribute dirName +PASS HTMLInputElement interface: attribute disabled +PASS HTMLInputElement interface: attribute form +PASS HTMLInputElement interface: attribute files +PASS HTMLInputElement interface: attribute formAction +PASS HTMLInputElement interface: attribute formEnctype +PASS HTMLInputElement interface: attribute formMethod +PASS HTMLInputElement interface: attribute formNoValidate +PASS HTMLInputElement interface: attribute formTarget +PASS HTMLInputElement interface: attribute height +PASS HTMLInputElement interface: attribute indeterminate +PASS HTMLInputElement interface: attribute list +PASS HTMLInputElement interface: attribute max +PASS HTMLInputElement interface: attribute maxLength +PASS HTMLInputElement interface: attribute min +PASS HTMLInputElement interface: attribute minLength +PASS HTMLInputElement interface: attribute multiple +PASS HTMLInputElement interface: attribute name +PASS HTMLInputElement interface: attribute pattern +PASS HTMLInputElement interface: attribute placeholder +PASS HTMLInputElement interface: attribute readOnly +PASS HTMLInputElement interface: attribute required +PASS HTMLInputElement interface: attribute size +PASS HTMLInputElement interface: attribute src +PASS HTMLInputElement interface: attribute step +PASS HTMLInputElement interface: attribute type +PASS HTMLInputElement interface: attribute defaultValue +PASS HTMLInputElement interface: attribute value +PASS HTMLInputElement interface: attribute valueAsDate +PASS HTMLInputElement interface: attribute valueAsNumber +PASS HTMLInputElement interface: attribute width +PASS HTMLInputElement interface: operation stepUp(optional long) +PASS HTMLInputElement interface: operation stepDown(optional long) +PASS HTMLInputElement interface: attribute willValidate +PASS HTMLInputElement interface: attribute validity +PASS HTMLInputElement interface: attribute validationMessage +PASS HTMLInputElement interface: operation checkValidity() +PASS HTMLInputElement interface: operation reportValidity() +PASS HTMLInputElement interface: operation setCustomValidity(DOMString) +PASS HTMLInputElement interface: attribute labels +PASS HTMLInputElement interface: operation select() +PASS HTMLInputElement interface: attribute selectionStart +PASS HTMLInputElement interface: attribute selectionEnd +PASS HTMLInputElement interface: attribute selectionDirection +PASS HTMLInputElement interface: operation setRangeText(DOMString) +PASS HTMLInputElement interface: operation setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode) +PASS HTMLInputElement interface: operation setSelectionRange(unsigned long, unsigned long, optional DOMString) +PASS HTMLInputElement interface: attribute align +PASS HTMLInputElement interface: attribute useMap +PASS HTMLInputElement must be primary interface of document.createElement("input") +PASS Stringification of document.createElement("input") +PASS HTMLInputElement interface: document.createElement("input") must inherit property "accept" with the proper type +PASS HTMLInputElement interface: document.createElement("input") must inherit property "alt" with the proper type +PASS HTMLInputElement interface: document.createElement("input") must inherit property "autocomplete" with the proper type +PASS HTMLInputElement interface: document.createElement("input") must inherit property "defaultChecked" with the proper type +PASS HTMLInputElement interface: document.createElement("input") must inherit property "checked" with the proper type +PASS HTMLInputElement interface: document.createElement("input") must inherit property "dirName" with the proper type +PASS HTMLInputElement interface: document.createElement("input") must inherit property "disabled" with the proper type +PASS HTMLInputElement interface: document.createElement("input") must inherit property "form" with the proper type +PASS HTMLInputElement interface: document.createElement("input") must inherit property "files" with the proper type +PASS HTMLInputElement interface: document.createElement("input") must inherit property "formAction" with the proper type +PASS HTMLInputElement interface: document.createElement("input") must inherit property "formEnctype" with the proper type +PASS HTMLInputElement interface: document.createElement("input") must inherit property "formMethod" with the proper type +PASS HTMLInputElement interface: document.createElement("input") must inherit property "formNoValidate" with the proper type +PASS HTMLInputElement interface: document.createElement("input") must inherit property "formTarget" with the proper type +PASS HTMLInputElement interface: document.createElement("input") must inherit property "height" with the proper type +PASS HTMLInputElement interface: document.createElement("input") must inherit property "indeterminate" with the proper type +PASS HTMLInputElement interface: document.createElement("input") must inherit property "list" with the proper type +PASS HTMLInputElement interface: document.createElement("input") must inherit property "max" with the proper type +PASS HTMLInputElement interface: document.createElement("input") must inherit property "maxLength" with the proper type +PASS HTMLInputElement interface: document.createElement("input") must inherit property "min" with the proper type +PASS HTMLInputElement interface: document.createElement("input") must inherit property "minLength" with the proper type +PASS HTMLInputElement interface: document.createElement("input") must inherit property "multiple" with the proper type +PASS HTMLInputElement interface: document.createElement("input") must inherit property "name" with the proper type +PASS HTMLInputElement interface: document.createElement("input") must inherit property "pattern" with the proper type +PASS HTMLInputElement interface: document.createElement("input") must inherit property "placeholder" with the proper type +PASS HTMLInputElement interface: document.createElement("input") must inherit property "readOnly" with the proper type +PASS HTMLInputElement interface: document.createElement("input") must inherit property "required" with the proper type +PASS HTMLInputElement interface: document.createElement("input") must inherit property "size" with the proper type +PASS HTMLInputElement interface: document.createElement("input") must inherit property "src" with the proper type +PASS HTMLInputElement interface: document.createElement("input") must inherit property "step" with the proper type +PASS HTMLInputElement interface: document.createElement("input") must inherit property "type" with the proper type +PASS HTMLInputElement interface: document.createElement("input") must inherit property "defaultValue" with the proper type +PASS HTMLInputElement interface: document.createElement("input") must inherit property "value" with the proper type +PASS HTMLInputElement interface: document.createElement("input") must inherit property "valueAsDate" with the proper type +PASS HTMLInputElement interface: document.createElement("input") must inherit property "valueAsNumber" with the proper type +PASS HTMLInputElement interface: document.createElement("input") must inherit property "width" with the proper type +PASS HTMLInputElement interface: document.createElement("input") must inherit property "stepUp(optional long)" with the proper type +PASS HTMLInputElement interface: calling stepUp(optional long) on document.createElement("input") with too few arguments must throw TypeError +PASS HTMLInputElement interface: document.createElement("input") must inherit property "stepDown(optional long)" with the proper type +PASS HTMLInputElement interface: calling stepDown(optional long) on document.createElement("input") with too few arguments must throw TypeError +PASS HTMLInputElement interface: document.createElement("input") must inherit property "willValidate" with the proper type +PASS HTMLInputElement interface: document.createElement("input") must inherit property "validity" with the proper type +PASS HTMLInputElement interface: document.createElement("input") must inherit property "validationMessage" with the proper type +PASS HTMLInputElement interface: document.createElement("input") must inherit property "checkValidity()" with the proper type +PASS HTMLInputElement interface: document.createElement("input") must inherit property "reportValidity()" with the proper type +PASS HTMLInputElement interface: document.createElement("input") must inherit property "setCustomValidity(DOMString)" with the proper type +PASS HTMLInputElement interface: calling setCustomValidity(DOMString) on document.createElement("input") with too few arguments must throw TypeError +PASS HTMLInputElement interface: document.createElement("input") must inherit property "labels" with the proper type +PASS HTMLInputElement interface: document.createElement("input") must inherit property "select()" with the proper type +PASS HTMLInputElement interface: document.createElement("input") must inherit property "selectionStart" with the proper type +PASS HTMLInputElement interface: document.createElement("input") must inherit property "selectionEnd" with the proper type +PASS HTMLInputElement interface: document.createElement("input") must inherit property "selectionDirection" with the proper type +PASS HTMLInputElement interface: document.createElement("input") must inherit property "setRangeText(DOMString)" with the proper type +PASS HTMLInputElement interface: calling setRangeText(DOMString) on document.createElement("input") with too few arguments must throw TypeError +PASS HTMLInputElement interface: document.createElement("input") must inherit property "setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode)" with the proper type +PASS HTMLInputElement interface: calling setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode) on document.createElement("input") with too few arguments must throw TypeError +PASS HTMLInputElement interface: document.createElement("input") must inherit property "setSelectionRange(unsigned long, unsigned long, optional DOMString)" with the proper type +PASS HTMLInputElement interface: calling setSelectionRange(unsigned long, unsigned long, optional DOMString) on document.createElement("input") with too few arguments must throw TypeError +PASS HTMLInputElement interface: document.createElement("input") must inherit property "align" with the proper type +PASS HTMLInputElement interface: document.createElement("input") must inherit property "useMap" with the proper type +PASS HTMLInputElement must be primary interface of createInput("text") +PASS Stringification of createInput("text") +PASS HTMLInputElement interface: createInput("text") must inherit property "accept" with the proper type +PASS HTMLInputElement interface: createInput("text") must inherit property "alt" with the proper type +PASS HTMLInputElement interface: createInput("text") must inherit property "autocomplete" with the proper type +PASS HTMLInputElement interface: createInput("text") must inherit property "defaultChecked" with the proper type +PASS HTMLInputElement interface: createInput("text") must inherit property "checked" with the proper type +PASS HTMLInputElement interface: createInput("text") must inherit property "dirName" with the proper type +PASS HTMLInputElement interface: createInput("text") must inherit property "disabled" with the proper type +PASS HTMLInputElement interface: createInput("text") must inherit property "form" with the proper type +PASS HTMLInputElement interface: createInput("text") must inherit property "files" with the proper type +PASS HTMLInputElement interface: createInput("text") must inherit property "formAction" with the proper type +PASS HTMLInputElement interface: createInput("text") must inherit property "formEnctype" with the proper type +PASS HTMLInputElement interface: createInput("text") must inherit property "formMethod" with the proper type +PASS HTMLInputElement interface: createInput("text") must inherit property "formNoValidate" with the proper type +PASS HTMLInputElement interface: createInput("text") must inherit property "formTarget" with the proper type +PASS HTMLInputElement interface: createInput("text") must inherit property "height" with the proper type +PASS HTMLInputElement interface: createInput("text") must inherit property "indeterminate" with the proper type +PASS HTMLInputElement interface: createInput("text") must inherit property "list" with the proper type +PASS HTMLInputElement interface: createInput("text") must inherit property "max" with the proper type +PASS HTMLInputElement interface: createInput("text") must inherit property "maxLength" with the proper type +PASS HTMLInputElement interface: createInput("text") must inherit property "min" with the proper type +PASS HTMLInputElement interface: createInput("text") must inherit property "minLength" with the proper type +PASS HTMLInputElement interface: createInput("text") must inherit property "multiple" with the proper type +PASS HTMLInputElement interface: createInput("text") must inherit property "name" with the proper type +PASS HTMLInputElement interface: createInput("text") must inherit property "pattern" with the proper type +PASS HTMLInputElement interface: createInput("text") must inherit property "placeholder" with the proper type +PASS HTMLInputElement interface: createInput("text") must inherit property "readOnly" with the proper type +PASS HTMLInputElement interface: createInput("text") must inherit property "required" with the proper type +PASS HTMLInputElement interface: createInput("text") must inherit property "size" with the proper type +PASS HTMLInputElement interface: createInput("text") must inherit property "src" with the proper type +PASS HTMLInputElement interface: createInput("text") must inherit property "step" with the proper type +PASS HTMLInputElement interface: createInput("text") must inherit property "type" with the proper type +PASS HTMLInputElement interface: createInput("text") must inherit property "defaultValue" with the proper type +PASS HTMLInputElement interface: createInput("text") must inherit property "value" with the proper type +PASS HTMLInputElement interface: createInput("text") must inherit property "valueAsDate" with the proper type +PASS HTMLInputElement interface: createInput("text") must inherit property "valueAsNumber" with the proper type +PASS HTMLInputElement interface: createInput("text") must inherit property "width" with the proper type +PASS HTMLInputElement interface: createInput("text") must inherit property "stepUp(optional long)" with the proper type +PASS HTMLInputElement interface: calling stepUp(optional long) on createInput("text") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("text") must inherit property "stepDown(optional long)" with the proper type +PASS HTMLInputElement interface: calling stepDown(optional long) on createInput("text") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("text") must inherit property "willValidate" with the proper type +PASS HTMLInputElement interface: createInput("text") must inherit property "validity" with the proper type +PASS HTMLInputElement interface: createInput("text") must inherit property "validationMessage" with the proper type +PASS HTMLInputElement interface: createInput("text") must inherit property "checkValidity()" with the proper type +PASS HTMLInputElement interface: createInput("text") must inherit property "reportValidity()" with the proper type +PASS HTMLInputElement interface: createInput("text") must inherit property "setCustomValidity(DOMString)" with the proper type +PASS HTMLInputElement interface: calling setCustomValidity(DOMString) on createInput("text") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("text") must inherit property "labels" with the proper type +PASS HTMLInputElement interface: createInput("text") must inherit property "select()" with the proper type +PASS HTMLInputElement interface: createInput("text") must inherit property "selectionStart" with the proper type +PASS HTMLInputElement interface: createInput("text") must inherit property "selectionEnd" with the proper type +PASS HTMLInputElement interface: createInput("text") must inherit property "selectionDirection" with the proper type +PASS HTMLInputElement interface: createInput("text") must inherit property "setRangeText(DOMString)" with the proper type +PASS HTMLInputElement interface: calling setRangeText(DOMString) on createInput("text") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("text") must inherit property "setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode)" with the proper type +PASS HTMLInputElement interface: calling setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode) on createInput("text") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("text") must inherit property "setSelectionRange(unsigned long, unsigned long, optional DOMString)" with the proper type +PASS HTMLInputElement interface: calling setSelectionRange(unsigned long, unsigned long, optional DOMString) on createInput("text") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("text") must inherit property "align" with the proper type +PASS HTMLInputElement interface: createInput("text") must inherit property "useMap" with the proper type +PASS HTMLInputElement must be primary interface of createInput("hidden") +PASS Stringification of createInput("hidden") +PASS HTMLInputElement interface: createInput("hidden") must inherit property "accept" with the proper type +PASS HTMLInputElement interface: createInput("hidden") must inherit property "alt" with the proper type +PASS HTMLInputElement interface: createInput("hidden") must inherit property "autocomplete" with the proper type +PASS HTMLInputElement interface: createInput("hidden") must inherit property "defaultChecked" with the proper type +PASS HTMLInputElement interface: createInput("hidden") must inherit property "checked" with the proper type +PASS HTMLInputElement interface: createInput("hidden") must inherit property "dirName" with the proper type +PASS HTMLInputElement interface: createInput("hidden") must inherit property "disabled" with the proper type +PASS HTMLInputElement interface: createInput("hidden") must inherit property "form" with the proper type +PASS HTMLInputElement interface: createInput("hidden") must inherit property "files" with the proper type +PASS HTMLInputElement interface: createInput("hidden") must inherit property "formAction" with the proper type +PASS HTMLInputElement interface: createInput("hidden") must inherit property "formEnctype" with the proper type +PASS HTMLInputElement interface: createInput("hidden") must inherit property "formMethod" with the proper type +PASS HTMLInputElement interface: createInput("hidden") must inherit property "formNoValidate" with the proper type +PASS HTMLInputElement interface: createInput("hidden") must inherit property "formTarget" with the proper type +PASS HTMLInputElement interface: createInput("hidden") must inherit property "height" with the proper type +PASS HTMLInputElement interface: createInput("hidden") must inherit property "indeterminate" with the proper type +PASS HTMLInputElement interface: createInput("hidden") must inherit property "list" with the proper type +PASS HTMLInputElement interface: createInput("hidden") must inherit property "max" with the proper type +PASS HTMLInputElement interface: createInput("hidden") must inherit property "maxLength" with the proper type +PASS HTMLInputElement interface: createInput("hidden") must inherit property "min" with the proper type +PASS HTMLInputElement interface: createInput("hidden") must inherit property "minLength" with the proper type +PASS HTMLInputElement interface: createInput("hidden") must inherit property "multiple" with the proper type +PASS HTMLInputElement interface: createInput("hidden") must inherit property "name" with the proper type +PASS HTMLInputElement interface: createInput("hidden") must inherit property "pattern" with the proper type +PASS HTMLInputElement interface: createInput("hidden") must inherit property "placeholder" with the proper type +PASS HTMLInputElement interface: createInput("hidden") must inherit property "readOnly" with the proper type +PASS HTMLInputElement interface: createInput("hidden") must inherit property "required" with the proper type +PASS HTMLInputElement interface: createInput("hidden") must inherit property "size" with the proper type +PASS HTMLInputElement interface: createInput("hidden") must inherit property "src" with the proper type +PASS HTMLInputElement interface: createInput("hidden") must inherit property "step" with the proper type +PASS HTMLInputElement interface: createInput("hidden") must inherit property "type" with the proper type +PASS HTMLInputElement interface: createInput("hidden") must inherit property "defaultValue" with the proper type +PASS HTMLInputElement interface: createInput("hidden") must inherit property "value" with the proper type +PASS HTMLInputElement interface: createInput("hidden") must inherit property "valueAsDate" with the proper type +PASS HTMLInputElement interface: createInput("hidden") must inherit property "valueAsNumber" with the proper type +PASS HTMLInputElement interface: createInput("hidden") must inherit property "width" with the proper type +PASS HTMLInputElement interface: createInput("hidden") must inherit property "stepUp(optional long)" with the proper type +PASS HTMLInputElement interface: calling stepUp(optional long) on createInput("hidden") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("hidden") must inherit property "stepDown(optional long)" with the proper type +PASS HTMLInputElement interface: calling stepDown(optional long) on createInput("hidden") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("hidden") must inherit property "willValidate" with the proper type +PASS HTMLInputElement interface: createInput("hidden") must inherit property "validity" with the proper type +PASS HTMLInputElement interface: createInput("hidden") must inherit property "validationMessage" with the proper type +PASS HTMLInputElement interface: createInput("hidden") must inherit property "checkValidity()" with the proper type +PASS HTMLInputElement interface: createInput("hidden") must inherit property "reportValidity()" with the proper type +PASS HTMLInputElement interface: createInput("hidden") must inherit property "setCustomValidity(DOMString)" with the proper type +PASS HTMLInputElement interface: calling setCustomValidity(DOMString) on createInput("hidden") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("hidden") must inherit property "labels" with the proper type +PASS HTMLInputElement interface: createInput("hidden") must inherit property "select()" with the proper type +PASS HTMLInputElement interface: createInput("hidden") must inherit property "selectionStart" with the proper type +PASS HTMLInputElement interface: createInput("hidden") must inherit property "selectionEnd" with the proper type +PASS HTMLInputElement interface: createInput("hidden") must inherit property "selectionDirection" with the proper type +PASS HTMLInputElement interface: createInput("hidden") must inherit property "setRangeText(DOMString)" with the proper type +PASS HTMLInputElement interface: calling setRangeText(DOMString) on createInput("hidden") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("hidden") must inherit property "setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode)" with the proper type +PASS HTMLInputElement interface: calling setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode) on createInput("hidden") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("hidden") must inherit property "setSelectionRange(unsigned long, unsigned long, optional DOMString)" with the proper type +PASS HTMLInputElement interface: calling setSelectionRange(unsigned long, unsigned long, optional DOMString) on createInput("hidden") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("hidden") must inherit property "align" with the proper type +PASS HTMLInputElement interface: createInput("hidden") must inherit property "useMap" with the proper type +PASS HTMLInputElement must be primary interface of createInput("search") +PASS Stringification of createInput("search") +PASS HTMLInputElement interface: createInput("search") must inherit property "accept" with the proper type +PASS HTMLInputElement interface: createInput("search") must inherit property "alt" with the proper type +PASS HTMLInputElement interface: createInput("search") must inherit property "autocomplete" with the proper type +PASS HTMLInputElement interface: createInput("search") must inherit property "defaultChecked" with the proper type +PASS HTMLInputElement interface: createInput("search") must inherit property "checked" with the proper type +PASS HTMLInputElement interface: createInput("search") must inherit property "dirName" with the proper type +PASS HTMLInputElement interface: createInput("search") must inherit property "disabled" with the proper type +PASS HTMLInputElement interface: createInput("search") must inherit property "form" with the proper type +PASS HTMLInputElement interface: createInput("search") must inherit property "files" with the proper type +PASS HTMLInputElement interface: createInput("search") must inherit property "formAction" with the proper type +PASS HTMLInputElement interface: createInput("search") must inherit property "formEnctype" with the proper type +PASS HTMLInputElement interface: createInput("search") must inherit property "formMethod" with the proper type +PASS HTMLInputElement interface: createInput("search") must inherit property "formNoValidate" with the proper type +PASS HTMLInputElement interface: createInput("search") must inherit property "formTarget" with the proper type +PASS HTMLInputElement interface: createInput("search") must inherit property "height" with the proper type +PASS HTMLInputElement interface: createInput("search") must inherit property "indeterminate" with the proper type +PASS HTMLInputElement interface: createInput("search") must inherit property "list" with the proper type +PASS HTMLInputElement interface: createInput("search") must inherit property "max" with the proper type +PASS HTMLInputElement interface: createInput("search") must inherit property "maxLength" with the proper type +PASS HTMLInputElement interface: createInput("search") must inherit property "min" with the proper type +PASS HTMLInputElement interface: createInput("search") must inherit property "minLength" with the proper type +PASS HTMLInputElement interface: createInput("search") must inherit property "multiple" with the proper type +PASS HTMLInputElement interface: createInput("search") must inherit property "name" with the proper type +PASS HTMLInputElement interface: createInput("search") must inherit property "pattern" with the proper type +PASS HTMLInputElement interface: createInput("search") must inherit property "placeholder" with the proper type +PASS HTMLInputElement interface: createInput("search") must inherit property "readOnly" with the proper type +PASS HTMLInputElement interface: createInput("search") must inherit property "required" with the proper type +PASS HTMLInputElement interface: createInput("search") must inherit property "size" with the proper type +PASS HTMLInputElement interface: createInput("search") must inherit property "src" with the proper type +PASS HTMLInputElement interface: createInput("search") must inherit property "step" with the proper type +PASS HTMLInputElement interface: createInput("search") must inherit property "type" with the proper type +PASS HTMLInputElement interface: createInput("search") must inherit property "defaultValue" with the proper type +PASS HTMLInputElement interface: createInput("search") must inherit property "value" with the proper type +PASS HTMLInputElement interface: createInput("search") must inherit property "valueAsDate" with the proper type +PASS HTMLInputElement interface: createInput("search") must inherit property "valueAsNumber" with the proper type +PASS HTMLInputElement interface: createInput("search") must inherit property "width" with the proper type +PASS HTMLInputElement interface: createInput("search") must inherit property "stepUp(optional long)" with the proper type +PASS HTMLInputElement interface: calling stepUp(optional long) on createInput("search") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("search") must inherit property "stepDown(optional long)" with the proper type +PASS HTMLInputElement interface: calling stepDown(optional long) on createInput("search") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("search") must inherit property "willValidate" with the proper type +PASS HTMLInputElement interface: createInput("search") must inherit property "validity" with the proper type +PASS HTMLInputElement interface: createInput("search") must inherit property "validationMessage" with the proper type +PASS HTMLInputElement interface: createInput("search") must inherit property "checkValidity()" with the proper type +PASS HTMLInputElement interface: createInput("search") must inherit property "reportValidity()" with the proper type +PASS HTMLInputElement interface: createInput("search") must inherit property "setCustomValidity(DOMString)" with the proper type +PASS HTMLInputElement interface: calling setCustomValidity(DOMString) on createInput("search") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("search") must inherit property "labels" with the proper type +PASS HTMLInputElement interface: createInput("search") must inherit property "select()" with the proper type +PASS HTMLInputElement interface: createInput("search") must inherit property "selectionStart" with the proper type +PASS HTMLInputElement interface: createInput("search") must inherit property "selectionEnd" with the proper type +PASS HTMLInputElement interface: createInput("search") must inherit property "selectionDirection" with the proper type +PASS HTMLInputElement interface: createInput("search") must inherit property "setRangeText(DOMString)" with the proper type +PASS HTMLInputElement interface: calling setRangeText(DOMString) on createInput("search") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("search") must inherit property "setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode)" with the proper type +PASS HTMLInputElement interface: calling setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode) on createInput("search") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("search") must inherit property "setSelectionRange(unsigned long, unsigned long, optional DOMString)" with the proper type +PASS HTMLInputElement interface: calling setSelectionRange(unsigned long, unsigned long, optional DOMString) on createInput("search") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("search") must inherit property "align" with the proper type +PASS HTMLInputElement interface: createInput("search") must inherit property "useMap" with the proper type +PASS HTMLInputElement must be primary interface of createInput("tel") +PASS Stringification of createInput("tel") +PASS HTMLInputElement interface: createInput("tel") must inherit property "accept" with the proper type +PASS HTMLInputElement interface: createInput("tel") must inherit property "alt" with the proper type +PASS HTMLInputElement interface: createInput("tel") must inherit property "autocomplete" with the proper type +PASS HTMLInputElement interface: createInput("tel") must inherit property "defaultChecked" with the proper type +PASS HTMLInputElement interface: createInput("tel") must inherit property "checked" with the proper type +PASS HTMLInputElement interface: createInput("tel") must inherit property "dirName" with the proper type +PASS HTMLInputElement interface: createInput("tel") must inherit property "disabled" with the proper type +PASS HTMLInputElement interface: createInput("tel") must inherit property "form" with the proper type +PASS HTMLInputElement interface: createInput("tel") must inherit property "files" with the proper type +PASS HTMLInputElement interface: createInput("tel") must inherit property "formAction" with the proper type +PASS HTMLInputElement interface: createInput("tel") must inherit property "formEnctype" with the proper type +PASS HTMLInputElement interface: createInput("tel") must inherit property "formMethod" with the proper type +PASS HTMLInputElement interface: createInput("tel") must inherit property "formNoValidate" with the proper type +PASS HTMLInputElement interface: createInput("tel") must inherit property "formTarget" with the proper type +PASS HTMLInputElement interface: createInput("tel") must inherit property "height" with the proper type +PASS HTMLInputElement interface: createInput("tel") must inherit property "indeterminate" with the proper type +PASS HTMLInputElement interface: createInput("tel") must inherit property "list" with the proper type +PASS HTMLInputElement interface: createInput("tel") must inherit property "max" with the proper type +PASS HTMLInputElement interface: createInput("tel") must inherit property "maxLength" with the proper type +PASS HTMLInputElement interface: createInput("tel") must inherit property "min" with the proper type +PASS HTMLInputElement interface: createInput("tel") must inherit property "minLength" with the proper type +PASS HTMLInputElement interface: createInput("tel") must inherit property "multiple" with the proper type +PASS HTMLInputElement interface: createInput("tel") must inherit property "name" with the proper type +PASS HTMLInputElement interface: createInput("tel") must inherit property "pattern" with the proper type +PASS HTMLInputElement interface: createInput("tel") must inherit property "placeholder" with the proper type +PASS HTMLInputElement interface: createInput("tel") must inherit property "readOnly" with the proper type +PASS HTMLInputElement interface: createInput("tel") must inherit property "required" with the proper type +PASS HTMLInputElement interface: createInput("tel") must inherit property "size" with the proper type +PASS HTMLInputElement interface: createInput("tel") must inherit property "src" with the proper type +PASS HTMLInputElement interface: createInput("tel") must inherit property "step" with the proper type +PASS HTMLInputElement interface: createInput("tel") must inherit property "type" with the proper type +PASS HTMLInputElement interface: createInput("tel") must inherit property "defaultValue" with the proper type +PASS HTMLInputElement interface: createInput("tel") must inherit property "value" with the proper type +PASS HTMLInputElement interface: createInput("tel") must inherit property "valueAsDate" with the proper type +PASS HTMLInputElement interface: createInput("tel") must inherit property "valueAsNumber" with the proper type +PASS HTMLInputElement interface: createInput("tel") must inherit property "width" with the proper type +PASS HTMLInputElement interface: createInput("tel") must inherit property "stepUp(optional long)" with the proper type +PASS HTMLInputElement interface: calling stepUp(optional long) on createInput("tel") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("tel") must inherit property "stepDown(optional long)" with the proper type +PASS HTMLInputElement interface: calling stepDown(optional long) on createInput("tel") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("tel") must inherit property "willValidate" with the proper type +PASS HTMLInputElement interface: createInput("tel") must inherit property "validity" with the proper type +PASS HTMLInputElement interface: createInput("tel") must inherit property "validationMessage" with the proper type +PASS HTMLInputElement interface: createInput("tel") must inherit property "checkValidity()" with the proper type +PASS HTMLInputElement interface: createInput("tel") must inherit property "reportValidity()" with the proper type +PASS HTMLInputElement interface: createInput("tel") must inherit property "setCustomValidity(DOMString)" with the proper type +PASS HTMLInputElement interface: calling setCustomValidity(DOMString) on createInput("tel") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("tel") must inherit property "labels" with the proper type +PASS HTMLInputElement interface: createInput("tel") must inherit property "select()" with the proper type +PASS HTMLInputElement interface: createInput("tel") must inherit property "selectionStart" with the proper type +PASS HTMLInputElement interface: createInput("tel") must inherit property "selectionEnd" with the proper type +PASS HTMLInputElement interface: createInput("tel") must inherit property "selectionDirection" with the proper type +PASS HTMLInputElement interface: createInput("tel") must inherit property "setRangeText(DOMString)" with the proper type +PASS HTMLInputElement interface: calling setRangeText(DOMString) on createInput("tel") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("tel") must inherit property "setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode)" with the proper type +PASS HTMLInputElement interface: calling setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode) on createInput("tel") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("tel") must inherit property "setSelectionRange(unsigned long, unsigned long, optional DOMString)" with the proper type +PASS HTMLInputElement interface: calling setSelectionRange(unsigned long, unsigned long, optional DOMString) on createInput("tel") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("tel") must inherit property "align" with the proper type +PASS HTMLInputElement interface: createInput("tel") must inherit property "useMap" with the proper type +PASS HTMLInputElement must be primary interface of createInput("url") +PASS Stringification of createInput("url") +PASS HTMLInputElement interface: createInput("url") must inherit property "accept" with the proper type +PASS HTMLInputElement interface: createInput("url") must inherit property "alt" with the proper type +PASS HTMLInputElement interface: createInput("url") must inherit property "autocomplete" with the proper type +PASS HTMLInputElement interface: createInput("url") must inherit property "defaultChecked" with the proper type +PASS HTMLInputElement interface: createInput("url") must inherit property "checked" with the proper type +PASS HTMLInputElement interface: createInput("url") must inherit property "dirName" with the proper type +PASS HTMLInputElement interface: createInput("url") must inherit property "disabled" with the proper type +PASS HTMLInputElement interface: createInput("url") must inherit property "form" with the proper type +PASS HTMLInputElement interface: createInput("url") must inherit property "files" with the proper type +PASS HTMLInputElement interface: createInput("url") must inherit property "formAction" with the proper type +PASS HTMLInputElement interface: createInput("url") must inherit property "formEnctype" with the proper type +PASS HTMLInputElement interface: createInput("url") must inherit property "formMethod" with the proper type +PASS HTMLInputElement interface: createInput("url") must inherit property "formNoValidate" with the proper type +PASS HTMLInputElement interface: createInput("url") must inherit property "formTarget" with the proper type +PASS HTMLInputElement interface: createInput("url") must inherit property "height" with the proper type +PASS HTMLInputElement interface: createInput("url") must inherit property "indeterminate" with the proper type +PASS HTMLInputElement interface: createInput("url") must inherit property "list" with the proper type +PASS HTMLInputElement interface: createInput("url") must inherit property "max" with the proper type +PASS HTMLInputElement interface: createInput("url") must inherit property "maxLength" with the proper type +PASS HTMLInputElement interface: createInput("url") must inherit property "min" with the proper type +PASS HTMLInputElement interface: createInput("url") must inherit property "minLength" with the proper type +PASS HTMLInputElement interface: createInput("url") must inherit property "multiple" with the proper type +PASS HTMLInputElement interface: createInput("url") must inherit property "name" with the proper type +PASS HTMLInputElement interface: createInput("url") must inherit property "pattern" with the proper type +PASS HTMLInputElement interface: createInput("url") must inherit property "placeholder" with the proper type +PASS HTMLInputElement interface: createInput("url") must inherit property "readOnly" with the proper type +PASS HTMLInputElement interface: createInput("url") must inherit property "required" with the proper type +PASS HTMLInputElement interface: createInput("url") must inherit property "size" with the proper type +PASS HTMLInputElement interface: createInput("url") must inherit property "src" with the proper type +PASS HTMLInputElement interface: createInput("url") must inherit property "step" with the proper type +PASS HTMLInputElement interface: createInput("url") must inherit property "type" with the proper type +PASS HTMLInputElement interface: createInput("url") must inherit property "defaultValue" with the proper type +PASS HTMLInputElement interface: createInput("url") must inherit property "value" with the proper type +PASS HTMLInputElement interface: createInput("url") must inherit property "valueAsDate" with the proper type +PASS HTMLInputElement interface: createInput("url") must inherit property "valueAsNumber" with the proper type +PASS HTMLInputElement interface: createInput("url") must inherit property "width" with the proper type +PASS HTMLInputElement interface: createInput("url") must inherit property "stepUp(optional long)" with the proper type +PASS HTMLInputElement interface: calling stepUp(optional long) on createInput("url") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("url") must inherit property "stepDown(optional long)" with the proper type +PASS HTMLInputElement interface: calling stepDown(optional long) on createInput("url") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("url") must inherit property "willValidate" with the proper type +PASS HTMLInputElement interface: createInput("url") must inherit property "validity" with the proper type +PASS HTMLInputElement interface: createInput("url") must inherit property "validationMessage" with the proper type +PASS HTMLInputElement interface: createInput("url") must inherit property "checkValidity()" with the proper type +PASS HTMLInputElement interface: createInput("url") must inherit property "reportValidity()" with the proper type +PASS HTMLInputElement interface: createInput("url") must inherit property "setCustomValidity(DOMString)" with the proper type +PASS HTMLInputElement interface: calling setCustomValidity(DOMString) on createInput("url") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("url") must inherit property "labels" with the proper type +PASS HTMLInputElement interface: createInput("url") must inherit property "select()" with the proper type +PASS HTMLInputElement interface: createInput("url") must inherit property "selectionStart" with the proper type +PASS HTMLInputElement interface: createInput("url") must inherit property "selectionEnd" with the proper type +PASS HTMLInputElement interface: createInput("url") must inherit property "selectionDirection" with the proper type +PASS HTMLInputElement interface: createInput("url") must inherit property "setRangeText(DOMString)" with the proper type +PASS HTMLInputElement interface: calling setRangeText(DOMString) on createInput("url") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("url") must inherit property "setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode)" with the proper type +PASS HTMLInputElement interface: calling setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode) on createInput("url") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("url") must inherit property "setSelectionRange(unsigned long, unsigned long, optional DOMString)" with the proper type +PASS HTMLInputElement interface: calling setSelectionRange(unsigned long, unsigned long, optional DOMString) on createInput("url") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("url") must inherit property "align" with the proper type +PASS HTMLInputElement interface: createInput("url") must inherit property "useMap" with the proper type +PASS HTMLInputElement must be primary interface of createInput("email") +PASS Stringification of createInput("email") +PASS HTMLInputElement interface: createInput("email") must inherit property "accept" with the proper type +PASS HTMLInputElement interface: createInput("email") must inherit property "alt" with the proper type +PASS HTMLInputElement interface: createInput("email") must inherit property "autocomplete" with the proper type +PASS HTMLInputElement interface: createInput("email") must inherit property "defaultChecked" with the proper type +PASS HTMLInputElement interface: createInput("email") must inherit property "checked" with the proper type +PASS HTMLInputElement interface: createInput("email") must inherit property "dirName" with the proper type +PASS HTMLInputElement interface: createInput("email") must inherit property "disabled" with the proper type +PASS HTMLInputElement interface: createInput("email") must inherit property "form" with the proper type +PASS HTMLInputElement interface: createInput("email") must inherit property "files" with the proper type +PASS HTMLInputElement interface: createInput("email") must inherit property "formAction" with the proper type +PASS HTMLInputElement interface: createInput("email") must inherit property "formEnctype" with the proper type +PASS HTMLInputElement interface: createInput("email") must inherit property "formMethod" with the proper type +PASS HTMLInputElement interface: createInput("email") must inherit property "formNoValidate" with the proper type +PASS HTMLInputElement interface: createInput("email") must inherit property "formTarget" with the proper type +PASS HTMLInputElement interface: createInput("email") must inherit property "height" with the proper type +PASS HTMLInputElement interface: createInput("email") must inherit property "indeterminate" with the proper type +PASS HTMLInputElement interface: createInput("email") must inherit property "list" with the proper type +PASS HTMLInputElement interface: createInput("email") must inherit property "max" with the proper type +PASS HTMLInputElement interface: createInput("email") must inherit property "maxLength" with the proper type +PASS HTMLInputElement interface: createInput("email") must inherit property "min" with the proper type +PASS HTMLInputElement interface: createInput("email") must inherit property "minLength" with the proper type +PASS HTMLInputElement interface: createInput("email") must inherit property "multiple" with the proper type +PASS HTMLInputElement interface: createInput("email") must inherit property "name" with the proper type +PASS HTMLInputElement interface: createInput("email") must inherit property "pattern" with the proper type +PASS HTMLInputElement interface: createInput("email") must inherit property "placeholder" with the proper type +PASS HTMLInputElement interface: createInput("email") must inherit property "readOnly" with the proper type +PASS HTMLInputElement interface: createInput("email") must inherit property "required" with the proper type +PASS HTMLInputElement interface: createInput("email") must inherit property "size" with the proper type +PASS HTMLInputElement interface: createInput("email") must inherit property "src" with the proper type +PASS HTMLInputElement interface: createInput("email") must inherit property "step" with the proper type +PASS HTMLInputElement interface: createInput("email") must inherit property "type" with the proper type +PASS HTMLInputElement interface: createInput("email") must inherit property "defaultValue" with the proper type +PASS HTMLInputElement interface: createInput("email") must inherit property "value" with the proper type +PASS HTMLInputElement interface: createInput("email") must inherit property "valueAsDate" with the proper type +PASS HTMLInputElement interface: createInput("email") must inherit property "valueAsNumber" with the proper type +PASS HTMLInputElement interface: createInput("email") must inherit property "width" with the proper type +PASS HTMLInputElement interface: createInput("email") must inherit property "stepUp(optional long)" with the proper type +PASS HTMLInputElement interface: calling stepUp(optional long) on createInput("email") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("email") must inherit property "stepDown(optional long)" with the proper type +PASS HTMLInputElement interface: calling stepDown(optional long) on createInput("email") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("email") must inherit property "willValidate" with the proper type +PASS HTMLInputElement interface: createInput("email") must inherit property "validity" with the proper type +PASS HTMLInputElement interface: createInput("email") must inherit property "validationMessage" with the proper type +PASS HTMLInputElement interface: createInput("email") must inherit property "checkValidity()" with the proper type +PASS HTMLInputElement interface: createInput("email") must inherit property "reportValidity()" with the proper type +PASS HTMLInputElement interface: createInput("email") must inherit property "setCustomValidity(DOMString)" with the proper type +PASS HTMLInputElement interface: calling setCustomValidity(DOMString) on createInput("email") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("email") must inherit property "labels" with the proper type +PASS HTMLInputElement interface: createInput("email") must inherit property "select()" with the proper type +PASS HTMLInputElement interface: createInput("email") must inherit property "selectionStart" with the proper type +PASS HTMLInputElement interface: createInput("email") must inherit property "selectionEnd" with the proper type +PASS HTMLInputElement interface: createInput("email") must inherit property "selectionDirection" with the proper type +PASS HTMLInputElement interface: createInput("email") must inherit property "setRangeText(DOMString)" with the proper type +PASS HTMLInputElement interface: calling setRangeText(DOMString) on createInput("email") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("email") must inherit property "setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode)" with the proper type +PASS HTMLInputElement interface: calling setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode) on createInput("email") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("email") must inherit property "setSelectionRange(unsigned long, unsigned long, optional DOMString)" with the proper type +PASS HTMLInputElement interface: calling setSelectionRange(unsigned long, unsigned long, optional DOMString) on createInput("email") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("email") must inherit property "align" with the proper type +PASS HTMLInputElement interface: createInput("email") must inherit property "useMap" with the proper type +PASS HTMLInputElement must be primary interface of createInput("password") +PASS Stringification of createInput("password") +PASS HTMLInputElement interface: createInput("password") must inherit property "accept" with the proper type +PASS HTMLInputElement interface: createInput("password") must inherit property "alt" with the proper type +PASS HTMLInputElement interface: createInput("password") must inherit property "autocomplete" with the proper type +PASS HTMLInputElement interface: createInput("password") must inherit property "defaultChecked" with the proper type +PASS HTMLInputElement interface: createInput("password") must inherit property "checked" with the proper type +PASS HTMLInputElement interface: createInput("password") must inherit property "dirName" with the proper type +PASS HTMLInputElement interface: createInput("password") must inherit property "disabled" with the proper type +PASS HTMLInputElement interface: createInput("password") must inherit property "form" with the proper type +PASS HTMLInputElement interface: createInput("password") must inherit property "files" with the proper type +PASS HTMLInputElement interface: createInput("password") must inherit property "formAction" with the proper type +PASS HTMLInputElement interface: createInput("password") must inherit property "formEnctype" with the proper type +PASS HTMLInputElement interface: createInput("password") must inherit property "formMethod" with the proper type +PASS HTMLInputElement interface: createInput("password") must inherit property "formNoValidate" with the proper type +PASS HTMLInputElement interface: createInput("password") must inherit property "formTarget" with the proper type +PASS HTMLInputElement interface: createInput("password") must inherit property "height" with the proper type +PASS HTMLInputElement interface: createInput("password") must inherit property "indeterminate" with the proper type +PASS HTMLInputElement interface: createInput("password") must inherit property "list" with the proper type +PASS HTMLInputElement interface: createInput("password") must inherit property "max" with the proper type +PASS HTMLInputElement interface: createInput("password") must inherit property "maxLength" with the proper type +PASS HTMLInputElement interface: createInput("password") must inherit property "min" with the proper type +PASS HTMLInputElement interface: createInput("password") must inherit property "minLength" with the proper type +PASS HTMLInputElement interface: createInput("password") must inherit property "multiple" with the proper type +PASS HTMLInputElement interface: createInput("password") must inherit property "name" with the proper type +PASS HTMLInputElement interface: createInput("password") must inherit property "pattern" with the proper type +PASS HTMLInputElement interface: createInput("password") must inherit property "placeholder" with the proper type +PASS HTMLInputElement interface: createInput("password") must inherit property "readOnly" with the proper type +PASS HTMLInputElement interface: createInput("password") must inherit property "required" with the proper type +PASS HTMLInputElement interface: createInput("password") must inherit property "size" with the proper type +PASS HTMLInputElement interface: createInput("password") must inherit property "src" with the proper type +PASS HTMLInputElement interface: createInput("password") must inherit property "step" with the proper type +PASS HTMLInputElement interface: createInput("password") must inherit property "type" with the proper type +PASS HTMLInputElement interface: createInput("password") must inherit property "defaultValue" with the proper type +PASS HTMLInputElement interface: createInput("password") must inherit property "value" with the proper type +PASS HTMLInputElement interface: createInput("password") must inherit property "valueAsDate" with the proper type +PASS HTMLInputElement interface: createInput("password") must inherit property "valueAsNumber" with the proper type +PASS HTMLInputElement interface: createInput("password") must inherit property "width" with the proper type +PASS HTMLInputElement interface: createInput("password") must inherit property "stepUp(optional long)" with the proper type +PASS HTMLInputElement interface: calling stepUp(optional long) on createInput("password") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("password") must inherit property "stepDown(optional long)" with the proper type +PASS HTMLInputElement interface: calling stepDown(optional long) on createInput("password") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("password") must inherit property "willValidate" with the proper type +PASS HTMLInputElement interface: createInput("password") must inherit property "validity" with the proper type +PASS HTMLInputElement interface: createInput("password") must inherit property "validationMessage" with the proper type +PASS HTMLInputElement interface: createInput("password") must inherit property "checkValidity()" with the proper type +PASS HTMLInputElement interface: createInput("password") must inherit property "reportValidity()" with the proper type +PASS HTMLInputElement interface: createInput("password") must inherit property "setCustomValidity(DOMString)" with the proper type +PASS HTMLInputElement interface: calling setCustomValidity(DOMString) on createInput("password") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("password") must inherit property "labels" with the proper type +PASS HTMLInputElement interface: createInput("password") must inherit property "select()" with the proper type +PASS HTMLInputElement interface: createInput("password") must inherit property "selectionStart" with the proper type +PASS HTMLInputElement interface: createInput("password") must inherit property "selectionEnd" with the proper type +PASS HTMLInputElement interface: createInput("password") must inherit property "selectionDirection" with the proper type +PASS HTMLInputElement interface: createInput("password") must inherit property "setRangeText(DOMString)" with the proper type +PASS HTMLInputElement interface: calling setRangeText(DOMString) on createInput("password") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("password") must inherit property "setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode)" with the proper type +PASS HTMLInputElement interface: calling setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode) on createInput("password") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("password") must inherit property "setSelectionRange(unsigned long, unsigned long, optional DOMString)" with the proper type +PASS HTMLInputElement interface: calling setSelectionRange(unsigned long, unsigned long, optional DOMString) on createInput("password") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("password") must inherit property "align" with the proper type +PASS HTMLInputElement interface: createInput("password") must inherit property "useMap" with the proper type +PASS HTMLInputElement must be primary interface of createInput("date") +PASS Stringification of createInput("date") +PASS HTMLInputElement interface: createInput("date") must inherit property "accept" with the proper type +PASS HTMLInputElement interface: createInput("date") must inherit property "alt" with the proper type +PASS HTMLInputElement interface: createInput("date") must inherit property "autocomplete" with the proper type +PASS HTMLInputElement interface: createInput("date") must inherit property "defaultChecked" with the proper type +PASS HTMLInputElement interface: createInput("date") must inherit property "checked" with the proper type +PASS HTMLInputElement interface: createInput("date") must inherit property "dirName" with the proper type +PASS HTMLInputElement interface: createInput("date") must inherit property "disabled" with the proper type +PASS HTMLInputElement interface: createInput("date") must inherit property "form" with the proper type +PASS HTMLInputElement interface: createInput("date") must inherit property "files" with the proper type +PASS HTMLInputElement interface: createInput("date") must inherit property "formAction" with the proper type +PASS HTMLInputElement interface: createInput("date") must inherit property "formEnctype" with the proper type +PASS HTMLInputElement interface: createInput("date") must inherit property "formMethod" with the proper type +PASS HTMLInputElement interface: createInput("date") must inherit property "formNoValidate" with the proper type +PASS HTMLInputElement interface: createInput("date") must inherit property "formTarget" with the proper type +PASS HTMLInputElement interface: createInput("date") must inherit property "height" with the proper type +PASS HTMLInputElement interface: createInput("date") must inherit property "indeterminate" with the proper type +PASS HTMLInputElement interface: createInput("date") must inherit property "list" with the proper type +PASS HTMLInputElement interface: createInput("date") must inherit property "max" with the proper type +PASS HTMLInputElement interface: createInput("date") must inherit property "maxLength" with the proper type +PASS HTMLInputElement interface: createInput("date") must inherit property "min" with the proper type +PASS HTMLInputElement interface: createInput("date") must inherit property "minLength" with the proper type +PASS HTMLInputElement interface: createInput("date") must inherit property "multiple" with the proper type +PASS HTMLInputElement interface: createInput("date") must inherit property "name" with the proper type +PASS HTMLInputElement interface: createInput("date") must inherit property "pattern" with the proper type +PASS HTMLInputElement interface: createInput("date") must inherit property "placeholder" with the proper type +PASS HTMLInputElement interface: createInput("date") must inherit property "readOnly" with the proper type +PASS HTMLInputElement interface: createInput("date") must inherit property "required" with the proper type +PASS HTMLInputElement interface: createInput("date") must inherit property "size" with the proper type +PASS HTMLInputElement interface: createInput("date") must inherit property "src" with the proper type +PASS HTMLInputElement interface: createInput("date") must inherit property "step" with the proper type +PASS HTMLInputElement interface: createInput("date") must inherit property "type" with the proper type +PASS HTMLInputElement interface: createInput("date") must inherit property "defaultValue" with the proper type +PASS HTMLInputElement interface: createInput("date") must inherit property "value" with the proper type +PASS HTMLInputElement interface: createInput("date") must inherit property "valueAsDate" with the proper type +PASS HTMLInputElement interface: createInput("date") must inherit property "valueAsNumber" with the proper type +PASS HTMLInputElement interface: createInput("date") must inherit property "width" with the proper type +PASS HTMLInputElement interface: createInput("date") must inherit property "stepUp(optional long)" with the proper type +PASS HTMLInputElement interface: calling stepUp(optional long) on createInput("date") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("date") must inherit property "stepDown(optional long)" with the proper type +PASS HTMLInputElement interface: calling stepDown(optional long) on createInput("date") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("date") must inherit property "willValidate" with the proper type +PASS HTMLInputElement interface: createInput("date") must inherit property "validity" with the proper type +PASS HTMLInputElement interface: createInput("date") must inherit property "validationMessage" with the proper type +PASS HTMLInputElement interface: createInput("date") must inherit property "checkValidity()" with the proper type +PASS HTMLInputElement interface: createInput("date") must inherit property "reportValidity()" with the proper type +PASS HTMLInputElement interface: createInput("date") must inherit property "setCustomValidity(DOMString)" with the proper type +PASS HTMLInputElement interface: calling setCustomValidity(DOMString) on createInput("date") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("date") must inherit property "labels" with the proper type +PASS HTMLInputElement interface: createInput("date") must inherit property "select()" with the proper type +PASS HTMLInputElement interface: createInput("date") must inherit property "selectionStart" with the proper type +PASS HTMLInputElement interface: createInput("date") must inherit property "selectionEnd" with the proper type +PASS HTMLInputElement interface: createInput("date") must inherit property "selectionDirection" with the proper type +PASS HTMLInputElement interface: createInput("date") must inherit property "setRangeText(DOMString)" with the proper type +PASS HTMLInputElement interface: calling setRangeText(DOMString) on createInput("date") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("date") must inherit property "setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode)" with the proper type +PASS HTMLInputElement interface: calling setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode) on createInput("date") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("date") must inherit property "setSelectionRange(unsigned long, unsigned long, optional DOMString)" with the proper type +PASS HTMLInputElement interface: calling setSelectionRange(unsigned long, unsigned long, optional DOMString) on createInput("date") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("date") must inherit property "align" with the proper type +PASS HTMLInputElement interface: createInput("date") must inherit property "useMap" with the proper type +PASS HTMLInputElement must be primary interface of createInput("month") +PASS Stringification of createInput("month") +PASS HTMLInputElement interface: createInput("month") must inherit property "accept" with the proper type +PASS HTMLInputElement interface: createInput("month") must inherit property "alt" with the proper type +PASS HTMLInputElement interface: createInput("month") must inherit property "autocomplete" with the proper type +PASS HTMLInputElement interface: createInput("month") must inherit property "defaultChecked" with the proper type +PASS HTMLInputElement interface: createInput("month") must inherit property "checked" with the proper type +PASS HTMLInputElement interface: createInput("month") must inherit property "dirName" with the proper type +PASS HTMLInputElement interface: createInput("month") must inherit property "disabled" with the proper type +PASS HTMLInputElement interface: createInput("month") must inherit property "form" with the proper type +PASS HTMLInputElement interface: createInput("month") must inherit property "files" with the proper type +PASS HTMLInputElement interface: createInput("month") must inherit property "formAction" with the proper type +PASS HTMLInputElement interface: createInput("month") must inherit property "formEnctype" with the proper type +PASS HTMLInputElement interface: createInput("month") must inherit property "formMethod" with the proper type +PASS HTMLInputElement interface: createInput("month") must inherit property "formNoValidate" with the proper type +PASS HTMLInputElement interface: createInput("month") must inherit property "formTarget" with the proper type +PASS HTMLInputElement interface: createInput("month") must inherit property "height" with the proper type +PASS HTMLInputElement interface: createInput("month") must inherit property "indeterminate" with the proper type +PASS HTMLInputElement interface: createInput("month") must inherit property "list" with the proper type +PASS HTMLInputElement interface: createInput("month") must inherit property "max" with the proper type +PASS HTMLInputElement interface: createInput("month") must inherit property "maxLength" with the proper type +PASS HTMLInputElement interface: createInput("month") must inherit property "min" with the proper type +PASS HTMLInputElement interface: createInput("month") must inherit property "minLength" with the proper type +PASS HTMLInputElement interface: createInput("month") must inherit property "multiple" with the proper type +PASS HTMLInputElement interface: createInput("month") must inherit property "name" with the proper type +PASS HTMLInputElement interface: createInput("month") must inherit property "pattern" with the proper type +PASS HTMLInputElement interface: createInput("month") must inherit property "placeholder" with the proper type +PASS HTMLInputElement interface: createInput("month") must inherit property "readOnly" with the proper type +PASS HTMLInputElement interface: createInput("month") must inherit property "required" with the proper type +PASS HTMLInputElement interface: createInput("month") must inherit property "size" with the proper type +PASS HTMLInputElement interface: createInput("month") must inherit property "src" with the proper type +PASS HTMLInputElement interface: createInput("month") must inherit property "step" with the proper type +PASS HTMLInputElement interface: createInput("month") must inherit property "type" with the proper type +PASS HTMLInputElement interface: createInput("month") must inherit property "defaultValue" with the proper type +PASS HTMLInputElement interface: createInput("month") must inherit property "value" with the proper type +PASS HTMLInputElement interface: createInput("month") must inherit property "valueAsDate" with the proper type +PASS HTMLInputElement interface: createInput("month") must inherit property "valueAsNumber" with the proper type +PASS HTMLInputElement interface: createInput("month") must inherit property "width" with the proper type +PASS HTMLInputElement interface: createInput("month") must inherit property "stepUp(optional long)" with the proper type +PASS HTMLInputElement interface: calling stepUp(optional long) on createInput("month") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("month") must inherit property "stepDown(optional long)" with the proper type +PASS HTMLInputElement interface: calling stepDown(optional long) on createInput("month") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("month") must inherit property "willValidate" with the proper type +PASS HTMLInputElement interface: createInput("month") must inherit property "validity" with the proper type +PASS HTMLInputElement interface: createInput("month") must inherit property "validationMessage" with the proper type +PASS HTMLInputElement interface: createInput("month") must inherit property "checkValidity()" with the proper type +PASS HTMLInputElement interface: createInput("month") must inherit property "reportValidity()" with the proper type +PASS HTMLInputElement interface: createInput("month") must inherit property "setCustomValidity(DOMString)" with the proper type +PASS HTMLInputElement interface: calling setCustomValidity(DOMString) on createInput("month") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("month") must inherit property "labels" with the proper type +PASS HTMLInputElement interface: createInput("month") must inherit property "select()" with the proper type +PASS HTMLInputElement interface: createInput("month") must inherit property "selectionStart" with the proper type +PASS HTMLInputElement interface: createInput("month") must inherit property "selectionEnd" with the proper type +PASS HTMLInputElement interface: createInput("month") must inherit property "selectionDirection" with the proper type +PASS HTMLInputElement interface: createInput("month") must inherit property "setRangeText(DOMString)" with the proper type +PASS HTMLInputElement interface: calling setRangeText(DOMString) on createInput("month") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("month") must inherit property "setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode)" with the proper type +PASS HTMLInputElement interface: calling setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode) on createInput("month") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("month") must inherit property "setSelectionRange(unsigned long, unsigned long, optional DOMString)" with the proper type +PASS HTMLInputElement interface: calling setSelectionRange(unsigned long, unsigned long, optional DOMString) on createInput("month") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("month") must inherit property "align" with the proper type +PASS HTMLInputElement interface: createInput("month") must inherit property "useMap" with the proper type +PASS HTMLInputElement must be primary interface of createInput("week") +PASS Stringification of createInput("week") +PASS HTMLInputElement interface: createInput("week") must inherit property "accept" with the proper type +PASS HTMLInputElement interface: createInput("week") must inherit property "alt" with the proper type +PASS HTMLInputElement interface: createInput("week") must inherit property "autocomplete" with the proper type +PASS HTMLInputElement interface: createInput("week") must inherit property "defaultChecked" with the proper type +PASS HTMLInputElement interface: createInput("week") must inherit property "checked" with the proper type +PASS HTMLInputElement interface: createInput("week") must inherit property "dirName" with the proper type +PASS HTMLInputElement interface: createInput("week") must inherit property "disabled" with the proper type +PASS HTMLInputElement interface: createInput("week") must inherit property "form" with the proper type +PASS HTMLInputElement interface: createInput("week") must inherit property "files" with the proper type +PASS HTMLInputElement interface: createInput("week") must inherit property "formAction" with the proper type +PASS HTMLInputElement interface: createInput("week") must inherit property "formEnctype" with the proper type +PASS HTMLInputElement interface: createInput("week") must inherit property "formMethod" with the proper type +PASS HTMLInputElement interface: createInput("week") must inherit property "formNoValidate" with the proper type +PASS HTMLInputElement interface: createInput("week") must inherit property "formTarget" with the proper type +PASS HTMLInputElement interface: createInput("week") must inherit property "height" with the proper type +PASS HTMLInputElement interface: createInput("week") must inherit property "indeterminate" with the proper type +PASS HTMLInputElement interface: createInput("week") must inherit property "list" with the proper type +PASS HTMLInputElement interface: createInput("week") must inherit property "max" with the proper type +PASS HTMLInputElement interface: createInput("week") must inherit property "maxLength" with the proper type +PASS HTMLInputElement interface: createInput("week") must inherit property "min" with the proper type +PASS HTMLInputElement interface: createInput("week") must inherit property "minLength" with the proper type +PASS HTMLInputElement interface: createInput("week") must inherit property "multiple" with the proper type +PASS HTMLInputElement interface: createInput("week") must inherit property "name" with the proper type +PASS HTMLInputElement interface: createInput("week") must inherit property "pattern" with the proper type +PASS HTMLInputElement interface: createInput("week") must inherit property "placeholder" with the proper type +PASS HTMLInputElement interface: createInput("week") must inherit property "readOnly" with the proper type +PASS HTMLInputElement interface: createInput("week") must inherit property "required" with the proper type +PASS HTMLInputElement interface: createInput("week") must inherit property "size" with the proper type +PASS HTMLInputElement interface: createInput("week") must inherit property "src" with the proper type +PASS HTMLInputElement interface: createInput("week") must inherit property "step" with the proper type +PASS HTMLInputElement interface: createInput("week") must inherit property "type" with the proper type +PASS HTMLInputElement interface: createInput("week") must inherit property "defaultValue" with the proper type +PASS HTMLInputElement interface: createInput("week") must inherit property "value" with the proper type +PASS HTMLInputElement interface: createInput("week") must inherit property "valueAsDate" with the proper type +PASS HTMLInputElement interface: createInput("week") must inherit property "valueAsNumber" with the proper type +PASS HTMLInputElement interface: createInput("week") must inherit property "width" with the proper type +PASS HTMLInputElement interface: createInput("week") must inherit property "stepUp(optional long)" with the proper type +PASS HTMLInputElement interface: calling stepUp(optional long) on createInput("week") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("week") must inherit property "stepDown(optional long)" with the proper type +PASS HTMLInputElement interface: calling stepDown(optional long) on createInput("week") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("week") must inherit property "willValidate" with the proper type +PASS HTMLInputElement interface: createInput("week") must inherit property "validity" with the proper type +PASS HTMLInputElement interface: createInput("week") must inherit property "validationMessage" with the proper type +PASS HTMLInputElement interface: createInput("week") must inherit property "checkValidity()" with the proper type +PASS HTMLInputElement interface: createInput("week") must inherit property "reportValidity()" with the proper type +PASS HTMLInputElement interface: createInput("week") must inherit property "setCustomValidity(DOMString)" with the proper type +PASS HTMLInputElement interface: calling setCustomValidity(DOMString) on createInput("week") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("week") must inherit property "labels" with the proper type +PASS HTMLInputElement interface: createInput("week") must inherit property "select()" with the proper type +PASS HTMLInputElement interface: createInput("week") must inherit property "selectionStart" with the proper type +PASS HTMLInputElement interface: createInput("week") must inherit property "selectionEnd" with the proper type +PASS HTMLInputElement interface: createInput("week") must inherit property "selectionDirection" with the proper type +PASS HTMLInputElement interface: createInput("week") must inherit property "setRangeText(DOMString)" with the proper type +PASS HTMLInputElement interface: calling setRangeText(DOMString) on createInput("week") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("week") must inherit property "setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode)" with the proper type +PASS HTMLInputElement interface: calling setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode) on createInput("week") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("week") must inherit property "setSelectionRange(unsigned long, unsigned long, optional DOMString)" with the proper type +PASS HTMLInputElement interface: calling setSelectionRange(unsigned long, unsigned long, optional DOMString) on createInput("week") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("week") must inherit property "align" with the proper type +PASS HTMLInputElement interface: createInput("week") must inherit property "useMap" with the proper type +PASS HTMLInputElement must be primary interface of createInput("time") +PASS Stringification of createInput("time") +PASS HTMLInputElement interface: createInput("time") must inherit property "accept" with the proper type +PASS HTMLInputElement interface: createInput("time") must inherit property "alt" with the proper type +PASS HTMLInputElement interface: createInput("time") must inherit property "autocomplete" with the proper type +PASS HTMLInputElement interface: createInput("time") must inherit property "defaultChecked" with the proper type +PASS HTMLInputElement interface: createInput("time") must inherit property "checked" with the proper type +PASS HTMLInputElement interface: createInput("time") must inherit property "dirName" with the proper type +PASS HTMLInputElement interface: createInput("time") must inherit property "disabled" with the proper type +PASS HTMLInputElement interface: createInput("time") must inherit property "form" with the proper type +PASS HTMLInputElement interface: createInput("time") must inherit property "files" with the proper type +PASS HTMLInputElement interface: createInput("time") must inherit property "formAction" with the proper type +PASS HTMLInputElement interface: createInput("time") must inherit property "formEnctype" with the proper type +PASS HTMLInputElement interface: createInput("time") must inherit property "formMethod" with the proper type +PASS HTMLInputElement interface: createInput("time") must inherit property "formNoValidate" with the proper type +PASS HTMLInputElement interface: createInput("time") must inherit property "formTarget" with the proper type +PASS HTMLInputElement interface: createInput("time") must inherit property "height" with the proper type +PASS HTMLInputElement interface: createInput("time") must inherit property "indeterminate" with the proper type +PASS HTMLInputElement interface: createInput("time") must inherit property "list" with the proper type +PASS HTMLInputElement interface: createInput("time") must inherit property "max" with the proper type +PASS HTMLInputElement interface: createInput("time") must inherit property "maxLength" with the proper type +PASS HTMLInputElement interface: createInput("time") must inherit property "min" with the proper type +PASS HTMLInputElement interface: createInput("time") must inherit property "minLength" with the proper type +PASS HTMLInputElement interface: createInput("time") must inherit property "multiple" with the proper type +PASS HTMLInputElement interface: createInput("time") must inherit property "name" with the proper type +PASS HTMLInputElement interface: createInput("time") must inherit property "pattern" with the proper type +PASS HTMLInputElement interface: createInput("time") must inherit property "placeholder" with the proper type +PASS HTMLInputElement interface: createInput("time") must inherit property "readOnly" with the proper type +PASS HTMLInputElement interface: createInput("time") must inherit property "required" with the proper type +PASS HTMLInputElement interface: createInput("time") must inherit property "size" with the proper type +PASS HTMLInputElement interface: createInput("time") must inherit property "src" with the proper type +PASS HTMLInputElement interface: createInput("time") must inherit property "step" with the proper type +PASS HTMLInputElement interface: createInput("time") must inherit property "type" with the proper type +PASS HTMLInputElement interface: createInput("time") must inherit property "defaultValue" with the proper type +PASS HTMLInputElement interface: createInput("time") must inherit property "value" with the proper type +PASS HTMLInputElement interface: createInput("time") must inherit property "valueAsDate" with the proper type +PASS HTMLInputElement interface: createInput("time") must inherit property "valueAsNumber" with the proper type +PASS HTMLInputElement interface: createInput("time") must inherit property "width" with the proper type +PASS HTMLInputElement interface: createInput("time") must inherit property "stepUp(optional long)" with the proper type +PASS HTMLInputElement interface: calling stepUp(optional long) on createInput("time") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("time") must inherit property "stepDown(optional long)" with the proper type +PASS HTMLInputElement interface: calling stepDown(optional long) on createInput("time") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("time") must inherit property "willValidate" with the proper type +PASS HTMLInputElement interface: createInput("time") must inherit property "validity" with the proper type +PASS HTMLInputElement interface: createInput("time") must inherit property "validationMessage" with the proper type +PASS HTMLInputElement interface: createInput("time") must inherit property "checkValidity()" with the proper type +PASS HTMLInputElement interface: createInput("time") must inherit property "reportValidity()" with the proper type +PASS HTMLInputElement interface: createInput("time") must inherit property "setCustomValidity(DOMString)" with the proper type +PASS HTMLInputElement interface: calling setCustomValidity(DOMString) on createInput("time") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("time") must inherit property "labels" with the proper type +PASS HTMLInputElement interface: createInput("time") must inherit property "select()" with the proper type +PASS HTMLInputElement interface: createInput("time") must inherit property "selectionStart" with the proper type +PASS HTMLInputElement interface: createInput("time") must inherit property "selectionEnd" with the proper type +PASS HTMLInputElement interface: createInput("time") must inherit property "selectionDirection" with the proper type +PASS HTMLInputElement interface: createInput("time") must inherit property "setRangeText(DOMString)" with the proper type +PASS HTMLInputElement interface: calling setRangeText(DOMString) on createInput("time") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("time") must inherit property "setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode)" with the proper type +PASS HTMLInputElement interface: calling setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode) on createInput("time") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("time") must inherit property "setSelectionRange(unsigned long, unsigned long, optional DOMString)" with the proper type +PASS HTMLInputElement interface: calling setSelectionRange(unsigned long, unsigned long, optional DOMString) on createInput("time") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("time") must inherit property "align" with the proper type +PASS HTMLInputElement interface: createInput("time") must inherit property "useMap" with the proper type +PASS HTMLInputElement must be primary interface of createInput("datetime-local") +PASS Stringification of createInput("datetime-local") +PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "accept" with the proper type +PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "alt" with the proper type +PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "autocomplete" with the proper type +PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "defaultChecked" with the proper type +PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "checked" with the proper type +PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "dirName" with the proper type +PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "disabled" with the proper type +PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "form" with the proper type +PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "files" with the proper type +PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "formAction" with the proper type +PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "formEnctype" with the proper type +PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "formMethod" with the proper type +PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "formNoValidate" with the proper type +PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "formTarget" with the proper type +PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "height" with the proper type +PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "indeterminate" with the proper type +PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "list" with the proper type +PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "max" with the proper type +PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "maxLength" with the proper type +PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "min" with the proper type +PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "minLength" with the proper type +PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "multiple" with the proper type +PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "name" with the proper type +PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "pattern" with the proper type +PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "placeholder" with the proper type +PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "readOnly" with the proper type +PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "required" with the proper type +PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "size" with the proper type +PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "src" with the proper type +PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "step" with the proper type +PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "type" with the proper type +PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "defaultValue" with the proper type +PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "value" with the proper type +PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "valueAsDate" with the proper type +PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "valueAsNumber" with the proper type +PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "width" with the proper type +PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "stepUp(optional long)" with the proper type +PASS HTMLInputElement interface: calling stepUp(optional long) on createInput("datetime-local") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "stepDown(optional long)" with the proper type +PASS HTMLInputElement interface: calling stepDown(optional long) on createInput("datetime-local") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "willValidate" with the proper type +PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "validity" with the proper type +PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "validationMessage" with the proper type +PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "checkValidity()" with the proper type +PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "reportValidity()" with the proper type +PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "setCustomValidity(DOMString)" with the proper type +PASS HTMLInputElement interface: calling setCustomValidity(DOMString) on createInput("datetime-local") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "labels" with the proper type +PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "select()" with the proper type +PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "selectionStart" with the proper type +PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "selectionEnd" with the proper type +PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "selectionDirection" with the proper type +PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "setRangeText(DOMString)" with the proper type +PASS HTMLInputElement interface: calling setRangeText(DOMString) on createInput("datetime-local") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode)" with the proper type +PASS HTMLInputElement interface: calling setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode) on createInput("datetime-local") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "setSelectionRange(unsigned long, unsigned long, optional DOMString)" with the proper type +PASS HTMLInputElement interface: calling setSelectionRange(unsigned long, unsigned long, optional DOMString) on createInput("datetime-local") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "align" with the proper type +PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "useMap" with the proper type +PASS HTMLInputElement must be primary interface of createInput("number") +PASS Stringification of createInput("number") +PASS HTMLInputElement interface: createInput("number") must inherit property "accept" with the proper type +PASS HTMLInputElement interface: createInput("number") must inherit property "alt" with the proper type +PASS HTMLInputElement interface: createInput("number") must inherit property "autocomplete" with the proper type +PASS HTMLInputElement interface: createInput("number") must inherit property "defaultChecked" with the proper type +PASS HTMLInputElement interface: createInput("number") must inherit property "checked" with the proper type +PASS HTMLInputElement interface: createInput("number") must inherit property "dirName" with the proper type +PASS HTMLInputElement interface: createInput("number") must inherit property "disabled" with the proper type +PASS HTMLInputElement interface: createInput("number") must inherit property "form" with the proper type +PASS HTMLInputElement interface: createInput("number") must inherit property "files" with the proper type +PASS HTMLInputElement interface: createInput("number") must inherit property "formAction" with the proper type +PASS HTMLInputElement interface: createInput("number") must inherit property "formEnctype" with the proper type +PASS HTMLInputElement interface: createInput("number") must inherit property "formMethod" with the proper type +PASS HTMLInputElement interface: createInput("number") must inherit property "formNoValidate" with the proper type +PASS HTMLInputElement interface: createInput("number") must inherit property "formTarget" with the proper type +PASS HTMLInputElement interface: createInput("number") must inherit property "height" with the proper type +PASS HTMLInputElement interface: createInput("number") must inherit property "indeterminate" with the proper type +PASS HTMLInputElement interface: createInput("number") must inherit property "list" with the proper type +PASS HTMLInputElement interface: createInput("number") must inherit property "max" with the proper type +PASS HTMLInputElement interface: createInput("number") must inherit property "maxLength" with the proper type +PASS HTMLInputElement interface: createInput("number") must inherit property "min" with the proper type +PASS HTMLInputElement interface: createInput("number") must inherit property "minLength" with the proper type +PASS HTMLInputElement interface: createInput("number") must inherit property "multiple" with the proper type +PASS HTMLInputElement interface: createInput("number") must inherit property "name" with the proper type +PASS HTMLInputElement interface: createInput("number") must inherit property "pattern" with the proper type +PASS HTMLInputElement interface: createInput("number") must inherit property "placeholder" with the proper type +PASS HTMLInputElement interface: createInput("number") must inherit property "readOnly" with the proper type +PASS HTMLInputElement interface: createInput("number") must inherit property "required" with the proper type +PASS HTMLInputElement interface: createInput("number") must inherit property "size" with the proper type +PASS HTMLInputElement interface: createInput("number") must inherit property "src" with the proper type +PASS HTMLInputElement interface: createInput("number") must inherit property "step" with the proper type +PASS HTMLInputElement interface: createInput("number") must inherit property "type" with the proper type +PASS HTMLInputElement interface: createInput("number") must inherit property "defaultValue" with the proper type +PASS HTMLInputElement interface: createInput("number") must inherit property "value" with the proper type +PASS HTMLInputElement interface: createInput("number") must inherit property "valueAsDate" with the proper type +PASS HTMLInputElement interface: createInput("number") must inherit property "valueAsNumber" with the proper type +PASS HTMLInputElement interface: createInput("number") must inherit property "width" with the proper type +PASS HTMLInputElement interface: createInput("number") must inherit property "stepUp(optional long)" with the proper type +PASS HTMLInputElement interface: calling stepUp(optional long) on createInput("number") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("number") must inherit property "stepDown(optional long)" with the proper type +PASS HTMLInputElement interface: calling stepDown(optional long) on createInput("number") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("number") must inherit property "willValidate" with the proper type +PASS HTMLInputElement interface: createInput("number") must inherit property "validity" with the proper type +PASS HTMLInputElement interface: createInput("number") must inherit property "validationMessage" with the proper type +PASS HTMLInputElement interface: createInput("number") must inherit property "checkValidity()" with the proper type +PASS HTMLInputElement interface: createInput("number") must inherit property "reportValidity()" with the proper type +PASS HTMLInputElement interface: createInput("number") must inherit property "setCustomValidity(DOMString)" with the proper type +PASS HTMLInputElement interface: calling setCustomValidity(DOMString) on createInput("number") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("number") must inherit property "labels" with the proper type +PASS HTMLInputElement interface: createInput("number") must inherit property "select()" with the proper type +PASS HTMLInputElement interface: createInput("number") must inherit property "selectionStart" with the proper type +PASS HTMLInputElement interface: createInput("number") must inherit property "selectionEnd" with the proper type +PASS HTMLInputElement interface: createInput("number") must inherit property "selectionDirection" with the proper type +PASS HTMLInputElement interface: createInput("number") must inherit property "setRangeText(DOMString)" with the proper type +PASS HTMLInputElement interface: calling setRangeText(DOMString) on createInput("number") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("number") must inherit property "setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode)" with the proper type +PASS HTMLInputElement interface: calling setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode) on createInput("number") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("number") must inherit property "setSelectionRange(unsigned long, unsigned long, optional DOMString)" with the proper type +PASS HTMLInputElement interface: calling setSelectionRange(unsigned long, unsigned long, optional DOMString) on createInput("number") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("number") must inherit property "align" with the proper type +PASS HTMLInputElement interface: createInput("number") must inherit property "useMap" with the proper type +PASS HTMLInputElement must be primary interface of createInput("range") +PASS Stringification of createInput("range") +PASS HTMLInputElement interface: createInput("range") must inherit property "accept" with the proper type +PASS HTMLInputElement interface: createInput("range") must inherit property "alt" with the proper type +PASS HTMLInputElement interface: createInput("range") must inherit property "autocomplete" with the proper type +PASS HTMLInputElement interface: createInput("range") must inherit property "defaultChecked" with the proper type +PASS HTMLInputElement interface: createInput("range") must inherit property "checked" with the proper type +PASS HTMLInputElement interface: createInput("range") must inherit property "dirName" with the proper type +PASS HTMLInputElement interface: createInput("range") must inherit property "disabled" with the proper type +PASS HTMLInputElement interface: createInput("range") must inherit property "form" with the proper type +PASS HTMLInputElement interface: createInput("range") must inherit property "files" with the proper type +PASS HTMLInputElement interface: createInput("range") must inherit property "formAction" with the proper type +PASS HTMLInputElement interface: createInput("range") must inherit property "formEnctype" with the proper type +PASS HTMLInputElement interface: createInput("range") must inherit property "formMethod" with the proper type +PASS HTMLInputElement interface: createInput("range") must inherit property "formNoValidate" with the proper type +PASS HTMLInputElement interface: createInput("range") must inherit property "formTarget" with the proper type +PASS HTMLInputElement interface: createInput("range") must inherit property "height" with the proper type +PASS HTMLInputElement interface: createInput("range") must inherit property "indeterminate" with the proper type +PASS HTMLInputElement interface: createInput("range") must inherit property "list" with the proper type +PASS HTMLInputElement interface: createInput("range") must inherit property "max" with the proper type +PASS HTMLInputElement interface: createInput("range") must inherit property "maxLength" with the proper type +PASS HTMLInputElement interface: createInput("range") must inherit property "min" with the proper type +PASS HTMLInputElement interface: createInput("range") must inherit property "minLength" with the proper type +PASS HTMLInputElement interface: createInput("range") must inherit property "multiple" with the proper type +PASS HTMLInputElement interface: createInput("range") must inherit property "name" with the proper type +PASS HTMLInputElement interface: createInput("range") must inherit property "pattern" with the proper type +PASS HTMLInputElement interface: createInput("range") must inherit property "placeholder" with the proper type +PASS HTMLInputElement interface: createInput("range") must inherit property "readOnly" with the proper type +PASS HTMLInputElement interface: createInput("range") must inherit property "required" with the proper type +PASS HTMLInputElement interface: createInput("range") must inherit property "size" with the proper type +PASS HTMLInputElement interface: createInput("range") must inherit property "src" with the proper type +PASS HTMLInputElement interface: createInput("range") must inherit property "step" with the proper type +PASS HTMLInputElement interface: createInput("range") must inherit property "type" with the proper type +PASS HTMLInputElement interface: createInput("range") must inherit property "defaultValue" with the proper type +PASS HTMLInputElement interface: createInput("range") must inherit property "value" with the proper type +PASS HTMLInputElement interface: createInput("range") must inherit property "valueAsDate" with the proper type +PASS HTMLInputElement interface: createInput("range") must inherit property "valueAsNumber" with the proper type +PASS HTMLInputElement interface: createInput("range") must inherit property "width" with the proper type +PASS HTMLInputElement interface: createInput("range") must inherit property "stepUp(optional long)" with the proper type +PASS HTMLInputElement interface: calling stepUp(optional long) on createInput("range") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("range") must inherit property "stepDown(optional long)" with the proper type +PASS HTMLInputElement interface: calling stepDown(optional long) on createInput("range") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("range") must inherit property "willValidate" with the proper type +PASS HTMLInputElement interface: createInput("range") must inherit property "validity" with the proper type +PASS HTMLInputElement interface: createInput("range") must inherit property "validationMessage" with the proper type +PASS HTMLInputElement interface: createInput("range") must inherit property "checkValidity()" with the proper type +PASS HTMLInputElement interface: createInput("range") must inherit property "reportValidity()" with the proper type +PASS HTMLInputElement interface: createInput("range") must inherit property "setCustomValidity(DOMString)" with the proper type +PASS HTMLInputElement interface: calling setCustomValidity(DOMString) on createInput("range") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("range") must inherit property "labels" with the proper type +PASS HTMLInputElement interface: createInput("range") must inherit property "select()" with the proper type +PASS HTMLInputElement interface: createInput("range") must inherit property "selectionStart" with the proper type +PASS HTMLInputElement interface: createInput("range") must inherit property "selectionEnd" with the proper type +PASS HTMLInputElement interface: createInput("range") must inherit property "selectionDirection" with the proper type +PASS HTMLInputElement interface: createInput("range") must inherit property "setRangeText(DOMString)" with the proper type +PASS HTMLInputElement interface: calling setRangeText(DOMString) on createInput("range") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("range") must inherit property "setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode)" with the proper type +PASS HTMLInputElement interface: calling setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode) on createInput("range") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("range") must inherit property "setSelectionRange(unsigned long, unsigned long, optional DOMString)" with the proper type +PASS HTMLInputElement interface: calling setSelectionRange(unsigned long, unsigned long, optional DOMString) on createInput("range") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("range") must inherit property "align" with the proper type +PASS HTMLInputElement interface: createInput("range") must inherit property "useMap" with the proper type +PASS HTMLInputElement must be primary interface of createInput("color") +PASS Stringification of createInput("color") +PASS HTMLInputElement interface: createInput("color") must inherit property "accept" with the proper type +PASS HTMLInputElement interface: createInput("color") must inherit property "alt" with the proper type +PASS HTMLInputElement interface: createInput("color") must inherit property "autocomplete" with the proper type +PASS HTMLInputElement interface: createInput("color") must inherit property "defaultChecked" with the proper type +PASS HTMLInputElement interface: createInput("color") must inherit property "checked" with the proper type +PASS HTMLInputElement interface: createInput("color") must inherit property "dirName" with the proper type +PASS HTMLInputElement interface: createInput("color") must inherit property "disabled" with the proper type +PASS HTMLInputElement interface: createInput("color") must inherit property "form" with the proper type +PASS HTMLInputElement interface: createInput("color") must inherit property "files" with the proper type +PASS HTMLInputElement interface: createInput("color") must inherit property "formAction" with the proper type +PASS HTMLInputElement interface: createInput("color") must inherit property "formEnctype" with the proper type +PASS HTMLInputElement interface: createInput("color") must inherit property "formMethod" with the proper type +PASS HTMLInputElement interface: createInput("color") must inherit property "formNoValidate" with the proper type +PASS HTMLInputElement interface: createInput("color") must inherit property "formTarget" with the proper type +PASS HTMLInputElement interface: createInput("color") must inherit property "height" with the proper type +PASS HTMLInputElement interface: createInput("color") must inherit property "indeterminate" with the proper type +PASS HTMLInputElement interface: createInput("color") must inherit property "list" with the proper type +PASS HTMLInputElement interface: createInput("color") must inherit property "max" with the proper type +PASS HTMLInputElement interface: createInput("color") must inherit property "maxLength" with the proper type +PASS HTMLInputElement interface: createInput("color") must inherit property "min" with the proper type +PASS HTMLInputElement interface: createInput("color") must inherit property "minLength" with the proper type +PASS HTMLInputElement interface: createInput("color") must inherit property "multiple" with the proper type +PASS HTMLInputElement interface: createInput("color") must inherit property "name" with the proper type +PASS HTMLInputElement interface: createInput("color") must inherit property "pattern" with the proper type +PASS HTMLInputElement interface: createInput("color") must inherit property "placeholder" with the proper type +PASS HTMLInputElement interface: createInput("color") must inherit property "readOnly" with the proper type +PASS HTMLInputElement interface: createInput("color") must inherit property "required" with the proper type +PASS HTMLInputElement interface: createInput("color") must inherit property "size" with the proper type +PASS HTMLInputElement interface: createInput("color") must inherit property "src" with the proper type +PASS HTMLInputElement interface: createInput("color") must inherit property "step" with the proper type +PASS HTMLInputElement interface: createInput("color") must inherit property "type" with the proper type +PASS HTMLInputElement interface: createInput("color") must inherit property "defaultValue" with the proper type +PASS HTMLInputElement interface: createInput("color") must inherit property "value" with the proper type +PASS HTMLInputElement interface: createInput("color") must inherit property "valueAsDate" with the proper type +PASS HTMLInputElement interface: createInput("color") must inherit property "valueAsNumber" with the proper type +PASS HTMLInputElement interface: createInput("color") must inherit property "width" with the proper type +PASS HTMLInputElement interface: createInput("color") must inherit property "stepUp(optional long)" with the proper type +PASS HTMLInputElement interface: calling stepUp(optional long) on createInput("color") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("color") must inherit property "stepDown(optional long)" with the proper type +PASS HTMLInputElement interface: calling stepDown(optional long) on createInput("color") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("color") must inherit property "willValidate" with the proper type +PASS HTMLInputElement interface: createInput("color") must inherit property "validity" with the proper type +PASS HTMLInputElement interface: createInput("color") must inherit property "validationMessage" with the proper type +PASS HTMLInputElement interface: createInput("color") must inherit property "checkValidity()" with the proper type +PASS HTMLInputElement interface: createInput("color") must inherit property "reportValidity()" with the proper type +PASS HTMLInputElement interface: createInput("color") must inherit property "setCustomValidity(DOMString)" with the proper type +PASS HTMLInputElement interface: calling setCustomValidity(DOMString) on createInput("color") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("color") must inherit property "labels" with the proper type +PASS HTMLInputElement interface: createInput("color") must inherit property "select()" with the proper type +PASS HTMLInputElement interface: createInput("color") must inherit property "selectionStart" with the proper type +PASS HTMLInputElement interface: createInput("color") must inherit property "selectionEnd" with the proper type +PASS HTMLInputElement interface: createInput("color") must inherit property "selectionDirection" with the proper type +PASS HTMLInputElement interface: createInput("color") must inherit property "setRangeText(DOMString)" with the proper type +PASS HTMLInputElement interface: calling setRangeText(DOMString) on createInput("color") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("color") must inherit property "setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode)" with the proper type +PASS HTMLInputElement interface: calling setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode) on createInput("color") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("color") must inherit property "setSelectionRange(unsigned long, unsigned long, optional DOMString)" with the proper type +PASS HTMLInputElement interface: calling setSelectionRange(unsigned long, unsigned long, optional DOMString) on createInput("color") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("color") must inherit property "align" with the proper type +PASS HTMLInputElement interface: createInput("color") must inherit property "useMap" with the proper type +PASS HTMLInputElement must be primary interface of createInput("checkbox") +PASS Stringification of createInput("checkbox") +PASS HTMLInputElement interface: createInput("checkbox") must inherit property "accept" with the proper type +PASS HTMLInputElement interface: createInput("checkbox") must inherit property "alt" with the proper type +PASS HTMLInputElement interface: createInput("checkbox") must inherit property "autocomplete" with the proper type +PASS HTMLInputElement interface: createInput("checkbox") must inherit property "defaultChecked" with the proper type +PASS HTMLInputElement interface: createInput("checkbox") must inherit property "checked" with the proper type +PASS HTMLInputElement interface: createInput("checkbox") must inherit property "dirName" with the proper type +PASS HTMLInputElement interface: createInput("checkbox") must inherit property "disabled" with the proper type +PASS HTMLInputElement interface: createInput("checkbox") must inherit property "form" with the proper type +PASS HTMLInputElement interface: createInput("checkbox") must inherit property "files" with the proper type +PASS HTMLInputElement interface: createInput("checkbox") must inherit property "formAction" with the proper type +PASS HTMLInputElement interface: createInput("checkbox") must inherit property "formEnctype" with the proper type +PASS HTMLInputElement interface: createInput("checkbox") must inherit property "formMethod" with the proper type +PASS HTMLInputElement interface: createInput("checkbox") must inherit property "formNoValidate" with the proper type +PASS HTMLInputElement interface: createInput("checkbox") must inherit property "formTarget" with the proper type +PASS HTMLInputElement interface: createInput("checkbox") must inherit property "height" with the proper type +PASS HTMLInputElement interface: createInput("checkbox") must inherit property "indeterminate" with the proper type +PASS HTMLInputElement interface: createInput("checkbox") must inherit property "list" with the proper type +PASS HTMLInputElement interface: createInput("checkbox") must inherit property "max" with the proper type +PASS HTMLInputElement interface: createInput("checkbox") must inherit property "maxLength" with the proper type +PASS HTMLInputElement interface: createInput("checkbox") must inherit property "min" with the proper type +PASS HTMLInputElement interface: createInput("checkbox") must inherit property "minLength" with the proper type +PASS HTMLInputElement interface: createInput("checkbox") must inherit property "multiple" with the proper type +PASS HTMLInputElement interface: createInput("checkbox") must inherit property "name" with the proper type +PASS HTMLInputElement interface: createInput("checkbox") must inherit property "pattern" with the proper type +PASS HTMLInputElement interface: createInput("checkbox") must inherit property "placeholder" with the proper type +PASS HTMLInputElement interface: createInput("checkbox") must inherit property "readOnly" with the proper type +PASS HTMLInputElement interface: createInput("checkbox") must inherit property "required" with the proper type +PASS HTMLInputElement interface: createInput("checkbox") must inherit property "size" with the proper type +PASS HTMLInputElement interface: createInput("checkbox") must inherit property "src" with the proper type +PASS HTMLInputElement interface: createInput("checkbox") must inherit property "step" with the proper type +PASS HTMLInputElement interface: createInput("checkbox") must inherit property "type" with the proper type +PASS HTMLInputElement interface: createInput("checkbox") must inherit property "defaultValue" with the proper type +PASS HTMLInputElement interface: createInput("checkbox") must inherit property "value" with the proper type +PASS HTMLInputElement interface: createInput("checkbox") must inherit property "valueAsDate" with the proper type +PASS HTMLInputElement interface: createInput("checkbox") must inherit property "valueAsNumber" with the proper type +PASS HTMLInputElement interface: createInput("checkbox") must inherit property "width" with the proper type +PASS HTMLInputElement interface: createInput("checkbox") must inherit property "stepUp(optional long)" with the proper type +PASS HTMLInputElement interface: calling stepUp(optional long) on createInput("checkbox") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("checkbox") must inherit property "stepDown(optional long)" with the proper type +PASS HTMLInputElement interface: calling stepDown(optional long) on createInput("checkbox") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("checkbox") must inherit property "willValidate" with the proper type +PASS HTMLInputElement interface: createInput("checkbox") must inherit property "validity" with the proper type +PASS HTMLInputElement interface: createInput("checkbox") must inherit property "validationMessage" with the proper type +PASS HTMLInputElement interface: createInput("checkbox") must inherit property "checkValidity()" with the proper type +PASS HTMLInputElement interface: createInput("checkbox") must inherit property "reportValidity()" with the proper type +PASS HTMLInputElement interface: createInput("checkbox") must inherit property "setCustomValidity(DOMString)" with the proper type +PASS HTMLInputElement interface: calling setCustomValidity(DOMString) on createInput("checkbox") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("checkbox") must inherit property "labels" with the proper type +PASS HTMLInputElement interface: createInput("checkbox") must inherit property "select()" with the proper type +PASS HTMLInputElement interface: createInput("checkbox") must inherit property "selectionStart" with the proper type +PASS HTMLInputElement interface: createInput("checkbox") must inherit property "selectionEnd" with the proper type +PASS HTMLInputElement interface: createInput("checkbox") must inherit property "selectionDirection" with the proper type +PASS HTMLInputElement interface: createInput("checkbox") must inherit property "setRangeText(DOMString)" with the proper type +PASS HTMLInputElement interface: calling setRangeText(DOMString) on createInput("checkbox") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("checkbox") must inherit property "setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode)" with the proper type +PASS HTMLInputElement interface: calling setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode) on createInput("checkbox") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("checkbox") must inherit property "setSelectionRange(unsigned long, unsigned long, optional DOMString)" with the proper type +PASS HTMLInputElement interface: calling setSelectionRange(unsigned long, unsigned long, optional DOMString) on createInput("checkbox") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("checkbox") must inherit property "align" with the proper type +PASS HTMLInputElement interface: createInput("checkbox") must inherit property "useMap" with the proper type +PASS HTMLInputElement must be primary interface of createInput("radio") +PASS Stringification of createInput("radio") +PASS HTMLInputElement interface: createInput("radio") must inherit property "accept" with the proper type +PASS HTMLInputElement interface: createInput("radio") must inherit property "alt" with the proper type +PASS HTMLInputElement interface: createInput("radio") must inherit property "autocomplete" with the proper type +PASS HTMLInputElement interface: createInput("radio") must inherit property "defaultChecked" with the proper type +PASS HTMLInputElement interface: createInput("radio") must inherit property "checked" with the proper type +PASS HTMLInputElement interface: createInput("radio") must inherit property "dirName" with the proper type +PASS HTMLInputElement interface: createInput("radio") must inherit property "disabled" with the proper type +PASS HTMLInputElement interface: createInput("radio") must inherit property "form" with the proper type +PASS HTMLInputElement interface: createInput("radio") must inherit property "files" with the proper type +PASS HTMLInputElement interface: createInput("radio") must inherit property "formAction" with the proper type +PASS HTMLInputElement interface: createInput("radio") must inherit property "formEnctype" with the proper type +PASS HTMLInputElement interface: createInput("radio") must inherit property "formMethod" with the proper type +PASS HTMLInputElement interface: createInput("radio") must inherit property "formNoValidate" with the proper type +PASS HTMLInputElement interface: createInput("radio") must inherit property "formTarget" with the proper type +PASS HTMLInputElement interface: createInput("radio") must inherit property "height" with the proper type +PASS HTMLInputElement interface: createInput("radio") must inherit property "indeterminate" with the proper type +PASS HTMLInputElement interface: createInput("radio") must inherit property "list" with the proper type +PASS HTMLInputElement interface: createInput("radio") must inherit property "max" with the proper type +PASS HTMLInputElement interface: createInput("radio") must inherit property "maxLength" with the proper type +PASS HTMLInputElement interface: createInput("radio") must inherit property "min" with the proper type +PASS HTMLInputElement interface: createInput("radio") must inherit property "minLength" with the proper type +PASS HTMLInputElement interface: createInput("radio") must inherit property "multiple" with the proper type +PASS HTMLInputElement interface: createInput("radio") must inherit property "name" with the proper type +PASS HTMLInputElement interface: createInput("radio") must inherit property "pattern" with the proper type +PASS HTMLInputElement interface: createInput("radio") must inherit property "placeholder" with the proper type +PASS HTMLInputElement interface: createInput("radio") must inherit property "readOnly" with the proper type +PASS HTMLInputElement interface: createInput("radio") must inherit property "required" with the proper type +PASS HTMLInputElement interface: createInput("radio") must inherit property "size" with the proper type +PASS HTMLInputElement interface: createInput("radio") must inherit property "src" with the proper type +PASS HTMLInputElement interface: createInput("radio") must inherit property "step" with the proper type +PASS HTMLInputElement interface: createInput("radio") must inherit property "type" with the proper type +PASS HTMLInputElement interface: createInput("radio") must inherit property "defaultValue" with the proper type +PASS HTMLInputElement interface: createInput("radio") must inherit property "value" with the proper type +PASS HTMLInputElement interface: createInput("radio") must inherit property "valueAsDate" with the proper type +PASS HTMLInputElement interface: createInput("radio") must inherit property "valueAsNumber" with the proper type +PASS HTMLInputElement interface: createInput("radio") must inherit property "width" with the proper type +PASS HTMLInputElement interface: createInput("radio") must inherit property "stepUp(optional long)" with the proper type +PASS HTMLInputElement interface: calling stepUp(optional long) on createInput("radio") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("radio") must inherit property "stepDown(optional long)" with the proper type +PASS HTMLInputElement interface: calling stepDown(optional long) on createInput("radio") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("radio") must inherit property "willValidate" with the proper type +PASS HTMLInputElement interface: createInput("radio") must inherit property "validity" with the proper type +PASS HTMLInputElement interface: createInput("radio") must inherit property "validationMessage" with the proper type +PASS HTMLInputElement interface: createInput("radio") must inherit property "checkValidity()" with the proper type +PASS HTMLInputElement interface: createInput("radio") must inherit property "reportValidity()" with the proper type +PASS HTMLInputElement interface: createInput("radio") must inherit property "setCustomValidity(DOMString)" with the proper type +PASS HTMLInputElement interface: calling setCustomValidity(DOMString) on createInput("radio") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("radio") must inherit property "labels" with the proper type +PASS HTMLInputElement interface: createInput("radio") must inherit property "select()" with the proper type +PASS HTMLInputElement interface: createInput("radio") must inherit property "selectionStart" with the proper type +PASS HTMLInputElement interface: createInput("radio") must inherit property "selectionEnd" with the proper type +PASS HTMLInputElement interface: createInput("radio") must inherit property "selectionDirection" with the proper type +PASS HTMLInputElement interface: createInput("radio") must inherit property "setRangeText(DOMString)" with the proper type +PASS HTMLInputElement interface: calling setRangeText(DOMString) on createInput("radio") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("radio") must inherit property "setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode)" with the proper type +PASS HTMLInputElement interface: calling setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode) on createInput("radio") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("radio") must inherit property "setSelectionRange(unsigned long, unsigned long, optional DOMString)" with the proper type +PASS HTMLInputElement interface: calling setSelectionRange(unsigned long, unsigned long, optional DOMString) on createInput("radio") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("radio") must inherit property "align" with the proper type +PASS HTMLInputElement interface: createInput("radio") must inherit property "useMap" with the proper type +PASS HTMLInputElement must be primary interface of createInput("file") +PASS Stringification of createInput("file") +PASS HTMLInputElement interface: createInput("file") must inherit property "accept" with the proper type +PASS HTMLInputElement interface: createInput("file") must inherit property "alt" with the proper type +PASS HTMLInputElement interface: createInput("file") must inherit property "autocomplete" with the proper type +PASS HTMLInputElement interface: createInput("file") must inherit property "defaultChecked" with the proper type +PASS HTMLInputElement interface: createInput("file") must inherit property "checked" with the proper type +PASS HTMLInputElement interface: createInput("file") must inherit property "dirName" with the proper type +PASS HTMLInputElement interface: createInput("file") must inherit property "disabled" with the proper type +PASS HTMLInputElement interface: createInput("file") must inherit property "form" with the proper type +PASS HTMLInputElement interface: createInput("file") must inherit property "files" with the proper type +PASS HTMLInputElement interface: createInput("file") must inherit property "formAction" with the proper type +PASS HTMLInputElement interface: createInput("file") must inherit property "formEnctype" with the proper type +PASS HTMLInputElement interface: createInput("file") must inherit property "formMethod" with the proper type +PASS HTMLInputElement interface: createInput("file") must inherit property "formNoValidate" with the proper type +PASS HTMLInputElement interface: createInput("file") must inherit property "formTarget" with the proper type +PASS HTMLInputElement interface: createInput("file") must inherit property "height" with the proper type +PASS HTMLInputElement interface: createInput("file") must inherit property "indeterminate" with the proper type +PASS HTMLInputElement interface: createInput("file") must inherit property "list" with the proper type +PASS HTMLInputElement interface: createInput("file") must inherit property "max" with the proper type +PASS HTMLInputElement interface: createInput("file") must inherit property "maxLength" with the proper type +PASS HTMLInputElement interface: createInput("file") must inherit property "min" with the proper type +PASS HTMLInputElement interface: createInput("file") must inherit property "minLength" with the proper type +PASS HTMLInputElement interface: createInput("file") must inherit property "multiple" with the proper type +PASS HTMLInputElement interface: createInput("file") must inherit property "name" with the proper type +PASS HTMLInputElement interface: createInput("file") must inherit property "pattern" with the proper type +PASS HTMLInputElement interface: createInput("file") must inherit property "placeholder" with the proper type +PASS HTMLInputElement interface: createInput("file") must inherit property "readOnly" with the proper type +PASS HTMLInputElement interface: createInput("file") must inherit property "required" with the proper type +PASS HTMLInputElement interface: createInput("file") must inherit property "size" with the proper type +PASS HTMLInputElement interface: createInput("file") must inherit property "src" with the proper type +PASS HTMLInputElement interface: createInput("file") must inherit property "step" with the proper type +PASS HTMLInputElement interface: createInput("file") must inherit property "type" with the proper type +PASS HTMLInputElement interface: createInput("file") must inherit property "defaultValue" with the proper type +PASS HTMLInputElement interface: createInput("file") must inherit property "value" with the proper type +PASS HTMLInputElement interface: createInput("file") must inherit property "valueAsDate" with the proper type +PASS HTMLInputElement interface: createInput("file") must inherit property "valueAsNumber" with the proper type +PASS HTMLInputElement interface: createInput("file") must inherit property "width" with the proper type +PASS HTMLInputElement interface: createInput("file") must inherit property "stepUp(optional long)" with the proper type +PASS HTMLInputElement interface: calling stepUp(optional long) on createInput("file") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("file") must inherit property "stepDown(optional long)" with the proper type +PASS HTMLInputElement interface: calling stepDown(optional long) on createInput("file") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("file") must inherit property "willValidate" with the proper type +PASS HTMLInputElement interface: createInput("file") must inherit property "validity" with the proper type +PASS HTMLInputElement interface: createInput("file") must inherit property "validationMessage" with the proper type +PASS HTMLInputElement interface: createInput("file") must inherit property "checkValidity()" with the proper type +PASS HTMLInputElement interface: createInput("file") must inherit property "reportValidity()" with the proper type +PASS HTMLInputElement interface: createInput("file") must inherit property "setCustomValidity(DOMString)" with the proper type +PASS HTMLInputElement interface: calling setCustomValidity(DOMString) on createInput("file") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("file") must inherit property "labels" with the proper type +PASS HTMLInputElement interface: createInput("file") must inherit property "select()" with the proper type +PASS HTMLInputElement interface: createInput("file") must inherit property "selectionStart" with the proper type +PASS HTMLInputElement interface: createInput("file") must inherit property "selectionEnd" with the proper type +PASS HTMLInputElement interface: createInput("file") must inherit property "selectionDirection" with the proper type +PASS HTMLInputElement interface: createInput("file") must inherit property "setRangeText(DOMString)" with the proper type +PASS HTMLInputElement interface: calling setRangeText(DOMString) on createInput("file") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("file") must inherit property "setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode)" with the proper type +PASS HTMLInputElement interface: calling setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode) on createInput("file") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("file") must inherit property "setSelectionRange(unsigned long, unsigned long, optional DOMString)" with the proper type +PASS HTMLInputElement interface: calling setSelectionRange(unsigned long, unsigned long, optional DOMString) on createInput("file") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("file") must inherit property "align" with the proper type +PASS HTMLInputElement interface: createInput("file") must inherit property "useMap" with the proper type +PASS HTMLInputElement must be primary interface of createInput("submit") +PASS Stringification of createInput("submit") +PASS HTMLInputElement interface: createInput("submit") must inherit property "accept" with the proper type +PASS HTMLInputElement interface: createInput("submit") must inherit property "alt" with the proper type +PASS HTMLInputElement interface: createInput("submit") must inherit property "autocomplete" with the proper type +PASS HTMLInputElement interface: createInput("submit") must inherit property "defaultChecked" with the proper type +PASS HTMLInputElement interface: createInput("submit") must inherit property "checked" with the proper type +PASS HTMLInputElement interface: createInput("submit") must inherit property "dirName" with the proper type +PASS HTMLInputElement interface: createInput("submit") must inherit property "disabled" with the proper type +PASS HTMLInputElement interface: createInput("submit") must inherit property "form" with the proper type +PASS HTMLInputElement interface: createInput("submit") must inherit property "files" with the proper type +PASS HTMLInputElement interface: createInput("submit") must inherit property "formAction" with the proper type +PASS HTMLInputElement interface: createInput("submit") must inherit property "formEnctype" with the proper type +PASS HTMLInputElement interface: createInput("submit") must inherit property "formMethod" with the proper type +PASS HTMLInputElement interface: createInput("submit") must inherit property "formNoValidate" with the proper type +PASS HTMLInputElement interface: createInput("submit") must inherit property "formTarget" with the proper type +PASS HTMLInputElement interface: createInput("submit") must inherit property "height" with the proper type +PASS HTMLInputElement interface: createInput("submit") must inherit property "indeterminate" with the proper type +PASS HTMLInputElement interface: createInput("submit") must inherit property "list" with the proper type +PASS HTMLInputElement interface: createInput("submit") must inherit property "max" with the proper type +PASS HTMLInputElement interface: createInput("submit") must inherit property "maxLength" with the proper type +PASS HTMLInputElement interface: createInput("submit") must inherit property "min" with the proper type +PASS HTMLInputElement interface: createInput("submit") must inherit property "minLength" with the proper type +PASS HTMLInputElement interface: createInput("submit") must inherit property "multiple" with the proper type +PASS HTMLInputElement interface: createInput("submit") must inherit property "name" with the proper type +PASS HTMLInputElement interface: createInput("submit") must inherit property "pattern" with the proper type +PASS HTMLInputElement interface: createInput("submit") must inherit property "placeholder" with the proper type +PASS HTMLInputElement interface: createInput("submit") must inherit property "readOnly" with the proper type +PASS HTMLInputElement interface: createInput("submit") must inherit property "required" with the proper type +PASS HTMLInputElement interface: createInput("submit") must inherit property "size" with the proper type +PASS HTMLInputElement interface: createInput("submit") must inherit property "src" with the proper type +PASS HTMLInputElement interface: createInput("submit") must inherit property "step" with the proper type +PASS HTMLInputElement interface: createInput("submit") must inherit property "type" with the proper type +PASS HTMLInputElement interface: createInput("submit") must inherit property "defaultValue" with the proper type +PASS HTMLInputElement interface: createInput("submit") must inherit property "value" with the proper type +PASS HTMLInputElement interface: createInput("submit") must inherit property "valueAsDate" with the proper type +PASS HTMLInputElement interface: createInput("submit") must inherit property "valueAsNumber" with the proper type +PASS HTMLInputElement interface: createInput("submit") must inherit property "width" with the proper type +PASS HTMLInputElement interface: createInput("submit") must inherit property "stepUp(optional long)" with the proper type +PASS HTMLInputElement interface: calling stepUp(optional long) on createInput("submit") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("submit") must inherit property "stepDown(optional long)" with the proper type +PASS HTMLInputElement interface: calling stepDown(optional long) on createInput("submit") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("submit") must inherit property "willValidate" with the proper type +PASS HTMLInputElement interface: createInput("submit") must inherit property "validity" with the proper type +PASS HTMLInputElement interface: createInput("submit") must inherit property "validationMessage" with the proper type +PASS HTMLInputElement interface: createInput("submit") must inherit property "checkValidity()" with the proper type +PASS HTMLInputElement interface: createInput("submit") must inherit property "reportValidity()" with the proper type +PASS HTMLInputElement interface: createInput("submit") must inherit property "setCustomValidity(DOMString)" with the proper type +PASS HTMLInputElement interface: calling setCustomValidity(DOMString) on createInput("submit") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("submit") must inherit property "labels" with the proper type +PASS HTMLInputElement interface: createInput("submit") must inherit property "select()" with the proper type +PASS HTMLInputElement interface: createInput("submit") must inherit property "selectionStart" with the proper type +PASS HTMLInputElement interface: createInput("submit") must inherit property "selectionEnd" with the proper type +PASS HTMLInputElement interface: createInput("submit") must inherit property "selectionDirection" with the proper type +PASS HTMLInputElement interface: createInput("submit") must inherit property "setRangeText(DOMString)" with the proper type +PASS HTMLInputElement interface: calling setRangeText(DOMString) on createInput("submit") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("submit") must inherit property "setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode)" with the proper type +PASS HTMLInputElement interface: calling setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode) on createInput("submit") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("submit") must inherit property "setSelectionRange(unsigned long, unsigned long, optional DOMString)" with the proper type +PASS HTMLInputElement interface: calling setSelectionRange(unsigned long, unsigned long, optional DOMString) on createInput("submit") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("submit") must inherit property "align" with the proper type +PASS HTMLInputElement interface: createInput("submit") must inherit property "useMap" with the proper type +PASS HTMLInputElement must be primary interface of createInput("image") +PASS Stringification of createInput("image") +PASS HTMLInputElement interface: createInput("image") must inherit property "accept" with the proper type +PASS HTMLInputElement interface: createInput("image") must inherit property "alt" with the proper type +PASS HTMLInputElement interface: createInput("image") must inherit property "autocomplete" with the proper type +PASS HTMLInputElement interface: createInput("image") must inherit property "defaultChecked" with the proper type +PASS HTMLInputElement interface: createInput("image") must inherit property "checked" with the proper type +PASS HTMLInputElement interface: createInput("image") must inherit property "dirName" with the proper type +PASS HTMLInputElement interface: createInput("image") must inherit property "disabled" with the proper type +PASS HTMLInputElement interface: createInput("image") must inherit property "form" with the proper type +PASS HTMLInputElement interface: createInput("image") must inherit property "files" with the proper type +PASS HTMLInputElement interface: createInput("image") must inherit property "formAction" with the proper type +PASS HTMLInputElement interface: createInput("image") must inherit property "formEnctype" with the proper type +PASS HTMLInputElement interface: createInput("image") must inherit property "formMethod" with the proper type +PASS HTMLInputElement interface: createInput("image") must inherit property "formNoValidate" with the proper type +PASS HTMLInputElement interface: createInput("image") must inherit property "formTarget" with the proper type +PASS HTMLInputElement interface: createInput("image") must inherit property "height" with the proper type +PASS HTMLInputElement interface: createInput("image") must inherit property "indeterminate" with the proper type +PASS HTMLInputElement interface: createInput("image") must inherit property "list" with the proper type +PASS HTMLInputElement interface: createInput("image") must inherit property "max" with the proper type +PASS HTMLInputElement interface: createInput("image") must inherit property "maxLength" with the proper type +PASS HTMLInputElement interface: createInput("image") must inherit property "min" with the proper type +PASS HTMLInputElement interface: createInput("image") must inherit property "minLength" with the proper type +PASS HTMLInputElement interface: createInput("image") must inherit property "multiple" with the proper type +PASS HTMLInputElement interface: createInput("image") must inherit property "name" with the proper type +PASS HTMLInputElement interface: createInput("image") must inherit property "pattern" with the proper type +PASS HTMLInputElement interface: createInput("image") must inherit property "placeholder" with the proper type +PASS HTMLInputElement interface: createInput("image") must inherit property "readOnly" with the proper type +PASS HTMLInputElement interface: createInput("image") must inherit property "required" with the proper type +PASS HTMLInputElement interface: createInput("image") must inherit property "size" with the proper type +PASS HTMLInputElement interface: createInput("image") must inherit property "src" with the proper type +PASS HTMLInputElement interface: createInput("image") must inherit property "step" with the proper type +PASS HTMLInputElement interface: createInput("image") must inherit property "type" with the proper type +PASS HTMLInputElement interface: createInput("image") must inherit property "defaultValue" with the proper type +PASS HTMLInputElement interface: createInput("image") must inherit property "value" with the proper type +PASS HTMLInputElement interface: createInput("image") must inherit property "valueAsDate" with the proper type +PASS HTMLInputElement interface: createInput("image") must inherit property "valueAsNumber" with the proper type +PASS HTMLInputElement interface: createInput("image") must inherit property "width" with the proper type +PASS HTMLInputElement interface: createInput("image") must inherit property "stepUp(optional long)" with the proper type +PASS HTMLInputElement interface: calling stepUp(optional long) on createInput("image") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("image") must inherit property "stepDown(optional long)" with the proper type +PASS HTMLInputElement interface: calling stepDown(optional long) on createInput("image") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("image") must inherit property "willValidate" with the proper type +PASS HTMLInputElement interface: createInput("image") must inherit property "validity" with the proper type +PASS HTMLInputElement interface: createInput("image") must inherit property "validationMessage" with the proper type +PASS HTMLInputElement interface: createInput("image") must inherit property "checkValidity()" with the proper type +PASS HTMLInputElement interface: createInput("image") must inherit property "reportValidity()" with the proper type +PASS HTMLInputElement interface: createInput("image") must inherit property "setCustomValidity(DOMString)" with the proper type +PASS HTMLInputElement interface: calling setCustomValidity(DOMString) on createInput("image") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("image") must inherit property "labels" with the proper type +PASS HTMLInputElement interface: createInput("image") must inherit property "select()" with the proper type +PASS HTMLInputElement interface: createInput("image") must inherit property "selectionStart" with the proper type +PASS HTMLInputElement interface: createInput("image") must inherit property "selectionEnd" with the proper type +PASS HTMLInputElement interface: createInput("image") must inherit property "selectionDirection" with the proper type +PASS HTMLInputElement interface: createInput("image") must inherit property "setRangeText(DOMString)" with the proper type +PASS HTMLInputElement interface: calling setRangeText(DOMString) on createInput("image") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("image") must inherit property "setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode)" with the proper type +PASS HTMLInputElement interface: calling setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode) on createInput("image") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("image") must inherit property "setSelectionRange(unsigned long, unsigned long, optional DOMString)" with the proper type +PASS HTMLInputElement interface: calling setSelectionRange(unsigned long, unsigned long, optional DOMString) on createInput("image") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("image") must inherit property "align" with the proper type +PASS HTMLInputElement interface: createInput("image") must inherit property "useMap" with the proper type +PASS HTMLInputElement must be primary interface of createInput("reset") +PASS Stringification of createInput("reset") +PASS HTMLInputElement interface: createInput("reset") must inherit property "accept" with the proper type +PASS HTMLInputElement interface: createInput("reset") must inherit property "alt" with the proper type +PASS HTMLInputElement interface: createInput("reset") must inherit property "autocomplete" with the proper type +PASS HTMLInputElement interface: createInput("reset") must inherit property "defaultChecked" with the proper type +PASS HTMLInputElement interface: createInput("reset") must inherit property "checked" with the proper type +PASS HTMLInputElement interface: createInput("reset") must inherit property "dirName" with the proper type +PASS HTMLInputElement interface: createInput("reset") must inherit property "disabled" with the proper type +PASS HTMLInputElement interface: createInput("reset") must inherit property "form" with the proper type +PASS HTMLInputElement interface: createInput("reset") must inherit property "files" with the proper type +PASS HTMLInputElement interface: createInput("reset") must inherit property "formAction" with the proper type +PASS HTMLInputElement interface: createInput("reset") must inherit property "formEnctype" with the proper type +PASS HTMLInputElement interface: createInput("reset") must inherit property "formMethod" with the proper type +PASS HTMLInputElement interface: createInput("reset") must inherit property "formNoValidate" with the proper type +PASS HTMLInputElement interface: createInput("reset") must inherit property "formTarget" with the proper type +PASS HTMLInputElement interface: createInput("reset") must inherit property "height" with the proper type +PASS HTMLInputElement interface: createInput("reset") must inherit property "indeterminate" with the proper type +PASS HTMLInputElement interface: createInput("reset") must inherit property "list" with the proper type +PASS HTMLInputElement interface: createInput("reset") must inherit property "max" with the proper type +PASS HTMLInputElement interface: createInput("reset") must inherit property "maxLength" with the proper type +PASS HTMLInputElement interface: createInput("reset") must inherit property "min" with the proper type +PASS HTMLInputElement interface: createInput("reset") must inherit property "minLength" with the proper type +PASS HTMLInputElement interface: createInput("reset") must inherit property "multiple" with the proper type +PASS HTMLInputElement interface: createInput("reset") must inherit property "name" with the proper type +PASS HTMLInputElement interface: createInput("reset") must inherit property "pattern" with the proper type +PASS HTMLInputElement interface: createInput("reset") must inherit property "placeholder" with the proper type +PASS HTMLInputElement interface: createInput("reset") must inherit property "readOnly" with the proper type +PASS HTMLInputElement interface: createInput("reset") must inherit property "required" with the proper type +PASS HTMLInputElement interface: createInput("reset") must inherit property "size" with the proper type +PASS HTMLInputElement interface: createInput("reset") must inherit property "src" with the proper type +PASS HTMLInputElement interface: createInput("reset") must inherit property "step" with the proper type +PASS HTMLInputElement interface: createInput("reset") must inherit property "type" with the proper type +PASS HTMLInputElement interface: createInput("reset") must inherit property "defaultValue" with the proper type +PASS HTMLInputElement interface: createInput("reset") must inherit property "value" with the proper type +PASS HTMLInputElement interface: createInput("reset") must inherit property "valueAsDate" with the proper type +PASS HTMLInputElement interface: createInput("reset") must inherit property "valueAsNumber" with the proper type +PASS HTMLInputElement interface: createInput("reset") must inherit property "width" with the proper type +PASS HTMLInputElement interface: createInput("reset") must inherit property "stepUp(optional long)" with the proper type +PASS HTMLInputElement interface: calling stepUp(optional long) on createInput("reset") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("reset") must inherit property "stepDown(optional long)" with the proper type +PASS HTMLInputElement interface: calling stepDown(optional long) on createInput("reset") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("reset") must inherit property "willValidate" with the proper type +PASS HTMLInputElement interface: createInput("reset") must inherit property "validity" with the proper type +PASS HTMLInputElement interface: createInput("reset") must inherit property "validationMessage" with the proper type +PASS HTMLInputElement interface: createInput("reset") must inherit property "checkValidity()" with the proper type +PASS HTMLInputElement interface: createInput("reset") must inherit property "reportValidity()" with the proper type +PASS HTMLInputElement interface: createInput("reset") must inherit property "setCustomValidity(DOMString)" with the proper type +PASS HTMLInputElement interface: calling setCustomValidity(DOMString) on createInput("reset") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("reset") must inherit property "labels" with the proper type +PASS HTMLInputElement interface: createInput("reset") must inherit property "select()" with the proper type +PASS HTMLInputElement interface: createInput("reset") must inherit property "selectionStart" with the proper type +PASS HTMLInputElement interface: createInput("reset") must inherit property "selectionEnd" with the proper type +PASS HTMLInputElement interface: createInput("reset") must inherit property "selectionDirection" with the proper type +PASS HTMLInputElement interface: createInput("reset") must inherit property "setRangeText(DOMString)" with the proper type +PASS HTMLInputElement interface: calling setRangeText(DOMString) on createInput("reset") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("reset") must inherit property "setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode)" with the proper type +PASS HTMLInputElement interface: calling setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode) on createInput("reset") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("reset") must inherit property "setSelectionRange(unsigned long, unsigned long, optional DOMString)" with the proper type +PASS HTMLInputElement interface: calling setSelectionRange(unsigned long, unsigned long, optional DOMString) on createInput("reset") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("reset") must inherit property "align" with the proper type +PASS HTMLInputElement interface: createInput("reset") must inherit property "useMap" with the proper type +PASS HTMLInputElement must be primary interface of createInput("button") +PASS Stringification of createInput("button") +PASS HTMLInputElement interface: createInput("button") must inherit property "accept" with the proper type +PASS HTMLInputElement interface: createInput("button") must inherit property "alt" with the proper type +PASS HTMLInputElement interface: createInput("button") must inherit property "autocomplete" with the proper type +PASS HTMLInputElement interface: createInput("button") must inherit property "defaultChecked" with the proper type +PASS HTMLInputElement interface: createInput("button") must inherit property "checked" with the proper type +PASS HTMLInputElement interface: createInput("button") must inherit property "dirName" with the proper type +PASS HTMLInputElement interface: createInput("button") must inherit property "disabled" with the proper type +PASS HTMLInputElement interface: createInput("button") must inherit property "form" with the proper type +PASS HTMLInputElement interface: createInput("button") must inherit property "files" with the proper type +PASS HTMLInputElement interface: createInput("button") must inherit property "formAction" with the proper type +PASS HTMLInputElement interface: createInput("button") must inherit property "formEnctype" with the proper type +PASS HTMLInputElement interface: createInput("button") must inherit property "formMethod" with the proper type +PASS HTMLInputElement interface: createInput("button") must inherit property "formNoValidate" with the proper type +PASS HTMLInputElement interface: createInput("button") must inherit property "formTarget" with the proper type +PASS HTMLInputElement interface: createInput("button") must inherit property "height" with the proper type +PASS HTMLInputElement interface: createInput("button") must inherit property "indeterminate" with the proper type +PASS HTMLInputElement interface: createInput("button") must inherit property "list" with the proper type +PASS HTMLInputElement interface: createInput("button") must inherit property "max" with the proper type +PASS HTMLInputElement interface: createInput("button") must inherit property "maxLength" with the proper type +PASS HTMLInputElement interface: createInput("button") must inherit property "min" with the proper type +PASS HTMLInputElement interface: createInput("button") must inherit property "minLength" with the proper type +PASS HTMLInputElement interface: createInput("button") must inherit property "multiple" with the proper type +PASS HTMLInputElement interface: createInput("button") must inherit property "name" with the proper type +PASS HTMLInputElement interface: createInput("button") must inherit property "pattern" with the proper type +PASS HTMLInputElement interface: createInput("button") must inherit property "placeholder" with the proper type +PASS HTMLInputElement interface: createInput("button") must inherit property "readOnly" with the proper type +PASS HTMLInputElement interface: createInput("button") must inherit property "required" with the proper type +PASS HTMLInputElement interface: createInput("button") must inherit property "size" with the proper type +PASS HTMLInputElement interface: createInput("button") must inherit property "src" with the proper type +PASS HTMLInputElement interface: createInput("button") must inherit property "step" with the proper type +PASS HTMLInputElement interface: createInput("button") must inherit property "type" with the proper type +PASS HTMLInputElement interface: createInput("button") must inherit property "defaultValue" with the proper type +PASS HTMLInputElement interface: createInput("button") must inherit property "value" with the proper type +PASS HTMLInputElement interface: createInput("button") must inherit property "valueAsDate" with the proper type +PASS HTMLInputElement interface: createInput("button") must inherit property "valueAsNumber" with the proper type +PASS HTMLInputElement interface: createInput("button") must inherit property "width" with the proper type +PASS HTMLInputElement interface: createInput("button") must inherit property "stepUp(optional long)" with the proper type +PASS HTMLInputElement interface: calling stepUp(optional long) on createInput("button") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("button") must inherit property "stepDown(optional long)" with the proper type +PASS HTMLInputElement interface: calling stepDown(optional long) on createInput("button") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("button") must inherit property "willValidate" with the proper type +PASS HTMLInputElement interface: createInput("button") must inherit property "validity" with the proper type +PASS HTMLInputElement interface: createInput("button") must inherit property "validationMessage" with the proper type +PASS HTMLInputElement interface: createInput("button") must inherit property "checkValidity()" with the proper type +PASS HTMLInputElement interface: createInput("button") must inherit property "reportValidity()" with the proper type +PASS HTMLInputElement interface: createInput("button") must inherit property "setCustomValidity(DOMString)" with the proper type +PASS HTMLInputElement interface: calling setCustomValidity(DOMString) on createInput("button") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("button") must inherit property "labels" with the proper type +PASS HTMLInputElement interface: createInput("button") must inherit property "select()" with the proper type +PASS HTMLInputElement interface: createInput("button") must inherit property "selectionStart" with the proper type +PASS HTMLInputElement interface: createInput("button") must inherit property "selectionEnd" with the proper type +PASS HTMLInputElement interface: createInput("button") must inherit property "selectionDirection" with the proper type +PASS HTMLInputElement interface: createInput("button") must inherit property "setRangeText(DOMString)" with the proper type +PASS HTMLInputElement interface: calling setRangeText(DOMString) on createInput("button") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("button") must inherit property "setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode)" with the proper type +PASS HTMLInputElement interface: calling setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode) on createInput("button") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("button") must inherit property "setSelectionRange(unsigned long, unsigned long, optional DOMString)" with the proper type +PASS HTMLInputElement interface: calling setSelectionRange(unsigned long, unsigned long, optional DOMString) on createInput("button") with too few arguments must throw TypeError +PASS HTMLInputElement interface: createInput("button") must inherit property "align" with the proper type +PASS HTMLInputElement interface: createInput("button") must inherit property "useMap" with the proper type +PASS HTMLButtonElement interface: existence and properties of interface object +PASS HTMLButtonElement interface object length +PASS HTMLButtonElement interface object name +PASS HTMLButtonElement interface: existence and properties of interface prototype object +PASS HTMLButtonElement interface: existence and properties of interface prototype object's "constructor" property +PASS HTMLButtonElement interface: existence and properties of interface prototype object's @@unscopables property +PASS HTMLButtonElement interface: attribute disabled +PASS HTMLButtonElement interface: attribute form +PASS HTMLButtonElement interface: attribute formAction +PASS HTMLButtonElement interface: attribute formEnctype +PASS HTMLButtonElement interface: attribute formMethod +PASS HTMLButtonElement interface: attribute formNoValidate +PASS HTMLButtonElement interface: attribute formTarget +PASS HTMLButtonElement interface: attribute name +PASS HTMLButtonElement interface: attribute type +PASS HTMLButtonElement interface: attribute value +PASS HTMLButtonElement interface: attribute willValidate +PASS HTMLButtonElement interface: attribute validity +PASS HTMLButtonElement interface: attribute validationMessage +PASS HTMLButtonElement interface: operation checkValidity() +PASS HTMLButtonElement interface: operation reportValidity() +PASS HTMLButtonElement interface: operation setCustomValidity(DOMString) +PASS HTMLButtonElement interface: attribute labels +PASS HTMLButtonElement must be primary interface of document.createElement("button") +PASS Stringification of document.createElement("button") +PASS HTMLButtonElement interface: document.createElement("button") must inherit property "disabled" with the proper type +PASS HTMLButtonElement interface: document.createElement("button") must inherit property "form" with the proper type +PASS HTMLButtonElement interface: document.createElement("button") must inherit property "formAction" with the proper type +PASS HTMLButtonElement interface: document.createElement("button") must inherit property "formEnctype" with the proper type +PASS HTMLButtonElement interface: document.createElement("button") must inherit property "formMethod" with the proper type +PASS HTMLButtonElement interface: document.createElement("button") must inherit property "formNoValidate" with the proper type +PASS HTMLButtonElement interface: document.createElement("button") must inherit property "formTarget" with the proper type +PASS HTMLButtonElement interface: document.createElement("button") must inherit property "name" with the proper type +PASS HTMLButtonElement interface: document.createElement("button") must inherit property "type" with the proper type +PASS HTMLButtonElement interface: document.createElement("button") must inherit property "value" with the proper type +PASS HTMLButtonElement interface: document.createElement("button") must inherit property "willValidate" with the proper type +PASS HTMLButtonElement interface: document.createElement("button") must inherit property "validity" with the proper type +PASS HTMLButtonElement interface: document.createElement("button") must inherit property "validationMessage" with the proper type +PASS HTMLButtonElement interface: document.createElement("button") must inherit property "checkValidity()" with the proper type +PASS HTMLButtonElement interface: document.createElement("button") must inherit property "reportValidity()" with the proper type +PASS HTMLButtonElement interface: document.createElement("button") must inherit property "setCustomValidity(DOMString)" with the proper type +PASS HTMLButtonElement interface: calling setCustomValidity(DOMString) on document.createElement("button") with too few arguments must throw TypeError +PASS HTMLButtonElement interface: document.createElement("button") must inherit property "labels" with the proper type +PASS HTMLSelectElement interface: existence and properties of interface object +PASS HTMLSelectElement interface object length +PASS HTMLSelectElement interface object name +PASS HTMLSelectElement interface: existence and properties of interface prototype object +PASS HTMLSelectElement interface: existence and properties of interface prototype object's "constructor" property +PASS HTMLSelectElement interface: existence and properties of interface prototype object's @@unscopables property +PASS HTMLSelectElement interface: attribute autocomplete +PASS HTMLSelectElement interface: attribute disabled +PASS HTMLSelectElement interface: attribute form +PASS HTMLSelectElement interface: attribute multiple +PASS HTMLSelectElement interface: attribute name +PASS HTMLSelectElement interface: attribute required +PASS HTMLSelectElement interface: attribute size +PASS HTMLSelectElement interface: attribute type +PASS HTMLSelectElement interface: attribute options +PASS HTMLSelectElement interface: attribute length +PASS HTMLSelectElement interface: operation item(unsigned long) +PASS HTMLSelectElement interface: operation namedItem(DOMString) +PASS HTMLSelectElement interface: operation add((HTMLOptionElement or HTMLOptGroupElement), optional (HTMLElement or long)?) +PASS HTMLSelectElement interface: operation remove() +PASS HTMLSelectElement interface: operation remove(long) +PASS HTMLSelectElement interface: attribute selectedOptions +PASS HTMLSelectElement interface: attribute selectedIndex +PASS HTMLSelectElement interface: attribute value +PASS HTMLSelectElement interface: attribute willValidate +PASS HTMLSelectElement interface: attribute validity +PASS HTMLSelectElement interface: attribute validationMessage +PASS HTMLSelectElement interface: operation checkValidity() +PASS HTMLSelectElement interface: operation reportValidity() +PASS HTMLSelectElement interface: operation setCustomValidity(DOMString) +PASS HTMLSelectElement interface: attribute labels +PASS HTMLSelectElement must be primary interface of document.createElement("select") +PASS Stringification of document.createElement("select") +PASS HTMLSelectElement interface: document.createElement("select") must inherit property "autocomplete" with the proper type +PASS HTMLSelectElement interface: document.createElement("select") must inherit property "disabled" with the proper type +PASS HTMLSelectElement interface: document.createElement("select") must inherit property "form" with the proper type +PASS HTMLSelectElement interface: document.createElement("select") must inherit property "multiple" with the proper type +PASS HTMLSelectElement interface: document.createElement("select") must inherit property "name" with the proper type +PASS HTMLSelectElement interface: document.createElement("select") must inherit property "required" with the proper type +PASS HTMLSelectElement interface: document.createElement("select") must inherit property "size" with the proper type +PASS HTMLSelectElement interface: document.createElement("select") must inherit property "type" with the proper type +PASS HTMLSelectElement interface: document.createElement("select") must inherit property "options" with the proper type +PASS HTMLSelectElement interface: document.createElement("select") must inherit property "length" with the proper type +PASS HTMLSelectElement interface: document.createElement("select") must inherit property "item(unsigned long)" with the proper type +PASS HTMLSelectElement interface: calling item(unsigned long) on document.createElement("select") with too few arguments must throw TypeError +PASS HTMLSelectElement interface: document.createElement("select") must inherit property "namedItem(DOMString)" with the proper type +PASS HTMLSelectElement interface: calling namedItem(DOMString) on document.createElement("select") with too few arguments must throw TypeError +PASS HTMLSelectElement interface: document.createElement("select") must inherit property "add((HTMLOptionElement or HTMLOptGroupElement), optional (HTMLElement or long)?)" with the proper type +PASS HTMLSelectElement interface: calling add((HTMLOptionElement or HTMLOptGroupElement), optional (HTMLElement or long)?) on document.createElement("select") with too few arguments must throw TypeError +PASS HTMLSelectElement interface: document.createElement("select") must inherit property "remove()" with the proper type +PASS HTMLSelectElement interface: document.createElement("select") must inherit property "remove(long)" with the proper type +PASS HTMLSelectElement interface: calling remove(long) on document.createElement("select") with too few arguments must throw TypeError +PASS HTMLSelectElement interface: document.createElement("select") must inherit property "selectedOptions" with the proper type +PASS HTMLSelectElement interface: document.createElement("select") must inherit property "selectedIndex" with the proper type +PASS HTMLSelectElement interface: document.createElement("select") must inherit property "value" with the proper type +PASS HTMLSelectElement interface: document.createElement("select") must inherit property "willValidate" with the proper type +PASS HTMLSelectElement interface: document.createElement("select") must inherit property "validity" with the proper type +PASS HTMLSelectElement interface: document.createElement("select") must inherit property "validationMessage" with the proper type +PASS HTMLSelectElement interface: document.createElement("select") must inherit property "checkValidity()" with the proper type +PASS HTMLSelectElement interface: document.createElement("select") must inherit property "reportValidity()" with the proper type +PASS HTMLSelectElement interface: document.createElement("select") must inherit property "setCustomValidity(DOMString)" with the proper type +PASS HTMLSelectElement interface: calling setCustomValidity(DOMString) on document.createElement("select") with too few arguments must throw TypeError +PASS HTMLSelectElement interface: document.createElement("select") must inherit property "labels" with the proper type +PASS HTMLDataListElement interface: existence and properties of interface object +PASS HTMLDataListElement interface object length +PASS HTMLDataListElement interface object name +PASS HTMLDataListElement interface: existence and properties of interface prototype object +PASS HTMLDataListElement interface: existence and properties of interface prototype object's "constructor" property +PASS HTMLDataListElement interface: existence and properties of interface prototype object's @@unscopables property +PASS HTMLDataListElement interface: attribute options +PASS HTMLDataListElement must be primary interface of document.createElement("datalist") +PASS Stringification of document.createElement("datalist") +PASS HTMLDataListElement interface: document.createElement("datalist") must inherit property "options" with the proper type +PASS HTMLOptGroupElement interface: existence and properties of interface object +PASS HTMLOptGroupElement interface object length +PASS HTMLOptGroupElement interface object name +PASS HTMLOptGroupElement interface: existence and properties of interface prototype object +PASS HTMLOptGroupElement interface: existence and properties of interface prototype object's "constructor" property +PASS HTMLOptGroupElement interface: existence and properties of interface prototype object's @@unscopables property +PASS HTMLOptGroupElement interface: attribute disabled +PASS HTMLOptGroupElement interface: attribute label +PASS HTMLOptGroupElement must be primary interface of document.createElement("optgroup") +PASS Stringification of document.createElement("optgroup") +PASS HTMLOptGroupElement interface: document.createElement("optgroup") must inherit property "disabled" with the proper type +PASS HTMLOptGroupElement interface: document.createElement("optgroup") must inherit property "label" with the proper type +PASS HTMLOptionElement interface: existence and properties of interface object +PASS HTMLOptionElement interface object length +PASS HTMLOptionElement interface object name +PASS HTMLOptionElement interface: named constructor +PASS HTMLOptionElement interface: named constructor object +PASS HTMLOptionElement interface: named constructor prototype property +PASS HTMLOptionElement interface: named constructor name +PASS HTMLOptionElement interface: named constructor length +PASS HTMLOptionElement interface: named constructor without 'new' +PASS HTMLOptionElement interface: existence and properties of interface prototype object +PASS HTMLOptionElement interface: existence and properties of interface prototype object's "constructor" property +PASS HTMLOptionElement interface: existence and properties of interface prototype object's @@unscopables property +PASS HTMLOptionElement interface: attribute disabled +PASS HTMLOptionElement interface: attribute form +PASS HTMLOptionElement interface: attribute label +PASS HTMLOptionElement interface: attribute defaultSelected +PASS HTMLOptionElement interface: attribute selected +PASS HTMLOptionElement interface: attribute value +PASS HTMLOptionElement interface: attribute text +PASS HTMLOptionElement interface: attribute index +PASS HTMLOptionElement must be primary interface of document.createElement("option") +PASS Stringification of document.createElement("option") +PASS HTMLOptionElement interface: document.createElement("option") must inherit property "disabled" with the proper type +PASS HTMLOptionElement interface: document.createElement("option") must inherit property "form" with the proper type +PASS HTMLOptionElement interface: document.createElement("option") must inherit property "label" with the proper type +PASS HTMLOptionElement interface: document.createElement("option") must inherit property "defaultSelected" with the proper type +PASS HTMLOptionElement interface: document.createElement("option") must inherit property "selected" with the proper type +PASS HTMLOptionElement interface: document.createElement("option") must inherit property "value" with the proper type +PASS HTMLOptionElement interface: document.createElement("option") must inherit property "text" with the proper type +PASS HTMLOptionElement interface: document.createElement("option") must inherit property "index" with the proper type +PASS HTMLOptionElement must be primary interface of new Option() +PASS Stringification of new Option() +PASS HTMLOptionElement interface: new Option() must inherit property "disabled" with the proper type +PASS HTMLOptionElement interface: new Option() must inherit property "form" with the proper type +PASS HTMLOptionElement interface: new Option() must inherit property "label" with the proper type +PASS HTMLOptionElement interface: new Option() must inherit property "defaultSelected" with the proper type +PASS HTMLOptionElement interface: new Option() must inherit property "selected" with the proper type +PASS HTMLOptionElement interface: new Option() must inherit property "value" with the proper type +PASS HTMLOptionElement interface: new Option() must inherit property "text" with the proper type +PASS HTMLOptionElement interface: new Option() must inherit property "index" with the proper type +PASS HTMLTextAreaElement interface: existence and properties of interface object +PASS HTMLTextAreaElement interface object length +PASS HTMLTextAreaElement interface object name +PASS HTMLTextAreaElement interface: existence and properties of interface prototype object +PASS HTMLTextAreaElement interface: existence and properties of interface prototype object's "constructor" property +PASS HTMLTextAreaElement interface: existence and properties of interface prototype object's @@unscopables property +PASS HTMLTextAreaElement interface: attribute autocomplete +PASS HTMLTextAreaElement interface: attribute cols +PASS HTMLTextAreaElement interface: attribute dirName +PASS HTMLTextAreaElement interface: attribute disabled +PASS HTMLTextAreaElement interface: attribute form +PASS HTMLTextAreaElement interface: attribute maxLength +PASS HTMLTextAreaElement interface: attribute minLength +PASS HTMLTextAreaElement interface: attribute name +PASS HTMLTextAreaElement interface: attribute placeholder +PASS HTMLTextAreaElement interface: attribute readOnly +PASS HTMLTextAreaElement interface: attribute required +PASS HTMLTextAreaElement interface: attribute rows +PASS HTMLTextAreaElement interface: attribute wrap +PASS HTMLTextAreaElement interface: attribute type +PASS HTMLTextAreaElement interface: attribute defaultValue +PASS HTMLTextAreaElement interface: attribute value +PASS HTMLTextAreaElement interface: attribute textLength +PASS HTMLTextAreaElement interface: attribute willValidate +PASS HTMLTextAreaElement interface: attribute validity +PASS HTMLTextAreaElement interface: attribute validationMessage +PASS HTMLTextAreaElement interface: operation checkValidity() +PASS HTMLTextAreaElement interface: operation reportValidity() +PASS HTMLTextAreaElement interface: operation setCustomValidity(DOMString) +PASS HTMLTextAreaElement interface: attribute labels +PASS HTMLTextAreaElement interface: operation select() +PASS HTMLTextAreaElement interface: attribute selectionStart +PASS HTMLTextAreaElement interface: attribute selectionEnd +PASS HTMLTextAreaElement interface: attribute selectionDirection +PASS HTMLTextAreaElement interface: operation setRangeText(DOMString) +PASS HTMLTextAreaElement interface: operation setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode) +PASS HTMLTextAreaElement interface: operation setSelectionRange(unsigned long, unsigned long, optional DOMString) +PASS HTMLTextAreaElement must be primary interface of document.createElement("textarea") +PASS Stringification of document.createElement("textarea") +PASS HTMLTextAreaElement interface: document.createElement("textarea") must inherit property "autocomplete" with the proper type +PASS HTMLTextAreaElement interface: document.createElement("textarea") must inherit property "cols" with the proper type +PASS HTMLTextAreaElement interface: document.createElement("textarea") must inherit property "dirName" with the proper type +PASS HTMLTextAreaElement interface: document.createElement("textarea") must inherit property "disabled" with the proper type +PASS HTMLTextAreaElement interface: document.createElement("textarea") must inherit property "form" with the proper type +PASS HTMLTextAreaElement interface: document.createElement("textarea") must inherit property "maxLength" with the proper type +PASS HTMLTextAreaElement interface: document.createElement("textarea") must inherit property "minLength" with the proper type +PASS HTMLTextAreaElement interface: document.createElement("textarea") must inherit property "name" with the proper type +PASS HTMLTextAreaElement interface: document.createElement("textarea") must inherit property "placeholder" with the proper type +PASS HTMLTextAreaElement interface: document.createElement("textarea") must inherit property "readOnly" with the proper type +PASS HTMLTextAreaElement interface: document.createElement("textarea") must inherit property "required" with the proper type +PASS HTMLTextAreaElement interface: document.createElement("textarea") must inherit property "rows" with the proper type +PASS HTMLTextAreaElement interface: document.createElement("textarea") must inherit property "wrap" with the proper type +PASS HTMLTextAreaElement interface: document.createElement("textarea") must inherit property "type" with the proper type +PASS HTMLTextAreaElement interface: document.createElement("textarea") must inherit property "defaultValue" with the proper type +PASS HTMLTextAreaElement interface: document.createElement("textarea") must inherit property "value" with the proper type +PASS HTMLTextAreaElement interface: document.createElement("textarea") must inherit property "textLength" with the proper type +PASS HTMLTextAreaElement interface: document.createElement("textarea") must inherit property "willValidate" with the proper type +PASS HTMLTextAreaElement interface: document.createElement("textarea") must inherit property "validity" with the proper type +PASS HTMLTextAreaElement interface: document.createElement("textarea") must inherit property "validationMessage" with the proper type +PASS HTMLTextAreaElement interface: document.createElement("textarea") must inherit property "checkValidity()" with the proper type +PASS HTMLTextAreaElement interface: document.createElement("textarea") must inherit property "reportValidity()" with the proper type +PASS HTMLTextAreaElement interface: document.createElement("textarea") must inherit property "setCustomValidity(DOMString)" with the proper type +PASS HTMLTextAreaElement interface: calling setCustomValidity(DOMString) on document.createElement("textarea") with too few arguments must throw TypeError +PASS HTMLTextAreaElement interface: document.createElement("textarea") must inherit property "labels" with the proper type +PASS HTMLTextAreaElement interface: document.createElement("textarea") must inherit property "select()" with the proper type +PASS HTMLTextAreaElement interface: document.createElement("textarea") must inherit property "selectionStart" with the proper type +PASS HTMLTextAreaElement interface: document.createElement("textarea") must inherit property "selectionEnd" with the proper type +PASS HTMLTextAreaElement interface: document.createElement("textarea") must inherit property "selectionDirection" with the proper type +PASS HTMLTextAreaElement interface: document.createElement("textarea") must inherit property "setRangeText(DOMString)" with the proper type +PASS HTMLTextAreaElement interface: calling setRangeText(DOMString) on document.createElement("textarea") with too few arguments must throw TypeError +PASS HTMLTextAreaElement interface: document.createElement("textarea") must inherit property "setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode)" with the proper type +PASS HTMLTextAreaElement interface: calling setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode) on document.createElement("textarea") with too few arguments must throw TypeError +PASS HTMLTextAreaElement interface: document.createElement("textarea") must inherit property "setSelectionRange(unsigned long, unsigned long, optional DOMString)" with the proper type +PASS HTMLTextAreaElement interface: calling setSelectionRange(unsigned long, unsigned long, optional DOMString) on document.createElement("textarea") with too few arguments must throw TypeError +PASS HTMLOutputElement interface: existence and properties of interface object +PASS HTMLOutputElement interface object length +PASS HTMLOutputElement interface object name +PASS HTMLOutputElement interface: existence and properties of interface prototype object +PASS HTMLOutputElement interface: existence and properties of interface prototype object's "constructor" property +PASS HTMLOutputElement interface: existence and properties of interface prototype object's @@unscopables property +PASS HTMLOutputElement interface: attribute htmlFor +PASS HTMLOutputElement interface: attribute form +PASS HTMLOutputElement interface: attribute name +PASS HTMLOutputElement interface: attribute type +PASS HTMLOutputElement interface: attribute defaultValue +PASS HTMLOutputElement interface: attribute value +PASS HTMLOutputElement interface: attribute willValidate +PASS HTMLOutputElement interface: attribute validity +PASS HTMLOutputElement interface: attribute validationMessage +PASS HTMLOutputElement interface: operation checkValidity() +PASS HTMLOutputElement interface: operation reportValidity() +PASS HTMLOutputElement interface: operation setCustomValidity(DOMString) +PASS HTMLOutputElement interface: attribute labels +PASS HTMLOutputElement must be primary interface of document.createElement("output") +PASS Stringification of document.createElement("output") +PASS HTMLOutputElement interface: document.createElement("output") must inherit property "htmlFor" with the proper type +PASS HTMLOutputElement interface: document.createElement("output") must inherit property "form" with the proper type +PASS HTMLOutputElement interface: document.createElement("output") must inherit property "name" with the proper type +PASS HTMLOutputElement interface: document.createElement("output") must inherit property "type" with the proper type +PASS HTMLOutputElement interface: document.createElement("output") must inherit property "defaultValue" with the proper type +PASS HTMLOutputElement interface: document.createElement("output") must inherit property "value" with the proper type +PASS HTMLOutputElement interface: document.createElement("output") must inherit property "willValidate" with the proper type +PASS HTMLOutputElement interface: document.createElement("output") must inherit property "validity" with the proper type +PASS HTMLOutputElement interface: document.createElement("output") must inherit property "validationMessage" with the proper type +PASS HTMLOutputElement interface: document.createElement("output") must inherit property "checkValidity()" with the proper type +PASS HTMLOutputElement interface: document.createElement("output") must inherit property "reportValidity()" with the proper type +PASS HTMLOutputElement interface: document.createElement("output") must inherit property "setCustomValidity(DOMString)" with the proper type +PASS HTMLOutputElement interface: calling setCustomValidity(DOMString) on document.createElement("output") with too few arguments must throw TypeError +PASS HTMLOutputElement interface: document.createElement("output") must inherit property "labels" with the proper type +PASS HTMLProgressElement interface: existence and properties of interface object +PASS HTMLProgressElement interface object length +PASS HTMLProgressElement interface object name +PASS HTMLProgressElement interface: existence and properties of interface prototype object +PASS HTMLProgressElement interface: existence and properties of interface prototype object's "constructor" property +PASS HTMLProgressElement interface: existence and properties of interface prototype object's @@unscopables property +PASS HTMLProgressElement interface: attribute value +PASS HTMLProgressElement interface: attribute max +PASS HTMLProgressElement interface: attribute position +PASS HTMLProgressElement interface: attribute labels +PASS HTMLProgressElement must be primary interface of document.createElement("progress") +PASS Stringification of document.createElement("progress") +PASS HTMLProgressElement interface: document.createElement("progress") must inherit property "value" with the proper type +PASS HTMLProgressElement interface: document.createElement("progress") must inherit property "max" with the proper type +PASS HTMLProgressElement interface: document.createElement("progress") must inherit property "position" with the proper type +PASS HTMLProgressElement interface: document.createElement("progress") must inherit property "labels" with the proper type +PASS HTMLMeterElement interface: existence and properties of interface object +PASS HTMLMeterElement interface object length +PASS HTMLMeterElement interface object name +PASS HTMLMeterElement interface: existence and properties of interface prototype object +PASS HTMLMeterElement interface: existence and properties of interface prototype object's "constructor" property +PASS HTMLMeterElement interface: existence and properties of interface prototype object's @@unscopables property +PASS HTMLMeterElement interface: attribute value +PASS HTMLMeterElement interface: attribute min +PASS HTMLMeterElement interface: attribute max +PASS HTMLMeterElement interface: attribute low +PASS HTMLMeterElement interface: attribute high +PASS HTMLMeterElement interface: attribute optimum +PASS HTMLMeterElement interface: attribute labels +PASS HTMLMeterElement must be primary interface of document.createElement("meter") +PASS Stringification of document.createElement("meter") +PASS HTMLMeterElement interface: document.createElement("meter") must inherit property "value" with the proper type +PASS HTMLMeterElement interface: document.createElement("meter") must inherit property "min" with the proper type +PASS HTMLMeterElement interface: document.createElement("meter") must inherit property "max" with the proper type +PASS HTMLMeterElement interface: document.createElement("meter") must inherit property "low" with the proper type +PASS HTMLMeterElement interface: document.createElement("meter") must inherit property "high" with the proper type +PASS HTMLMeterElement interface: document.createElement("meter") must inherit property "optimum" with the proper type +PASS HTMLMeterElement interface: document.createElement("meter") must inherit property "labels" with the proper type +PASS HTMLFieldSetElement interface: existence and properties of interface object +PASS HTMLFieldSetElement interface object length +PASS HTMLFieldSetElement interface object name +PASS HTMLFieldSetElement interface: existence and properties of interface prototype object +PASS HTMLFieldSetElement interface: existence and properties of interface prototype object's "constructor" property +PASS HTMLFieldSetElement interface: existence and properties of interface prototype object's @@unscopables property +PASS HTMLFieldSetElement interface: attribute disabled +PASS HTMLFieldSetElement interface: attribute form +PASS HTMLFieldSetElement interface: attribute name +PASS HTMLFieldSetElement interface: attribute type +PASS HTMLFieldSetElement interface: attribute elements +PASS HTMLFieldSetElement interface: attribute willValidate +PASS HTMLFieldSetElement interface: attribute validity +PASS HTMLFieldSetElement interface: attribute validationMessage +PASS HTMLFieldSetElement interface: operation checkValidity() +PASS HTMLFieldSetElement interface: operation reportValidity() +PASS HTMLFieldSetElement interface: operation setCustomValidity(DOMString) +PASS HTMLLegendElement interface: existence and properties of interface object +PASS HTMLLegendElement interface object length +PASS HTMLLegendElement interface object name +PASS HTMLLegendElement interface: existence and properties of interface prototype object +PASS HTMLLegendElement interface: existence and properties of interface prototype object's "constructor" property +PASS HTMLLegendElement interface: existence and properties of interface prototype object's @@unscopables property +PASS HTMLLegendElement interface: attribute form +PASS HTMLLegendElement interface: attribute align +PASS HTMLLegendElement must be primary interface of document.createElement("legend") +PASS Stringification of document.createElement("legend") +PASS HTMLLegendElement interface: document.createElement("legend") must inherit property "form" with the proper type +PASS HTMLLegendElement interface: document.createElement("legend") must inherit property "align" with the proper type +PASS HTMLDetailsElement interface: existence and properties of interface object +PASS HTMLDetailsElement interface object length +PASS HTMLDetailsElement interface object name +PASS HTMLDetailsElement interface: existence and properties of interface prototype object +PASS HTMLDetailsElement interface: existence and properties of interface prototype object's "constructor" property +PASS HTMLDetailsElement interface: existence and properties of interface prototype object's @@unscopables property +PASS HTMLDetailsElement interface: attribute open +PASS HTMLDetailsElement must be primary interface of document.createElement("details") +PASS Stringification of document.createElement("details") +PASS HTMLDetailsElement interface: document.createElement("details") must inherit property "open" with the proper type +PASS HTMLDialogElement interface: existence and properties of interface object +PASS HTMLDialogElement interface object length +PASS HTMLDialogElement interface object name +PASS HTMLDialogElement interface: existence and properties of interface prototype object +PASS HTMLDialogElement interface: existence and properties of interface prototype object's "constructor" property +PASS HTMLDialogElement interface: existence and properties of interface prototype object's @@unscopables property +PASS HTMLDialogElement interface: attribute open +PASS HTMLDialogElement interface: attribute returnValue +PASS HTMLDialogElement interface: operation show() +PASS HTMLDialogElement interface: operation showModal() +PASS HTMLDialogElement interface: operation close(optional DOMString) +PASS HTMLScriptElement interface: existence and properties of interface object +PASS HTMLScriptElement interface object length +PASS HTMLScriptElement interface object name +PASS HTMLScriptElement interface: existence and properties of interface prototype object +PASS HTMLScriptElement interface: existence and properties of interface prototype object's "constructor" property +PASS HTMLScriptElement interface: existence and properties of interface prototype object's @@unscopables property +PASS HTMLScriptElement interface: attribute src +PASS HTMLScriptElement interface: attribute type +PASS HTMLScriptElement interface: attribute noModule +PASS HTMLScriptElement interface: attribute async +PASS HTMLScriptElement interface: attribute defer +PASS HTMLScriptElement interface: attribute crossOrigin +PASS HTMLScriptElement interface: attribute text +PASS HTMLScriptElement interface: attribute integrity +PASS HTMLScriptElement interface: attribute referrerPolicy +PASS HTMLScriptElement interface: attribute charset +PASS HTMLScriptElement interface: attribute event +PASS HTMLScriptElement interface: attribute htmlFor +PASS HTMLScriptElement must be primary interface of document.createElement("script") +PASS Stringification of document.createElement("script") +PASS HTMLScriptElement interface: document.createElement("script") must inherit property "src" with the proper type +PASS HTMLScriptElement interface: document.createElement("script") must inherit property "type" with the proper type +PASS HTMLScriptElement interface: document.createElement("script") must inherit property "noModule" with the proper type +PASS HTMLScriptElement interface: document.createElement("script") must inherit property "async" with the proper type +PASS HTMLScriptElement interface: document.createElement("script") must inherit property "defer" with the proper type +PASS HTMLScriptElement interface: document.createElement("script") must inherit property "crossOrigin" with the proper type +PASS HTMLScriptElement interface: document.createElement("script") must inherit property "text" with the proper type +PASS HTMLScriptElement interface: document.createElement("script") must inherit property "integrity" with the proper type +FAIL HTMLScriptElement interface: document.createElement("script") must inherit property "referrerPolicy" with the proper type assert_equals: expected "string" but got "object" +PASS HTMLScriptElement interface: document.createElement("script") must inherit property "charset" with the proper type +PASS HTMLScriptElement interface: document.createElement("script") must inherit property "event" with the proper type +PASS HTMLScriptElement interface: document.createElement("script") must inherit property "htmlFor" with the proper type +PASS HTMLTemplateElement interface: existence and properties of interface object +PASS HTMLTemplateElement interface object length +PASS HTMLTemplateElement interface object name +PASS HTMLTemplateElement interface: existence and properties of interface prototype object +PASS HTMLTemplateElement interface: existence and properties of interface prototype object's "constructor" property +PASS HTMLTemplateElement interface: existence and properties of interface prototype object's @@unscopables property +PASS HTMLTemplateElement interface: attribute content +PASS HTMLTemplateElement must be primary interface of document.createElement("template") +PASS Stringification of document.createElement("template") +PASS HTMLTemplateElement interface: document.createElement("template") must inherit property "content" with the proper type +PASS HTMLSlotElement interface: existence and properties of interface object +PASS HTMLSlotElement interface object length +PASS HTMLSlotElement interface object name +PASS HTMLSlotElement interface: existence and properties of interface prototype object +PASS HTMLSlotElement interface: existence and properties of interface prototype object's "constructor" property +PASS HTMLSlotElement interface: existence and properties of interface prototype object's @@unscopables property +PASS HTMLSlotElement interface: attribute name +PASS HTMLSlotElement interface: operation assignedNodes(optional AssignedNodesOptions) +PASS HTMLSlotElement interface: operation assignedElements(optional AssignedNodesOptions) +PASS HTMLSlotElement must be primary interface of document.createElement("slot") +PASS Stringification of document.createElement("slot") +PASS HTMLSlotElement interface: document.createElement("slot") must inherit property "name" with the proper type +PASS HTMLSlotElement interface: document.createElement("slot") must inherit property "assignedNodes(optional AssignedNodesOptions)" with the proper type +PASS HTMLSlotElement interface: calling assignedNodes(optional AssignedNodesOptions) on document.createElement("slot") with too few arguments must throw TypeError +PASS HTMLSlotElement interface: document.createElement("slot") must inherit property "assignedElements(optional AssignedNodesOptions)" with the proper type +PASS HTMLSlotElement interface: calling assignedElements(optional AssignedNodesOptions) on document.createElement("slot") with too few arguments must throw TypeError +PASS HTMLCanvasElement interface: existence and properties of interface object +PASS HTMLCanvasElement interface object length +PASS HTMLCanvasElement interface object name +PASS HTMLCanvasElement interface: existence and properties of interface prototype object +PASS HTMLCanvasElement interface: existence and properties of interface prototype object's "constructor" property +PASS HTMLCanvasElement interface: existence and properties of interface prototype object's @@unscopables property +PASS HTMLCanvasElement interface: attribute width +PASS HTMLCanvasElement interface: attribute height +PASS HTMLCanvasElement interface: operation getContext(DOMString, optional any) +PASS HTMLCanvasElement interface: operation toDataURL(optional DOMString, optional any) +PASS HTMLCanvasElement interface: operation toBlob(BlobCallback, optional DOMString, optional any) +PASS HTMLCanvasElement interface: operation transferControlToOffscreen() +PASS HTMLCanvasElement must be primary interface of document.createElement("canvas") +PASS Stringification of document.createElement("canvas") +PASS HTMLCanvasElement interface: document.createElement("canvas") must inherit property "width" with the proper type +PASS HTMLCanvasElement interface: document.createElement("canvas") must inherit property "height" with the proper type +PASS HTMLCanvasElement interface: document.createElement("canvas") must inherit property "getContext(DOMString, optional any)" with the proper type +PASS HTMLCanvasElement interface: calling getContext(DOMString, optional any) on document.createElement("canvas") with too few arguments must throw TypeError +PASS HTMLCanvasElement interface: document.createElement("canvas") must inherit property "toDataURL(optional DOMString, optional any)" with the proper type +PASS HTMLCanvasElement interface: calling toDataURL(optional DOMString, optional any) on document.createElement("canvas") with too few arguments must throw TypeError +PASS HTMLCanvasElement interface: document.createElement("canvas") must inherit property "toBlob(BlobCallback, optional DOMString, optional any)" with the proper type +PASS HTMLCanvasElement interface: calling toBlob(BlobCallback, optional DOMString, optional any) on document.createElement("canvas") with too few arguments must throw TypeError +PASS HTMLCanvasElement interface: document.createElement("canvas") must inherit property "transferControlToOffscreen()" with the proper type +PASS HTMLMarqueeElement interface: existence and properties of interface object +PASS HTMLMarqueeElement interface object length +PASS HTMLMarqueeElement interface object name +PASS HTMLMarqueeElement interface: existence and properties of interface prototype object +PASS HTMLMarqueeElement interface: existence and properties of interface prototype object's "constructor" property +PASS HTMLMarqueeElement interface: existence and properties of interface prototype object's @@unscopables property +PASS HTMLMarqueeElement interface: attribute behavior +PASS HTMLMarqueeElement interface: attribute bgColor +PASS HTMLMarqueeElement interface: attribute direction +PASS HTMLMarqueeElement interface: attribute height +PASS HTMLMarqueeElement interface: attribute hspace +PASS HTMLMarqueeElement interface: attribute loop +PASS HTMLMarqueeElement interface: attribute scrollAmount +PASS HTMLMarqueeElement interface: attribute scrollDelay +PASS HTMLMarqueeElement interface: attribute trueSpeed +PASS HTMLMarqueeElement interface: attribute vspace +PASS HTMLMarqueeElement interface: attribute width +FAIL HTMLMarqueeElement interface: attribute onbounce assert_true: The prototype object must have a property "onbounce" expected true got false +FAIL HTMLMarqueeElement interface: attribute onfinish assert_true: The prototype object must have a property "onfinish" expected true got false +FAIL HTMLMarqueeElement interface: attribute onstart assert_true: The prototype object must have a property "onstart" expected true got false +PASS HTMLMarqueeElement interface: operation start() +PASS HTMLMarqueeElement interface: operation stop() +PASS HTMLMarqueeElement must be primary interface of document.createElement("marquee") +PASS Stringification of document.createElement("marquee") +PASS HTMLMarqueeElement interface: document.createElement("marquee") must inherit property "behavior" with the proper type +PASS HTMLMarqueeElement interface: document.createElement("marquee") must inherit property "bgColor" with the proper type +PASS HTMLMarqueeElement interface: document.createElement("marquee") must inherit property "direction" with the proper type +PASS HTMLMarqueeElement interface: document.createElement("marquee") must inherit property "height" with the proper type +PASS HTMLMarqueeElement interface: document.createElement("marquee") must inherit property "hspace" with the proper type +PASS HTMLMarqueeElement interface: document.createElement("marquee") must inherit property "loop" with the proper type +PASS HTMLMarqueeElement interface: document.createElement("marquee") must inherit property "scrollAmount" with the proper type +PASS HTMLMarqueeElement interface: document.createElement("marquee") must inherit property "scrollDelay" with the proper type +PASS HTMLMarqueeElement interface: document.createElement("marquee") must inherit property "trueSpeed" with the proper type +PASS HTMLMarqueeElement interface: document.createElement("marquee") must inherit property "vspace" with the proper type +PASS HTMLMarqueeElement interface: document.createElement("marquee") must inherit property "width" with the proper type +FAIL HTMLMarqueeElement interface: document.createElement("marquee") must inherit property "onbounce" with the proper type assert_inherits: property "onbounce" not found in prototype chain +FAIL HTMLMarqueeElement interface: document.createElement("marquee") must inherit property "onfinish" with the proper type assert_inherits: property "onfinish" not found in prototype chain +FAIL HTMLMarqueeElement interface: document.createElement("marquee") must inherit property "onstart" with the proper type assert_inherits: property "onstart" not found in prototype chain +PASS HTMLMarqueeElement interface: document.createElement("marquee") must inherit property "start()" with the proper type +PASS HTMLMarqueeElement interface: document.createElement("marquee") must inherit property "stop()" with the proper type +PASS HTMLFrameSetElement interface: existence and properties of interface object +PASS HTMLFrameSetElement interface object length +PASS HTMLFrameSetElement interface object name +PASS HTMLFrameSetElement interface: existence and properties of interface prototype object +PASS HTMLFrameSetElement interface: existence and properties of interface prototype object's "constructor" property +PASS HTMLFrameSetElement interface: existence and properties of interface prototype object's @@unscopables property +PASS HTMLFrameSetElement interface: attribute cols +PASS HTMLFrameSetElement interface: attribute rows +PASS HTMLFrameSetElement interface: attribute onafterprint +PASS HTMLFrameSetElement interface: attribute onbeforeprint +PASS HTMLFrameSetElement interface: attribute onbeforeunload +PASS HTMLFrameSetElement interface: attribute onhashchange +PASS HTMLFrameSetElement interface: attribute onlanguagechange +PASS HTMLFrameSetElement interface: attribute onmessage +PASS HTMLFrameSetElement interface: attribute onmessageerror +PASS HTMLFrameSetElement interface: attribute onoffline +PASS HTMLFrameSetElement interface: attribute ononline +PASS HTMLFrameSetElement interface: attribute onpagehide +PASS HTMLFrameSetElement interface: attribute onpageshow +PASS HTMLFrameSetElement interface: attribute onpopstate +PASS HTMLFrameSetElement interface: attribute onrejectionhandled +PASS HTMLFrameSetElement interface: attribute onstorage +PASS HTMLFrameSetElement interface: attribute onunhandledrejection +PASS HTMLFrameSetElement interface: attribute onunload +PASS HTMLFrameSetElement must be primary interface of document.createElement("frameset") +PASS Stringification of document.createElement("frameset") +PASS HTMLFrameSetElement interface: document.createElement("frameset") must inherit property "cols" with the proper type +PASS HTMLFrameSetElement interface: document.createElement("frameset") must inherit property "rows" with the proper type +PASS HTMLFrameSetElement interface: document.createElement("frameset") must inherit property "onafterprint" with the proper type +PASS HTMLFrameSetElement interface: document.createElement("frameset") must inherit property "onbeforeprint" with the proper type +PASS HTMLFrameSetElement interface: document.createElement("frameset") must inherit property "onbeforeunload" with the proper type +PASS HTMLFrameSetElement interface: document.createElement("frameset") must inherit property "onhashchange" with the proper type +PASS HTMLFrameSetElement interface: document.createElement("frameset") must inherit property "onlanguagechange" with the proper type +PASS HTMLFrameSetElement interface: document.createElement("frameset") must inherit property "onmessage" with the proper type +PASS HTMLFrameSetElement interface: document.createElement("frameset") must inherit property "onmessageerror" with the proper type +PASS HTMLFrameSetElement interface: document.createElement("frameset") must inherit property "onoffline" with the proper type +PASS HTMLFrameSetElement interface: document.createElement("frameset") must inherit property "ononline" with the proper type +PASS HTMLFrameSetElement interface: document.createElement("frameset") must inherit property "onpagehide" with the proper type +PASS HTMLFrameSetElement interface: document.createElement("frameset") must inherit property "onpageshow" with the proper type +PASS HTMLFrameSetElement interface: document.createElement("frameset") must inherit property "onpopstate" with the proper type +PASS HTMLFrameSetElement interface: document.createElement("frameset") must inherit property "onrejectionhandled" with the proper type +PASS HTMLFrameSetElement interface: document.createElement("frameset") must inherit property "onstorage" with the proper type +PASS HTMLFrameSetElement interface: document.createElement("frameset") must inherit property "onunhandledrejection" with the proper type +PASS HTMLFrameSetElement interface: document.createElement("frameset") must inherit property "onunload" with the proper type +PASS HTMLFrameElement interface: existence and properties of interface object +PASS HTMLFrameElement interface object length +PASS HTMLFrameElement interface object name +PASS HTMLFrameElement interface: existence and properties of interface prototype object +PASS HTMLFrameElement interface: existence and properties of interface prototype object's "constructor" property +PASS HTMLFrameElement interface: existence and properties of interface prototype object's @@unscopables property +PASS HTMLFrameElement interface: attribute name +PASS HTMLFrameElement interface: attribute scrolling +PASS HTMLFrameElement interface: attribute src +PASS HTMLFrameElement interface: attribute frameBorder +PASS HTMLFrameElement interface: attribute longDesc +PASS HTMLFrameElement interface: attribute noResize +PASS HTMLFrameElement interface: attribute contentDocument +PASS HTMLFrameElement interface: attribute contentWindow +PASS HTMLFrameElement interface: attribute marginHeight +PASS HTMLFrameElement interface: attribute marginWidth +PASS HTMLFrameElement must be primary interface of document.createElement("frame") +PASS Stringification of document.createElement("frame") +PASS HTMLFrameElement interface: document.createElement("frame") must inherit property "name" with the proper type +PASS HTMLFrameElement interface: document.createElement("frame") must inherit property "scrolling" with the proper type +PASS HTMLFrameElement interface: document.createElement("frame") must inherit property "src" with the proper type +PASS HTMLFrameElement interface: document.createElement("frame") must inherit property "frameBorder" with the proper type +PASS HTMLFrameElement interface: document.createElement("frame") must inherit property "longDesc" with the proper type +PASS HTMLFrameElement interface: document.createElement("frame") must inherit property "noResize" with the proper type +PASS HTMLFrameElement interface: document.createElement("frame") must inherit property "contentDocument" with the proper type +PASS HTMLFrameElement interface: document.createElement("frame") must inherit property "contentWindow" with the proper type +PASS HTMLFrameElement interface: document.createElement("frame") must inherit property "marginHeight" with the proper type +PASS HTMLFrameElement interface: document.createElement("frame") must inherit property "marginWidth" with the proper type +PASS HTMLDirectoryElement interface: existence and properties of interface object +PASS HTMLDirectoryElement interface object length +PASS HTMLDirectoryElement interface object name +PASS HTMLDirectoryElement interface: existence and properties of interface prototype object +PASS HTMLDirectoryElement interface: existence and properties of interface prototype object's "constructor" property +PASS HTMLDirectoryElement interface: existence and properties of interface prototype object's @@unscopables property +PASS HTMLDirectoryElement interface: attribute compact +PASS HTMLDirectoryElement must be primary interface of document.createElement("dir") +PASS Stringification of document.createElement("dir") +PASS HTMLDirectoryElement interface: document.createElement("dir") must inherit property "compact" with the proper type +PASS HTMLFontElement interface: existence and properties of interface object +PASS HTMLFontElement interface object length +PASS HTMLFontElement interface object name +PASS HTMLFontElement interface: existence and properties of interface prototype object +PASS HTMLFontElement interface: existence and properties of interface prototype object's "constructor" property +PASS HTMLFontElement interface: existence and properties of interface prototype object's @@unscopables property +PASS HTMLFontElement interface: attribute color +PASS HTMLFontElement interface: attribute face +PASS HTMLFontElement interface: attribute size +PASS HTMLFontElement must be primary interface of document.createElement("font") +PASS Stringification of document.createElement("font") +PASS HTMLFontElement interface: document.createElement("font") must inherit property "color" with the proper type +PASS HTMLFontElement interface: document.createElement("font") must inherit property "face" with the proper type +PASS HTMLFontElement interface: document.createElement("font") must inherit property "size" with the proper type +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac-arm11.0/external/wpt/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/legend-display-expected.txt b/third_party/blink/web_tests/platform/mac-mac-arm11.0/external/wpt/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/legend-display-expected.txt new file mode 100644 index 0000000..d13c68ba --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac-arm11.0/external/wpt/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/legend-display-expected.txt
@@ -0,0 +1,29 @@ +This is a testharness.js-based test. +PASS rendered legend with display: block +PASS rendered legend with display: table +FAIL rendered legend with display: table-row-group assert_equals: display: table-row-group is not supported expected "table-row-group" but got "block" +FAIL rendered legend with display: table-header-group assert_equals: display: table-header-group is not supported expected "table-header-group" but got "block" +FAIL rendered legend with display: table-footer-group assert_equals: display: table-footer-group is not supported expected "table-footer-group" but got "block" +FAIL rendered legend with display: table-row assert_equals: display: table-row is not supported expected "table-row" but got "block" +FAIL rendered legend with display: table-cell assert_equals: display: table-cell is not supported expected "table-cell" but got "block" +FAIL rendered legend with display: table-column-group assert_equals: display: table-column-group is not supported expected "table-column-group" but got "block" +FAIL rendered legend with display: table-column assert_equals: display: table-column is not supported expected "table-column" but got "block" +FAIL rendered legend with display: table-caption assert_equals: display: table-caption is not supported expected "table-caption" but got "block" +PASS rendered legend with display: list-item +FAIL rendered legend with display: flow assert_equals: display: flow is not supported expected "flow" but got "block" +PASS rendered legend with display: flow-root +FAIL rendered legend with display: run-in assert_equals: display: run-in is not supported expected "run-in" but got "block" +FAIL rendered legend with display: inline assert_equals: display: inline is not supported expected "inline" but got "block" +FAIL rendered legend with display: inline-block assert_equals: display: inline-block is not supported expected "inline-block" but got "block" +FAIL rendered legend with display: inline-table assert_equals: display: inline-table is not supported expected "inline-table" but got "table" +FAIL rendered legend with display: ruby assert_equals: display: ruby is not supported expected "ruby" but got "block" +FAIL rendered legend with display: ruby-base assert_equals: display: ruby-base is not supported expected "ruby-base" but got "block" +FAIL rendered legend with display: ruby-text assert_equals: display: ruby-text is not supported expected "ruby-text" but got "block" +FAIL rendered legend with display: ruby-base-container assert_equals: display: ruby-base-container is not supported expected "ruby-base-container" but got "block" +FAIL rendered legend with display: ruby-text-container assert_equals: display: ruby-text-container is not supported expected "ruby-text-container" but got "block" +PASS rendered legend with display: grid +FAIL rendered legend with display: inline-grid assert_equals: display: inline-grid is not supported expected "inline-grid" but got "grid" +PASS rendered legend with display: flex +FAIL rendered legend with display: inline-flex assert_equals: display: inline-flex is not supported expected "inline-flex" but got "flex" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac-arm11.0/fast/backgrounds/background-repeat-with-background-color-expected.png b/third_party/blink/web_tests/platform/mac-mac-arm11.0/fast/backgrounds/background-repeat-with-background-color-expected.png deleted file mode 100644 index 2416fef2..0000000 --- a/third_party/blink/web_tests/platform/mac-mac-arm11.0/fast/backgrounds/background-repeat-with-background-color-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac-arm11.0/fast/backgrounds/size/backgroundSize05-expected.png b/third_party/blink/web_tests/platform/mac-mac-arm11.0/fast/backgrounds/size/backgroundSize05-expected.png deleted file mode 100644 index 50d0c4e9..0000000 --- a/third_party/blink/web_tests/platform/mac-mac-arm11.0/fast/backgrounds/size/backgroundSize05-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac-arm11.0/fast/backgrounds/size/backgroundSize09-expected.png b/third_party/blink/web_tests/platform/mac-mac-arm11.0/fast/backgrounds/size/backgroundSize09-expected.png deleted file mode 100644 index 5045e48..0000000 --- a/third_party/blink/web_tests/platform/mac-mac-arm11.0/fast/backgrounds/size/backgroundSize09-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac-arm11.0/fast/backgrounds/size/backgroundSize10-expected.png b/third_party/blink/web_tests/platform/mac-mac-arm11.0/fast/backgrounds/size/backgroundSize10-expected.png deleted file mode 100644 index 18c7735..0000000 --- a/third_party/blink/web_tests/platform/mac-mac-arm11.0/fast/backgrounds/size/backgroundSize10-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac-arm11.0/fast/backgrounds/size/backgroundSize11-expected.png b/third_party/blink/web_tests/platform/mac-mac-arm11.0/fast/backgrounds/size/backgroundSize11-expected.png deleted file mode 100644 index ef16225..0000000 --- a/third_party/blink/web_tests/platform/mac-mac-arm11.0/fast/backgrounds/size/backgroundSize11-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac-arm11.0/fast/backgrounds/size/backgroundSize15-expected.png b/third_party/blink/web_tests/platform/mac-mac-arm11.0/fast/backgrounds/size/backgroundSize15-expected.png deleted file mode 100644 index 97e1451..0000000 --- a/third_party/blink/web_tests/platform/mac-mac-arm11.0/fast/backgrounds/size/backgroundSize15-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac-arm11.0/fast/backgrounds/size/backgroundSize18-expected.png b/third_party/blink/web_tests/platform/mac-mac-arm11.0/fast/backgrounds/size/backgroundSize18-expected.png deleted file mode 100644 index b16289d8..0000000 --- a/third_party/blink/web_tests/platform/mac-mac-arm11.0/fast/backgrounds/size/backgroundSize18-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac-arm11.0/fast/backgrounds/size/backgroundSize19-expected.png b/third_party/blink/web_tests/platform/mac-mac-arm11.0/fast/backgrounds/size/backgroundSize19-expected.png deleted file mode 100644 index caf1f2b..0000000 --- a/third_party/blink/web_tests/platform/mac-mac-arm11.0/fast/backgrounds/size/backgroundSize19-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac-arm11.0/fast/backgrounds/size/backgroundSize21-expected.png b/third_party/blink/web_tests/platform/mac-mac-arm11.0/fast/backgrounds/size/backgroundSize21-expected.png deleted file mode 100644 index b16289d8..0000000 --- a/third_party/blink/web_tests/platform/mac-mac-arm11.0/fast/backgrounds/size/backgroundSize21-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac-arm11.0/fast/backgrounds/size/backgroundSize22-expected.png b/third_party/blink/web_tests/platform/mac-mac-arm11.0/fast/backgrounds/size/backgroundSize22-expected.png deleted file mode 100644 index d6a8962..0000000 --- a/third_party/blink/web_tests/platform/mac-mac-arm11.0/fast/backgrounds/size/backgroundSize22-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac-arm11.0/fast/borders/border-image-01-expected.png b/third_party/blink/web_tests/platform/mac-mac-arm11.0/fast/borders/border-image-01-expected.png deleted file mode 100644 index e394e18..0000000 --- a/third_party/blink/web_tests/platform/mac-mac-arm11.0/fast/borders/border-image-01-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac-arm11.0/fast/borders/border-image-border-radius-expected.png b/third_party/blink/web_tests/platform/mac-mac-arm11.0/fast/borders/border-image-border-radius-expected.png deleted file mode 100644 index 5883c51..0000000 --- a/third_party/blink/web_tests/platform/mac-mac-arm11.0/fast/borders/border-image-border-radius-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac-arm11.0/fast/borders/border-image-longhand-expected.png b/third_party/blink/web_tests/platform/mac-mac-arm11.0/fast/borders/border-image-longhand-expected.png deleted file mode 100644 index e394e18..0000000 --- a/third_party/blink/web_tests/platform/mac-mac-arm11.0/fast/borders/border-image-longhand-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac-arm11.0/fast/borders/border-image-outset-expected.png b/third_party/blink/web_tests/platform/mac-mac-arm11.0/fast/borders/border-image-outset-expected.png deleted file mode 100644 index d0c19ae..0000000 --- a/third_party/blink/web_tests/platform/mac-mac-arm11.0/fast/borders/border-image-outset-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac-arm11.0/fast/borders/border-image-outset-in-shorthand-expected.png b/third_party/blink/web_tests/platform/mac-mac-arm11.0/fast/borders/border-image-outset-in-shorthand-expected.png deleted file mode 100644 index d0c19ae..0000000 --- a/third_party/blink/web_tests/platform/mac-mac-arm11.0/fast/borders/border-image-outset-in-shorthand-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac-arm11.0/fast/borders/border-image-repeat-expected.png b/third_party/blink/web_tests/platform/mac-mac-arm11.0/fast/borders/border-image-repeat-expected.png deleted file mode 100644 index e394e18..0000000 --- a/third_party/blink/web_tests/platform/mac-mac-arm11.0/fast/borders/border-image-repeat-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac-arm11.0/fast/borders/border-image-scaled-expected.png b/third_party/blink/web_tests/platform/mac-mac-arm11.0/fast/borders/border-image-scaled-expected.png deleted file mode 100644 index e9c00e3..0000000 --- a/third_party/blink/web_tests/platform/mac-mac-arm11.0/fast/borders/border-image-scaled-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac-arm11.0/fast/borders/border-image-scrambled-expected.png b/third_party/blink/web_tests/platform/mac-mac-arm11.0/fast/borders/border-image-scrambled-expected.png deleted file mode 100644 index e394e18..0000000 --- a/third_party/blink/web_tests/platform/mac-mac-arm11.0/fast/borders/border-image-scrambled-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac-arm11.0/fast/borders/border-image-slices-expected.png b/third_party/blink/web_tests/platform/mac-mac-arm11.0/fast/borders/border-image-slices-expected.png deleted file mode 100644 index 7666df9..0000000 --- a/third_party/blink/web_tests/platform/mac-mac-arm11.0/fast/borders/border-image-slices-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac-arm11.0/fast/borders/border-image-source-expected.png b/third_party/blink/web_tests/platform/mac-mac-arm11.0/fast/borders/border-image-source-expected.png deleted file mode 100644 index e394e18..0000000 --- a/third_party/blink/web_tests/platform/mac-mac-arm11.0/fast/borders/border-image-source-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac-arm11.0/fast/borders/inline-mask-overlay-image-outset-expected.png b/third_party/blink/web_tests/platform/mac-mac-arm11.0/fast/borders/inline-mask-overlay-image-outset-expected.png deleted file mode 100644 index 10a6893d..0000000 --- a/third_party/blink/web_tests/platform/mac-mac-arm11.0/fast/borders/inline-mask-overlay-image-outset-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac-arm11.0/fast/borders/scaled-border-image-expected.png b/third_party/blink/web_tests/platform/mac-mac-arm11.0/fast/borders/scaled-border-image-expected.png deleted file mode 100644 index 56f9da5..0000000 --- a/third_party/blink/web_tests/platform/mac-mac-arm11.0/fast/borders/scaled-border-image-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac-arm11.0/fast/forms/color-scheme/media/video-overlay-menu-expected.png b/third_party/blink/web_tests/platform/mac-mac-arm11.0/fast/forms/color-scheme/media/video-overlay-menu-expected.png deleted file mode 100644 index 70f9f23d..0000000 --- a/third_party/blink/web_tests/platform/mac-mac-arm11.0/fast/forms/color-scheme/media/video-overlay-menu-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac-arm11.0/fast/reflections/reflection-masks-expected.png b/third_party/blink/web_tests/platform/mac-mac-arm11.0/fast/reflections/reflection-masks-expected.png deleted file mode 100644 index 16a75a3d..0000000 --- a/third_party/blink/web_tests/platform/mac-mac-arm11.0/fast/reflections/reflection-masks-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac-arm11.0/fast/reflections/reflection-masks-opacity-expected.png b/third_party/blink/web_tests/platform/mac-mac-arm11.0/fast/reflections/reflection-masks-opacity-expected.png deleted file mode 100644 index 8982998..0000000 --- a/third_party/blink/web_tests/platform/mac-mac-arm11.0/fast/reflections/reflection-masks-opacity-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac-arm11.0/fast/webgl/texImage-imageBitmap-from-blob-resize-expected.png b/third_party/blink/web_tests/platform/mac-mac-arm11.0/fast/webgl/texImage-imageBitmap-from-blob-resize-expected.png deleted file mode 100644 index 99586a4..0000000 --- a/third_party/blink/web_tests/platform/mac-mac-arm11.0/fast/webgl/texImage-imageBitmap-from-blob-resize-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac-arm11.0/fast/webgl/texImage-imageBitmap-from-canvas-resize-expected.png b/third_party/blink/web_tests/platform/mac-mac-arm11.0/fast/webgl/texImage-imageBitmap-from-canvas-resize-expected.png deleted file mode 100644 index 99586a4..0000000 --- a/third_party/blink/web_tests/platform/mac-mac-arm11.0/fast/webgl/texImage-imageBitmap-from-canvas-resize-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac-arm11.0/fast/webgl/texImage-imageBitmap-from-image-resize-expected.png b/third_party/blink/web_tests/platform/mac-mac-arm11.0/fast/webgl/texImage-imageBitmap-from-image-resize-expected.png deleted file mode 100644 index 99586a4..0000000 --- a/third_party/blink/web_tests/platform/mac-mac-arm11.0/fast/webgl/texImage-imageBitmap-from-image-resize-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac-arm11.0/fast/webgl/texImage-imageBitmap-from-imageData-resize-expected.png b/third_party/blink/web_tests/platform/mac-mac-arm11.0/fast/webgl/texImage-imageBitmap-from-imageData-resize-expected.png deleted file mode 100644 index 99586a4..0000000 --- a/third_party/blink/web_tests/platform/mac-mac-arm11.0/fast/webgl/texImage-imageBitmap-from-imageData-resize-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac-arm11.0/fast/webgl/texImage-imageBitmap-from-offscreen-canvas-resize-expected.png b/third_party/blink/web_tests/platform/mac-mac-arm11.0/fast/webgl/texImage-imageBitmap-from-offscreen-canvas-resize-expected.png deleted file mode 100644 index 99586a4..0000000 --- a/third_party/blink/web_tests/platform/mac-mac-arm11.0/fast/webgl/texImage-imageBitmap-from-offscreen-canvas-resize-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac-arm11.0/http/tests/misc/slow-loading-image-in-pattern-expected.png b/third_party/blink/web_tests/platform/mac-mac-arm11.0/http/tests/misc/slow-loading-image-in-pattern-expected.png deleted file mode 100644 index 5778442..0000000 --- a/third_party/blink/web_tests/platform/mac-mac-arm11.0/http/tests/misc/slow-loading-image-in-pattern-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac-arm11.0/images/color-profile-background-image-cover-expected.png b/third_party/blink/web_tests/platform/mac-mac-arm11.0/images/color-profile-background-image-cover-expected.png deleted file mode 100644 index d6f8669..0000000 --- a/third_party/blink/web_tests/platform/mac-mac-arm11.0/images/color-profile-background-image-cover-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac-arm11.0/images/color-profile-background-image-space-expected.png b/third_party/blink/web_tests/platform/mac-mac-arm11.0/images/color-profile-background-image-space-expected.png deleted file mode 100644 index 2fa6ca1b..0000000 --- a/third_party/blink/web_tests/platform/mac-mac-arm11.0/images/color-profile-background-image-space-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac-arm11.0/images/color-profile-border-image-expected.png b/third_party/blink/web_tests/platform/mac-mac-arm11.0/images/color-profile-border-image-expected.png deleted file mode 100644 index a7cd2e4..0000000 --- a/third_party/blink/web_tests/platform/mac-mac-arm11.0/images/color-profile-border-image-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac-arm11.0/images/color-profile-border-image-source-expected.png b/third_party/blink/web_tests/platform/mac-mac-arm11.0/images/color-profile-border-image-source-expected.png deleted file mode 100644 index e394e18..0000000 --- a/third_party/blink/web_tests/platform/mac-mac-arm11.0/images/color-profile-border-image-source-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac-arm11.0/images/color-profile-svg-fill-text-expected.png b/third_party/blink/web_tests/platform/mac-mac-arm11.0/images/color-profile-svg-fill-text-expected.png deleted file mode 100644 index d9d108b..0000000 --- a/third_party/blink/web_tests/platform/mac-mac-arm11.0/images/color-profile-svg-fill-text-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac-arm11.0/images/sprite-no-bleed-expected.png b/third_party/blink/web_tests/platform/mac-mac-arm11.0/images/sprite-no-bleed-expected.png deleted file mode 100644 index 143e3672..0000000 --- a/third_party/blink/web_tests/platform/mac-mac-arm11.0/images/sprite-no-bleed-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac-arm11.0/media/controls-after-reload-expected.png b/third_party/blink/web_tests/platform/mac-mac-arm11.0/media/controls-after-reload-expected.png deleted file mode 100644 index d7ee63f0..0000000 --- a/third_party/blink/web_tests/platform/mac-mac-arm11.0/media/controls-after-reload-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac-arm11.0/media/controls-strict-expected.png b/third_party/blink/web_tests/platform/mac-mac-arm11.0/media/controls-strict-expected.png deleted file mode 100644 index 70f3b153..0000000 --- a/third_party/blink/web_tests/platform/mac-mac-arm11.0/media/controls-strict-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac-arm11.0/media/controls-styling-expected.png b/third_party/blink/web_tests/platform/mac-mac-arm11.0/media/controls-styling-expected.png deleted file mode 100644 index 22a52af0..0000000 --- a/third_party/blink/web_tests/platform/mac-mac-arm11.0/media/controls-styling-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac-arm11.0/media/controls-styling-strict-expected.png b/third_party/blink/web_tests/platform/mac-mac-arm11.0/media/controls-styling-strict-expected.png deleted file mode 100644 index 0448d1b..0000000 --- a/third_party/blink/web_tests/platform/mac-mac-arm11.0/media/controls-styling-strict-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac-arm11.0/media/controls-without-preload-expected.png b/third_party/blink/web_tests/platform/mac-mac-arm11.0/media/controls-without-preload-expected.png deleted file mode 100644 index b7c4ffff..0000000 --- a/third_party/blink/web_tests/platform/mac-mac-arm11.0/media/controls-without-preload-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac-arm11.0/media/controls/paint-controls-webkit-appearance-none-expected.png b/third_party/blink/web_tests/platform/mac-mac-arm11.0/media/controls/paint-controls-webkit-appearance-none-expected.png deleted file mode 100644 index a028cfff..0000000 --- a/third_party/blink/web_tests/platform/mac-mac-arm11.0/media/controls/paint-controls-webkit-appearance-none-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac-arm11.0/media/video-display-toggle-expected.png b/third_party/blink/web_tests/platform/mac-mac-arm11.0/media/video-display-toggle-expected.png deleted file mode 100644 index d6f39d5b..0000000 --- a/third_party/blink/web_tests/platform/mac-mac-arm11.0/media/video-display-toggle-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac-arm11.0/media/video-no-audio-expected.png b/third_party/blink/web_tests/platform/mac-mac-arm11.0/media/video-no-audio-expected.png deleted file mode 100644 index a3c6c063..0000000 --- a/third_party/blink/web_tests/platform/mac-mac-arm11.0/media/video-no-audio-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac-arm11.0/media/video-poster-scale-expected.png b/third_party/blink/web_tests/platform/mac-mac-arm11.0/media/video-poster-scale-expected.png deleted file mode 100644 index 026f161e..0000000 --- a/third_party/blink/web_tests/platform/mac-mac-arm11.0/media/video-poster-scale-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac-arm11.0/media/video-zoom-controls-expected.png b/third_party/blink/web_tests/platform/mac-mac-arm11.0/media/video-zoom-controls-expected.png deleted file mode 100644 index 5f7482c..0000000 --- a/third_party/blink/web_tests/platform/mac-mac-arm11.0/media/video-zoom-controls-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac-arm11.0/paint/invalidation/svg/js-update-image-expected.png b/third_party/blink/web_tests/platform/mac-mac-arm11.0/paint/invalidation/svg/js-update-image-expected.png deleted file mode 100644 index c93cffd..0000000 --- a/third_party/blink/web_tests/platform/mac-mac-arm11.0/paint/invalidation/svg/js-update-image-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac-arm11.0/svg/custom/convolution-crash-expected.png b/third_party/blink/web_tests/platform/mac-mac-arm11.0/svg/custom/convolution-crash-expected.png deleted file mode 100644 index 1adac69..0000000 --- a/third_party/blink/web_tests/platform/mac-mac-arm11.0/svg/custom/convolution-crash-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac-arm11.0/svg/custom/createImageElement-expected.png b/third_party/blink/web_tests/platform/mac-mac-arm11.0/svg/custom/createImageElement-expected.png deleted file mode 100644 index 3f310b22..0000000 --- a/third_party/blink/web_tests/platform/mac-mac-arm11.0/svg/custom/createImageElement-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac-arm11.0/svg/custom/createImageElement2-expected.png b/third_party/blink/web_tests/platform/mac-mac-arm11.0/svg/custom/createImageElement2-expected.png deleted file mode 100644 index e8414fa1..0000000 --- a/third_party/blink/web_tests/platform/mac-mac-arm11.0/svg/custom/createImageElement2-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac-arm11.0/svg/custom/image-parent-translation-expected.png b/third_party/blink/web_tests/platform/mac-mac-arm11.0/svg/custom/image-parent-translation-expected.png deleted file mode 100644 index 5b93bd5b..0000000 --- a/third_party/blink/web_tests/platform/mac-mac-arm11.0/svg/custom/image-parent-translation-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac-arm11.0/svg/custom/image-small-width-height-expected.png b/third_party/blink/web_tests/platform/mac-mac-arm11.0/svg/custom/image-small-width-height-expected.png deleted file mode 100644 index f29b1a9a..0000000 --- a/third_party/blink/web_tests/platform/mac-mac-arm11.0/svg/custom/image-small-width-height-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac-arm11.0/svg/custom/js-update-image-and-display-expected.png b/third_party/blink/web_tests/platform/mac-mac-arm11.0/svg/custom/js-update-image-and-display-expected.png deleted file mode 100644 index c93cffd..0000000 --- a/third_party/blink/web_tests/platform/mac-mac-arm11.0/svg/custom/js-update-image-and-display-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac-arm11.0/svg/custom/js-update-image-and-display2-expected.png b/third_party/blink/web_tests/platform/mac-mac-arm11.0/svg/custom/js-update-image-and-display2-expected.png deleted file mode 100644 index c93cffd..0000000 --- a/third_party/blink/web_tests/platform/mac-mac-arm11.0/svg/custom/js-update-image-and-display2-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac-arm11.0/svg/custom/js-update-image-and-display3-expected.png b/third_party/blink/web_tests/platform/mac-mac-arm11.0/svg/custom/js-update-image-and-display3-expected.png deleted file mode 100644 index c93cffd..0000000 --- a/third_party/blink/web_tests/platform/mac-mac-arm11.0/svg/custom/js-update-image-and-display3-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac-arm11.0/svg/custom/pointer-events-image-css-transform-expected.png b/third_party/blink/web_tests/platform/mac-mac-arm11.0/svg/custom/pointer-events-image-css-transform-expected.png deleted file mode 100644 index 324d16e5..0000000 --- a/third_party/blink/web_tests/platform/mac-mac-arm11.0/svg/custom/pointer-events-image-css-transform-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac-arm11.0/svg/custom/pointer-events-image-expected.png b/third_party/blink/web_tests/platform/mac-mac-arm11.0/svg/custom/pointer-events-image-expected.png deleted file mode 100644 index 324d16e5..0000000 --- a/third_party/blink/web_tests/platform/mac-mac-arm11.0/svg/custom/pointer-events-image-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac-arm11.0/svg/custom/text-image-opacity-expected.png b/third_party/blink/web_tests/platform/mac-mac-arm11.0/svg/custom/text-image-opacity-expected.png deleted file mode 100644 index 0587824..0000000 --- a/third_party/blink/web_tests/platform/mac-mac-arm11.0/svg/custom/text-image-opacity-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac-arm11.0/svg/custom/use-on-g-containing-foreignObject-and-image-expected.png b/third_party/blink/web_tests/platform/mac-mac-arm11.0/svg/custom/use-on-g-containing-foreignObject-and-image-expected.png deleted file mode 100644 index 6ba300a..0000000 --- a/third_party/blink/web_tests/platform/mac-mac-arm11.0/svg/custom/use-on-g-containing-foreignObject-and-image-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac-arm11.0/svg/dynamic-updates/SVGImageElement-dom-preserveAspectRatio-attr-expected.png b/third_party/blink/web_tests/platform/mac-mac-arm11.0/svg/dynamic-updates/SVGImageElement-dom-preserveAspectRatio-attr-expected.png deleted file mode 100644 index 682509b..0000000 --- a/third_party/blink/web_tests/platform/mac-mac-arm11.0/svg/dynamic-updates/SVGImageElement-dom-preserveAspectRatio-attr-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac-arm11.0/svg/dynamic-updates/SVGImageElement-dom-width-attr-expected.png b/third_party/blink/web_tests/platform/mac-mac-arm11.0/svg/dynamic-updates/SVGImageElement-dom-width-attr-expected.png deleted file mode 100644 index 3a6c4546..0000000 --- a/third_party/blink/web_tests/platform/mac-mac-arm11.0/svg/dynamic-updates/SVGImageElement-dom-width-attr-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac-arm11.0/svg/dynamic-updates/SVGImageElement-dom-x-attr-expected.png b/third_party/blink/web_tests/platform/mac-mac-arm11.0/svg/dynamic-updates/SVGImageElement-dom-x-attr-expected.png deleted file mode 100644 index 3a6c4546..0000000 --- a/third_party/blink/web_tests/platform/mac-mac-arm11.0/svg/dynamic-updates/SVGImageElement-dom-x-attr-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac-arm11.0/svg/dynamic-updates/SVGImageElement-dom-y-attr-expected.png b/third_party/blink/web_tests/platform/mac-mac-arm11.0/svg/dynamic-updates/SVGImageElement-dom-y-attr-expected.png deleted file mode 100644 index 3a6c4546..0000000 --- a/third_party/blink/web_tests/platform/mac-mac-arm11.0/svg/dynamic-updates/SVGImageElement-dom-y-attr-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac-arm11.0/svg/dynamic-updates/SVGImageElement-svgdom-height-prop-expected.png b/third_party/blink/web_tests/platform/mac-mac-arm11.0/svg/dynamic-updates/SVGImageElement-svgdom-height-prop-expected.png deleted file mode 100644 index 3a6c4546..0000000 --- a/third_party/blink/web_tests/platform/mac-mac-arm11.0/svg/dynamic-updates/SVGImageElement-svgdom-height-prop-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac-arm11.0/svg/dynamic-updates/SVGImageElement-svgdom-preserveAspectRatio-prop-expected.png b/third_party/blink/web_tests/platform/mac-mac-arm11.0/svg/dynamic-updates/SVGImageElement-svgdom-preserveAspectRatio-prop-expected.png deleted file mode 100644 index 3a6c4546..0000000 --- a/third_party/blink/web_tests/platform/mac-mac-arm11.0/svg/dynamic-updates/SVGImageElement-svgdom-preserveAspectRatio-prop-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac-arm11.0/svg/dynamic-updates/SVGImageElement-svgdom-width-prop-expected.png b/third_party/blink/web_tests/platform/mac-mac-arm11.0/svg/dynamic-updates/SVGImageElement-svgdom-width-prop-expected.png deleted file mode 100644 index 3a6c4546..0000000 --- a/third_party/blink/web_tests/platform/mac-mac-arm11.0/svg/dynamic-updates/SVGImageElement-svgdom-width-prop-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac-arm11.0/svg/dynamic-updates/SVGImageElement-svgdom-x-prop-expected.png b/third_party/blink/web_tests/platform/mac-mac-arm11.0/svg/dynamic-updates/SVGImageElement-svgdom-x-prop-expected.png deleted file mode 100644 index 3a6c4546..0000000 --- a/third_party/blink/web_tests/platform/mac-mac-arm11.0/svg/dynamic-updates/SVGImageElement-svgdom-x-prop-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac-arm11.0/svg/dynamic-updates/SVGImageElement-svgdom-y-prop-expected.png b/third_party/blink/web_tests/platform/mac-mac-arm11.0/svg/dynamic-updates/SVGImageElement-svgdom-y-prop-expected.png deleted file mode 100644 index 3a6c4546..0000000 --- a/third_party/blink/web_tests/platform/mac-mac-arm11.0/svg/dynamic-updates/SVGImageElement-svgdom-y-prop-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac-arm11.0/svg/wicd/test-rightsizing-b-expected.png b/third_party/blink/web_tests/platform/mac-mac-arm11.0/svg/wicd/test-rightsizing-b-expected.png deleted file mode 100644 index 909c1c7..0000000 --- a/third_party/blink/web_tests/platform/mac-mac-arm11.0/svg/wicd/test-rightsizing-b-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac-arm11.0/tables/mozilla/bugs/bug11026-expected.png b/third_party/blink/web_tests/platform/mac-mac-arm11.0/tables/mozilla/bugs/bug11026-expected.png deleted file mode 100644 index e3c6d78..0000000 --- a/third_party/blink/web_tests/platform/mac-mac-arm11.0/tables/mozilla/bugs/bug11026-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac-arm11.0/tables/mozilla/bugs/bug4093-expected.png b/third_party/blink/web_tests/platform/mac-mac-arm11.0/tables/mozilla/bugs/bug4093-expected.png deleted file mode 100644 index 570e2c2..0000000 --- a/third_party/blink/web_tests/platform/mac-mac-arm11.0/tables/mozilla/bugs/bug4093-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac-arm11.0/virtual/dark-color-scheme/media/video-controls-rendering-expected.png b/third_party/blink/web_tests/platform/mac-mac-arm11.0/virtual/dark-color-scheme/media/video-controls-rendering-expected.png deleted file mode 100644 index e7b148c..0000000 --- a/third_party/blink/web_tests/platform/mac-mac-arm11.0/virtual/dark-color-scheme/media/video-controls-rendering-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac-arm11.0/virtual/exotic-color-space/images/color-profile-group-expected.png b/third_party/blink/web_tests/platform/mac-mac-arm11.0/virtual/exotic-color-space/images/color-profile-group-expected.png deleted file mode 100644 index 5c047a2..0000000 --- a/third_party/blink/web_tests/platform/mac-mac-arm11.0/virtual/exotic-color-space/images/color-profile-group-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac-arm11.0/virtual/exotic-color-space/images/color-profile-svg-fill-text-expected.png b/third_party/blink/web_tests/platform/mac-mac-arm11.0/virtual/exotic-color-space/images/color-profile-svg-fill-text-expected.png deleted file mode 100644 index e17e9ce..0000000 --- a/third_party/blink/web_tests/platform/mac-mac-arm11.0/virtual/exotic-color-space/images/color-profile-svg-fill-text-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac-arm11.0/virtual/exotic-color-space/images/sprite-no-bleed-expected.png b/third_party/blink/web_tests/platform/mac-mac-arm11.0/virtual/exotic-color-space/images/sprite-no-bleed-expected.png deleted file mode 100644 index 8ce49a4a..0000000 --- a/third_party/blink/web_tests/platform/mac-mac-arm11.0/virtual/exotic-color-space/images/sprite-no-bleed-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac-arm11.0/virtual/gpu-rasterization-disable-yuv/images/yuv-decode-eligible/color-profile-border-radius-expected.png b/third_party/blink/web_tests/platform/mac-mac-arm11.0/virtual/gpu-rasterization-disable-yuv/images/yuv-decode-eligible/color-profile-border-radius-expected.png new file mode 100644 index 0000000..cb230c1 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac-arm11.0/virtual/gpu-rasterization-disable-yuv/images/yuv-decode-eligible/color-profile-border-radius-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac-arm11.0/virtual/gpu-rasterization-disable-yuv/images/yuv-decode-eligible/color-profile-filter-expected.png b/third_party/blink/web_tests/platform/mac-mac-arm11.0/virtual/gpu-rasterization-disable-yuv/images/yuv-decode-eligible/color-profile-filter-expected.png new file mode 100644 index 0000000..0af66ee --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac-arm11.0/virtual/gpu-rasterization-disable-yuv/images/yuv-decode-eligible/color-profile-filter-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac-arm11.0/virtual/gpu-rasterization-disable-yuv/images/yuv-decode-eligible/color-profile-image-expected.png b/third_party/blink/web_tests/platform/mac-mac-arm11.0/virtual/gpu-rasterization-disable-yuv/images/yuv-decode-eligible/color-profile-image-expected.png new file mode 100644 index 0000000..fbbb309 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac-arm11.0/virtual/gpu-rasterization-disable-yuv/images/yuv-decode-eligible/color-profile-image-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac-arm11.0/virtual/gpu-rasterization/images/color-profile-border-image-expected.png b/third_party/blink/web_tests/platform/mac-mac-arm11.0/virtual/gpu-rasterization/images/color-profile-border-image-expected.png new file mode 100644 index 0000000..f83899f --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac-arm11.0/virtual/gpu-rasterization/images/color-profile-border-image-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac-arm11.0/virtual/gpu-rasterization/images/color-profile-image-canvas-expected.png b/third_party/blink/web_tests/platform/mac-mac-arm11.0/virtual/gpu-rasterization/images/color-profile-image-canvas-expected.png new file mode 100644 index 0000000..200168c --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac-arm11.0/virtual/gpu-rasterization/images/color-profile-image-canvas-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac-arm11.0/virtual/gpu-rasterization/images/color-profile-image-canvas-pattern-expected.png b/third_party/blink/web_tests/platform/mac-mac-arm11.0/virtual/gpu-rasterization/images/color-profile-image-canvas-pattern-expected.png new file mode 100644 index 0000000..e492aa9a --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac-arm11.0/virtual/gpu-rasterization/images/color-profile-image-canvas-pattern-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac-arm11.0/virtual/gpu-rasterization/images/color-profile-image-filter-all-expected.png b/third_party/blink/web_tests/platform/mac-mac-arm11.0/virtual/gpu-rasterization/images/color-profile-image-filter-all-expected.png new file mode 100644 index 0000000..ffd96a8 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac-arm11.0/virtual/gpu-rasterization/images/color-profile-image-filter-all-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac-arm11.0/virtual/gpu-rasterization/images/color-profile-object-expected.png b/third_party/blink/web_tests/platform/mac-mac-arm11.0/virtual/gpu-rasterization/images/color-profile-object-expected.png new file mode 100644 index 0000000..5e115ce5 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac-arm11.0/virtual/gpu-rasterization/images/color-profile-object-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac-arm11.0/virtual/gpu-rasterization/images/yuv-decode-eligible/color-profile-filter-expected.png b/third_party/blink/web_tests/platform/mac-mac-arm11.0/virtual/gpu-rasterization/images/yuv-decode-eligible/color-profile-filter-expected.png new file mode 100644 index 0000000..0af66ee --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac-arm11.0/virtual/gpu-rasterization/images/yuv-decode-eligible/color-profile-filter-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac-arm11.0/virtual/gpu-rasterization/images/yuv-decode-eligible/color-profile-image-expected.png b/third_party/blink/web_tests/platform/mac-mac-arm11.0/virtual/gpu-rasterization/images/yuv-decode-eligible/color-profile-image-expected.png new file mode 100644 index 0000000..fbbb309 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac-arm11.0/virtual/gpu-rasterization/images/yuv-decode-eligible/color-profile-image-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac-arm11.0/virtual/layout_ng_block_frag/external/wpt/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/legend-display-expected.txt b/third_party/blink/web_tests/platform/mac-mac-arm11.0/virtual/layout_ng_block_frag/external/wpt/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/legend-display-expected.txt new file mode 100644 index 0000000..d13c68ba --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac-arm11.0/virtual/layout_ng_block_frag/external/wpt/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/legend-display-expected.txt
@@ -0,0 +1,29 @@ +This is a testharness.js-based test. +PASS rendered legend with display: block +PASS rendered legend with display: table +FAIL rendered legend with display: table-row-group assert_equals: display: table-row-group is not supported expected "table-row-group" but got "block" +FAIL rendered legend with display: table-header-group assert_equals: display: table-header-group is not supported expected "table-header-group" but got "block" +FAIL rendered legend with display: table-footer-group assert_equals: display: table-footer-group is not supported expected "table-footer-group" but got "block" +FAIL rendered legend with display: table-row assert_equals: display: table-row is not supported expected "table-row" but got "block" +FAIL rendered legend with display: table-cell assert_equals: display: table-cell is not supported expected "table-cell" but got "block" +FAIL rendered legend with display: table-column-group assert_equals: display: table-column-group is not supported expected "table-column-group" but got "block" +FAIL rendered legend with display: table-column assert_equals: display: table-column is not supported expected "table-column" but got "block" +FAIL rendered legend with display: table-caption assert_equals: display: table-caption is not supported expected "table-caption" but got "block" +PASS rendered legend with display: list-item +FAIL rendered legend with display: flow assert_equals: display: flow is not supported expected "flow" but got "block" +PASS rendered legend with display: flow-root +FAIL rendered legend with display: run-in assert_equals: display: run-in is not supported expected "run-in" but got "block" +FAIL rendered legend with display: inline assert_equals: display: inline is not supported expected "inline" but got "block" +FAIL rendered legend with display: inline-block assert_equals: display: inline-block is not supported expected "inline-block" but got "block" +FAIL rendered legend with display: inline-table assert_equals: display: inline-table is not supported expected "inline-table" but got "table" +FAIL rendered legend with display: ruby assert_equals: display: ruby is not supported expected "ruby" but got "block" +FAIL rendered legend with display: ruby-base assert_equals: display: ruby-base is not supported expected "ruby-base" but got "block" +FAIL rendered legend with display: ruby-text assert_equals: display: ruby-text is not supported expected "ruby-text" but got "block" +FAIL rendered legend with display: ruby-base-container assert_equals: display: ruby-base-container is not supported expected "ruby-base-container" but got "block" +FAIL rendered legend with display: ruby-text-container assert_equals: display: ruby-text-container is not supported expected "ruby-text-container" but got "block" +PASS rendered legend with display: grid +FAIL rendered legend with display: inline-grid assert_equals: display: inline-grid is not supported expected "inline-grid" but got "grid" +PASS rendered legend with display: flex +FAIL rendered legend with display: inline-flex assert_equals: display: inline-flex is not supported expected "inline-flex" but got "flex" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac-arm11.0/virtual/link-disabled-old-behavior/external/wpt/css/cssom/idlharness-expected.txt b/third_party/blink/web_tests/platform/mac-mac-arm11.0/virtual/link-disabled-old-behavior/external/wpt/css/cssom/idlharness-expected.txt new file mode 100644 index 0000000..185f987 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac-arm11.0/virtual/link-disabled-old-behavior/external/wpt/css/cssom/idlharness-expected.txt
@@ -0,0 +1,441 @@ +This is a testharness.js-based test. +Found 435 tests; 380 PASS, 55 FAIL, 0 TIMEOUT, 0 NOTRUN. +PASS idl_test setup +PASS idl_test validation +PASS Partial interface CSSStyleSheet: original interface defined +PASS Partial interface CSSStyleSheet: member names are unique +PASS Partial interface mixin DocumentOrShadowRoot: original interface mixin defined +PASS Partial interface mixin DocumentOrShadowRoot: member names are unique +PASS Partial interface Window: original interface defined +PASS Partial interface Window: member names are unique +PASS Partial interface mixin DocumentOrShadowRoot[2]: member names are unique +PASS Partial interface HTMLLinkElement: member names are unique +PASS Partial interface HTMLStyleElement: member names are unique +PASS Partial interface Window[2]: member names are unique +PASS ProcessingInstruction includes LinkStyle: member names are unique +PASS HTMLElement includes ElementCSSInlineStyle: member names are unique +PASS HTMLElement includes GlobalEventHandlers: member names are unique +PASS HTMLElement includes DocumentAndElementEventHandlers: member names are unique +PASS HTMLElement includes ElementContentEditable: member names are unique +PASS HTMLElement includes HTMLOrSVGElement: member names are unique +PASS SVGElement includes ElementCSSInlineStyle: member names are unique +PASS SVGElement includes GlobalEventHandlers: member names are unique +PASS SVGElement includes DocumentAndElementEventHandlers: member names are unique +PASS SVGElement includes SVGElementInstance: member names are unique +PASS SVGElement includes HTMLOrSVGElement: member names are unique +PASS SVGStyleElement includes LinkStyle: member names are unique +PASS HTMLLinkElement includes LinkStyle: member names are unique +PASS HTMLStyleElement includes LinkStyle: member names are unique +PASS Window includes GlobalEventHandlers: member names are unique +PASS Window includes WindowEventHandlers: member names are unique +PASS Window includes WindowOrWorkerGlobalScope: member names are unique +PASS Window includes AnimationFrameProvider: member names are unique +PASS Window includes WindowSessionStorage: member names are unique +PASS Window includes WindowLocalStorage: member names are unique +PASS Document includes NonElementParentNode: member names are unique +PASS Document includes DocumentOrShadowRoot: member names are unique +PASS Document includes ParentNode: member names are unique +PASS Document includes XPathEvaluatorBase: member names are unique +PASS DocumentFragment includes NonElementParentNode: member names are unique +PASS DocumentFragment includes ParentNode: member names are unique +PASS ShadowRoot includes DocumentOrShadowRoot: member names are unique +PASS Element includes ParentNode: member names are unique +PASS Element includes NonDocumentTypeChildNode: member names are unique +PASS Element includes ChildNode: member names are unique +PASS Element includes Slottable: member names are unique +PASS CharacterData includes NonDocumentTypeChildNode: member names are unique +PASS CharacterData includes ChildNode: member names are unique +PASS MediaList interface: existence and properties of interface object +PASS MediaList interface object length +PASS MediaList interface object name +PASS MediaList interface: existence and properties of interface prototype object +PASS MediaList interface: existence and properties of interface prototype object's "constructor" property +PASS MediaList interface: existence and properties of interface prototype object's @@unscopables property +PASS MediaList interface: attribute mediaText +PASS MediaList interface: stringifier +PASS MediaList interface: attribute length +PASS MediaList interface: operation item(unsigned long) +PASS MediaList interface: operation appendMedium(CSSOMString) +PASS MediaList interface: operation deleteMedium(CSSOMString) +PASS MediaList must be primary interface of sheet.media +PASS Stringification of sheet.media +PASS MediaList interface: sheet.media must inherit property "mediaText" with the proper type +PASS MediaList interface: sheet.media must inherit property "length" with the proper type +PASS MediaList interface: sheet.media must inherit property "item(unsigned long)" with the proper type +PASS MediaList interface: calling item(unsigned long) on sheet.media with too few arguments must throw TypeError +PASS MediaList interface: sheet.media must inherit property "appendMedium(CSSOMString)" with the proper type +PASS MediaList interface: calling appendMedium(CSSOMString) on sheet.media with too few arguments must throw TypeError +PASS MediaList interface: sheet.media must inherit property "deleteMedium(CSSOMString)" with the proper type +PASS MediaList interface: calling deleteMedium(CSSOMString) on sheet.media with too few arguments must throw TypeError +PASS StyleSheet interface: existence and properties of interface object +PASS StyleSheet interface object length +PASS StyleSheet interface object name +PASS StyleSheet interface: existence and properties of interface prototype object +PASS StyleSheet interface: existence and properties of interface prototype object's "constructor" property +PASS StyleSheet interface: existence and properties of interface prototype object's @@unscopables property +PASS StyleSheet interface: attribute type +PASS StyleSheet interface: attribute href +PASS StyleSheet interface: attribute ownerNode +PASS StyleSheet interface: attribute parentStyleSheet +PASS StyleSheet interface: attribute title +PASS StyleSheet interface: attribute media +PASS StyleSheet interface: attribute disabled +FAIL CSSStyleSheet interface: existence and properties of interface object assert_throws_js: interface object didn't throw TypeError when called as a constructor function "function() { + new interface_object(); + }" did not throw +PASS CSSStyleSheet interface object length +PASS CSSStyleSheet interface object name +PASS CSSStyleSheet interface: existence and properties of interface prototype object +PASS CSSStyleSheet interface: existence and properties of interface prototype object's "constructor" property +PASS CSSStyleSheet interface: existence and properties of interface prototype object's @@unscopables property +PASS CSSStyleSheet interface: attribute ownerRule +PASS CSSStyleSheet interface: attribute cssRules +PASS CSSStyleSheet interface: operation insertRule(CSSOMString, optional unsigned long) +PASS CSSStyleSheet interface: operation deleteRule(unsigned long) +PASS CSSStyleSheet interface: attribute rules +PASS CSSStyleSheet interface: operation addRule(optional DOMString, optional DOMString, optional unsigned long) +PASS CSSStyleSheet interface: operation removeRule(optional unsigned long) +PASS CSSStyleSheet must be primary interface of sheet +PASS Stringification of sheet +PASS CSSStyleSheet interface: sheet must inherit property "ownerRule" with the proper type +PASS CSSStyleSheet interface: sheet must inherit property "cssRules" with the proper type +PASS CSSStyleSheet interface: sheet must inherit property "insertRule(CSSOMString, optional unsigned long)" with the proper type +PASS CSSStyleSheet interface: calling insertRule(CSSOMString, optional unsigned long) on sheet with too few arguments must throw TypeError +PASS CSSStyleSheet interface: sheet must inherit property "deleteRule(unsigned long)" with the proper type +PASS CSSStyleSheet interface: calling deleteRule(unsigned long) on sheet with too few arguments must throw TypeError +PASS CSSStyleSheet interface: sheet must inherit property "rules" with the proper type +PASS CSSStyleSheet interface: sheet must inherit property "addRule(optional DOMString, optional DOMString, optional unsigned long)" with the proper type +PASS CSSStyleSheet interface: calling addRule(optional DOMString, optional DOMString, optional unsigned long) on sheet with too few arguments must throw TypeError +PASS CSSStyleSheet interface: sheet must inherit property "removeRule(optional unsigned long)" with the proper type +PASS CSSStyleSheet interface: calling removeRule(optional unsigned long) on sheet with too few arguments must throw TypeError +PASS StyleSheet interface: sheet must inherit property "type" with the proper type +PASS StyleSheet interface: sheet must inherit property "href" with the proper type +PASS StyleSheet interface: sheet must inherit property "ownerNode" with the proper type +PASS StyleSheet interface: sheet must inherit property "parentStyleSheet" with the proper type +PASS StyleSheet interface: sheet must inherit property "title" with the proper type +PASS StyleSheet interface: sheet must inherit property "media" with the proper type +PASS StyleSheet interface: sheet must inherit property "disabled" with the proper type +PASS StyleSheetList interface: existence and properties of interface object +PASS StyleSheetList interface object length +PASS StyleSheetList interface object name +PASS StyleSheetList interface: existence and properties of interface prototype object +PASS StyleSheetList interface: existence and properties of interface prototype object's "constructor" property +PASS StyleSheetList interface: existence and properties of interface prototype object's @@unscopables property +PASS StyleSheetList interface: operation item(unsigned long) +PASS StyleSheetList interface: attribute length +PASS StyleSheetList must be primary interface of document.styleSheets +PASS Stringification of document.styleSheets +PASS StyleSheetList interface: document.styleSheets must inherit property "item(unsigned long)" with the proper type +PASS StyleSheetList interface: calling item(unsigned long) on document.styleSheets with too few arguments must throw TypeError +PASS StyleSheetList interface: document.styleSheets must inherit property "length" with the proper type +PASS CSSRuleList interface: existence and properties of interface object +PASS CSSRuleList interface object length +PASS CSSRuleList interface object name +PASS CSSRuleList interface: existence and properties of interface prototype object +PASS CSSRuleList interface: existence and properties of interface prototype object's "constructor" property +PASS CSSRuleList interface: existence and properties of interface prototype object's @@unscopables property +PASS CSSRuleList interface: operation item(unsigned long) +PASS CSSRuleList interface: attribute length +PASS CSSRuleList must be primary interface of sheet.cssRules +PASS Stringification of sheet.cssRules +PASS CSSRuleList interface: sheet.cssRules must inherit property "item(unsigned long)" with the proper type +PASS CSSRuleList interface: calling item(unsigned long) on sheet.cssRules with too few arguments must throw TypeError +PASS CSSRuleList interface: sheet.cssRules must inherit property "length" with the proper type +PASS CSSRule interface: existence and properties of interface object +PASS CSSRule interface object length +PASS CSSRule interface object name +PASS CSSRule interface: existence and properties of interface prototype object +PASS CSSRule interface: existence and properties of interface prototype object's "constructor" property +PASS CSSRule interface: existence and properties of interface prototype object's @@unscopables property +PASS CSSRule interface: attribute cssText +PASS CSSRule interface: attribute parentRule +PASS CSSRule interface: attribute parentStyleSheet +PASS CSSRule interface: attribute type +PASS CSSRule interface: constant STYLE_RULE on interface object +PASS CSSRule interface: constant STYLE_RULE on interface prototype object +PASS CSSRule interface: constant CHARSET_RULE on interface object +PASS CSSRule interface: constant CHARSET_RULE on interface prototype object +PASS CSSRule interface: constant IMPORT_RULE on interface object +PASS CSSRule interface: constant IMPORT_RULE on interface prototype object +PASS CSSRule interface: constant MEDIA_RULE on interface object +PASS CSSRule interface: constant MEDIA_RULE on interface prototype object +PASS CSSRule interface: constant FONT_FACE_RULE on interface object +PASS CSSRule interface: constant FONT_FACE_RULE on interface prototype object +PASS CSSRule interface: constant PAGE_RULE on interface object +PASS CSSRule interface: constant PAGE_RULE on interface prototype object +FAIL CSSRule interface: constant MARGIN_RULE on interface object assert_own_property: expected property "MARGIN_RULE" missing +FAIL CSSRule interface: constant MARGIN_RULE on interface prototype object assert_own_property: expected property "MARGIN_RULE" missing +PASS CSSRule interface: constant NAMESPACE_RULE on interface object +PASS CSSRule interface: constant NAMESPACE_RULE on interface prototype object +PASS CSSStyleRule interface: existence and properties of interface object +PASS CSSStyleRule interface object length +PASS CSSStyleRule interface object name +PASS CSSStyleRule interface: existence and properties of interface prototype object +PASS CSSStyleRule interface: existence and properties of interface prototype object's "constructor" property +PASS CSSStyleRule interface: existence and properties of interface prototype object's @@unscopables property +PASS CSSStyleRule interface: attribute selectorText +PASS CSSStyleRule interface: attribute style +PASS CSSStyleRule must be primary interface of sheet.cssRules[4] +PASS Stringification of sheet.cssRules[4] +PASS CSSStyleRule interface: sheet.cssRules[4] must inherit property "selectorText" with the proper type +PASS CSSStyleRule interface: sheet.cssRules[4] must inherit property "style" with the proper type +PASS CSSRule interface: sheet.cssRules[4] must inherit property "cssText" with the proper type +PASS CSSRule interface: sheet.cssRules[4] must inherit property "parentRule" with the proper type +PASS CSSRule interface: sheet.cssRules[4] must inherit property "parentStyleSheet" with the proper type +PASS CSSRule interface: sheet.cssRules[4] must inherit property "type" with the proper type +PASS CSSRule interface: sheet.cssRules[4] must inherit property "STYLE_RULE" with the proper type +PASS CSSRule interface: sheet.cssRules[4] must inherit property "CHARSET_RULE" with the proper type +PASS CSSRule interface: sheet.cssRules[4] must inherit property "IMPORT_RULE" with the proper type +PASS CSSRule interface: sheet.cssRules[4] must inherit property "MEDIA_RULE" with the proper type +PASS CSSRule interface: sheet.cssRules[4] must inherit property "FONT_FACE_RULE" with the proper type +PASS CSSRule interface: sheet.cssRules[4] must inherit property "PAGE_RULE" with the proper type +FAIL CSSRule interface: sheet.cssRules[4] must inherit property "MARGIN_RULE" with the proper type assert_inherits: property "MARGIN_RULE" not found in prototype chain +PASS CSSRule interface: sheet.cssRules[4] must inherit property "NAMESPACE_RULE" with the proper type +PASS CSSImportRule interface: existence and properties of interface object +PASS CSSImportRule interface object length +PASS CSSImportRule interface object name +PASS CSSImportRule interface: existence and properties of interface prototype object +PASS CSSImportRule interface: existence and properties of interface prototype object's "constructor" property +PASS CSSImportRule interface: existence and properties of interface prototype object's @@unscopables property +PASS CSSImportRule interface: attribute href +PASS CSSImportRule interface: attribute media +PASS CSSImportRule interface: attribute styleSheet +PASS CSSImportRule must be primary interface of sheet.cssRules[0] +PASS Stringification of sheet.cssRules[0] +PASS CSSImportRule interface: sheet.cssRules[0] must inherit property "href" with the proper type +PASS CSSImportRule interface: sheet.cssRules[0] must inherit property "media" with the proper type +PASS CSSImportRule interface: sheet.cssRules[0] must inherit property "styleSheet" with the proper type +PASS CSSRule interface: sheet.cssRules[0] must inherit property "cssText" with the proper type +PASS CSSRule interface: sheet.cssRules[0] must inherit property "parentRule" with the proper type +PASS CSSRule interface: sheet.cssRules[0] must inherit property "parentStyleSheet" with the proper type +PASS CSSRule interface: sheet.cssRules[0] must inherit property "type" with the proper type +PASS CSSRule interface: sheet.cssRules[0] must inherit property "STYLE_RULE" with the proper type +PASS CSSRule interface: sheet.cssRules[0] must inherit property "CHARSET_RULE" with the proper type +PASS CSSRule interface: sheet.cssRules[0] must inherit property "IMPORT_RULE" with the proper type +PASS CSSRule interface: sheet.cssRules[0] must inherit property "MEDIA_RULE" with the proper type +PASS CSSRule interface: sheet.cssRules[0] must inherit property "FONT_FACE_RULE" with the proper type +PASS CSSRule interface: sheet.cssRules[0] must inherit property "PAGE_RULE" with the proper type +FAIL CSSRule interface: sheet.cssRules[0] must inherit property "MARGIN_RULE" with the proper type assert_inherits: property "MARGIN_RULE" not found in prototype chain +PASS CSSRule interface: sheet.cssRules[0] must inherit property "NAMESPACE_RULE" with the proper type +PASS CSSGroupingRule interface: existence and properties of interface object +PASS CSSGroupingRule interface object length +PASS CSSGroupingRule interface object name +PASS CSSGroupingRule interface: existence and properties of interface prototype object +PASS CSSGroupingRule interface: existence and properties of interface prototype object's "constructor" property +PASS CSSGroupingRule interface: existence and properties of interface prototype object's @@unscopables property +PASS CSSGroupingRule interface: attribute cssRules +FAIL CSSGroupingRule interface: operation insertRule(CSSOMString, optional unsigned long) assert_equals: property has wrong .length expected 1 but got 2 +PASS CSSGroupingRule interface: operation deleteRule(unsigned long) +FAIL CSSPageRule interface: existence and properties of interface object assert_equals: prototype of CSSPageRule is not CSSGroupingRule expected function "function CSSGroupingRule() { [native code] }" but got function "function CSSRule() { [native code] }" +PASS CSSPageRule interface object length +PASS CSSPageRule interface object name +FAIL CSSPageRule interface: existence and properties of interface prototype object assert_equals: prototype of CSSPageRule.prototype is not CSSGroupingRule.prototype expected object "[object CSSGroupingRule]" but got object "[object CSSRule]" +PASS CSSPageRule interface: existence and properties of interface prototype object's "constructor" property +PASS CSSPageRule interface: existence and properties of interface prototype object's @@unscopables property +PASS CSSPageRule interface: attribute selectorText +PASS CSSPageRule interface: attribute style +PASS CSSPageRule must be primary interface of sheet.cssRules[2] +PASS Stringification of sheet.cssRules[2] +PASS CSSPageRule interface: sheet.cssRules[2] must inherit property "selectorText" with the proper type +PASS CSSPageRule interface: sheet.cssRules[2] must inherit property "style" with the proper type +FAIL CSSGroupingRule interface: sheet.cssRules[2] must inherit property "cssRules" with the proper type assert_inherits: property "cssRules" not found in prototype chain +FAIL CSSGroupingRule interface: sheet.cssRules[2] must inherit property "insertRule(CSSOMString, optional unsigned long)" with the proper type assert_inherits: property "insertRule" not found in prototype chain +FAIL CSSGroupingRule interface: calling insertRule(CSSOMString, optional unsigned long) on sheet.cssRules[2] with too few arguments must throw TypeError assert_inherits: property "insertRule" not found in prototype chain +FAIL CSSGroupingRule interface: sheet.cssRules[2] must inherit property "deleteRule(unsigned long)" with the proper type assert_inherits: property "deleteRule" not found in prototype chain +FAIL CSSGroupingRule interface: calling deleteRule(unsigned long) on sheet.cssRules[2] with too few arguments must throw TypeError assert_inherits: property "deleteRule" not found in prototype chain +PASS CSSRule interface: sheet.cssRules[2] must inherit property "cssText" with the proper type +PASS CSSRule interface: sheet.cssRules[2] must inherit property "parentRule" with the proper type +PASS CSSRule interface: sheet.cssRules[2] must inherit property "parentStyleSheet" with the proper type +PASS CSSRule interface: sheet.cssRules[2] must inherit property "type" with the proper type +PASS CSSRule interface: sheet.cssRules[2] must inherit property "STYLE_RULE" with the proper type +PASS CSSRule interface: sheet.cssRules[2] must inherit property "CHARSET_RULE" with the proper type +PASS CSSRule interface: sheet.cssRules[2] must inherit property "IMPORT_RULE" with the proper type +PASS CSSRule interface: sheet.cssRules[2] must inherit property "MEDIA_RULE" with the proper type +PASS CSSRule interface: sheet.cssRules[2] must inherit property "FONT_FACE_RULE" with the proper type +PASS CSSRule interface: sheet.cssRules[2] must inherit property "PAGE_RULE" with the proper type +FAIL CSSRule interface: sheet.cssRules[2] must inherit property "MARGIN_RULE" with the proper type assert_inherits: property "MARGIN_RULE" not found in prototype chain +PASS CSSRule interface: sheet.cssRules[2] must inherit property "NAMESPACE_RULE" with the proper type +FAIL CSSMarginRule interface: existence and properties of interface object assert_own_property: self does not have own property "CSSMarginRule" expected property "CSSMarginRule" missing +FAIL CSSMarginRule interface object length assert_own_property: self does not have own property "CSSMarginRule" expected property "CSSMarginRule" missing +FAIL CSSMarginRule interface object name assert_own_property: self does not have own property "CSSMarginRule" expected property "CSSMarginRule" missing +FAIL CSSMarginRule interface: existence and properties of interface prototype object assert_own_property: self does not have own property "CSSMarginRule" expected property "CSSMarginRule" missing +FAIL CSSMarginRule interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "CSSMarginRule" expected property "CSSMarginRule" missing +FAIL CSSMarginRule interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "CSSMarginRule" expected property "CSSMarginRule" missing +FAIL CSSMarginRule interface: attribute name assert_own_property: self does not have own property "CSSMarginRule" expected property "CSSMarginRule" missing +FAIL CSSMarginRule interface: attribute style assert_own_property: self does not have own property "CSSMarginRule" expected property "CSSMarginRule" missing +FAIL CSSMarginRule must be primary interface of sheet.cssRules[2].cssRules[0] assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined" +FAIL Stringification of sheet.cssRules[2].cssRules[0] assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined" +FAIL CSSMarginRule interface: sheet.cssRules[2].cssRules[0] must inherit property "name" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined" +FAIL CSSMarginRule interface: sheet.cssRules[2].cssRules[0] must inherit property "style" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined" +FAIL CSSRule interface: sheet.cssRules[2].cssRules[0] must inherit property "cssText" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined" +FAIL CSSRule interface: sheet.cssRules[2].cssRules[0] must inherit property "parentRule" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined" +FAIL CSSRule interface: sheet.cssRules[2].cssRules[0] must inherit property "parentStyleSheet" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined" +FAIL CSSRule interface: sheet.cssRules[2].cssRules[0] must inherit property "type" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined" +FAIL CSSRule interface: sheet.cssRules[2].cssRules[0] must inherit property "STYLE_RULE" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined" +FAIL CSSRule interface: sheet.cssRules[2].cssRules[0] must inherit property "CHARSET_RULE" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined" +FAIL CSSRule interface: sheet.cssRules[2].cssRules[0] must inherit property "IMPORT_RULE" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined" +FAIL CSSRule interface: sheet.cssRules[2].cssRules[0] must inherit property "MEDIA_RULE" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined" +FAIL CSSRule interface: sheet.cssRules[2].cssRules[0] must inherit property "FONT_FACE_RULE" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined" +FAIL CSSRule interface: sheet.cssRules[2].cssRules[0] must inherit property "PAGE_RULE" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined" +FAIL CSSRule interface: sheet.cssRules[2].cssRules[0] must inherit property "MARGIN_RULE" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined" +FAIL CSSRule interface: sheet.cssRules[2].cssRules[0] must inherit property "NAMESPACE_RULE" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined" +PASS CSSNamespaceRule interface: existence and properties of interface object +PASS CSSNamespaceRule interface object length +PASS CSSNamespaceRule interface object name +PASS CSSNamespaceRule interface: existence and properties of interface prototype object +PASS CSSNamespaceRule interface: existence and properties of interface prototype object's "constructor" property +PASS CSSNamespaceRule interface: existence and properties of interface prototype object's @@unscopables property +PASS CSSNamespaceRule interface: attribute namespaceURI +PASS CSSNamespaceRule interface: attribute prefix +PASS CSSNamespaceRule must be primary interface of sheet.cssRules[1] +PASS Stringification of sheet.cssRules[1] +PASS CSSNamespaceRule interface: sheet.cssRules[1] must inherit property "namespaceURI" with the proper type +PASS CSSNamespaceRule interface: sheet.cssRules[1] must inherit property "prefix" with the proper type +PASS CSSRule interface: sheet.cssRules[1] must inherit property "cssText" with the proper type +PASS CSSRule interface: sheet.cssRules[1] must inherit property "parentRule" with the proper type +PASS CSSRule interface: sheet.cssRules[1] must inherit property "parentStyleSheet" with the proper type +PASS CSSRule interface: sheet.cssRules[1] must inherit property "type" with the proper type +PASS CSSRule interface: sheet.cssRules[1] must inherit property "STYLE_RULE" with the proper type +PASS CSSRule interface: sheet.cssRules[1] must inherit property "CHARSET_RULE" with the proper type +PASS CSSRule interface: sheet.cssRules[1] must inherit property "IMPORT_RULE" with the proper type +PASS CSSRule interface: sheet.cssRules[1] must inherit property "MEDIA_RULE" with the proper type +PASS CSSRule interface: sheet.cssRules[1] must inherit property "FONT_FACE_RULE" with the proper type +PASS CSSRule interface: sheet.cssRules[1] must inherit property "PAGE_RULE" with the proper type +FAIL CSSRule interface: sheet.cssRules[1] must inherit property "MARGIN_RULE" with the proper type assert_inherits: property "MARGIN_RULE" not found in prototype chain +PASS CSSRule interface: sheet.cssRules[1] must inherit property "NAMESPACE_RULE" with the proper type +PASS CSSStyleDeclaration interface: existence and properties of interface object +PASS CSSStyleDeclaration interface object length +PASS CSSStyleDeclaration interface object name +PASS CSSStyleDeclaration interface: existence and properties of interface prototype object +PASS CSSStyleDeclaration interface: existence and properties of interface prototype object's "constructor" property +PASS CSSStyleDeclaration interface: existence and properties of interface prototype object's @@unscopables property +PASS CSSStyleDeclaration interface: attribute cssText +PASS CSSStyleDeclaration interface: attribute length +PASS CSSStyleDeclaration interface: operation item(unsigned long) +PASS CSSStyleDeclaration interface: operation getPropertyValue(CSSOMString) +PASS CSSStyleDeclaration interface: operation getPropertyPriority(CSSOMString) +PASS CSSStyleDeclaration interface: operation setProperty(CSSOMString, CSSOMString, optional CSSOMString) +PASS CSSStyleDeclaration interface: operation removeProperty(CSSOMString) +PASS CSSStyleDeclaration interface: attribute parentRule +PASS CSSStyleDeclaration interface: attribute cssFloat +PASS CSSStyleDeclaration must be primary interface of sheet.cssRules[4].style +PASS Stringification of sheet.cssRules[4].style +PASS CSSStyleDeclaration interface: sheet.cssRules[4].style must inherit property "cssText" with the proper type +PASS CSSStyleDeclaration interface: sheet.cssRules[4].style must inherit property "length" with the proper type +PASS CSSStyleDeclaration interface: sheet.cssRules[4].style must inherit property "item(unsigned long)" with the proper type +PASS CSSStyleDeclaration interface: calling item(unsigned long) on sheet.cssRules[4].style with too few arguments must throw TypeError +PASS CSSStyleDeclaration interface: sheet.cssRules[4].style must inherit property "getPropertyValue(CSSOMString)" with the proper type +PASS CSSStyleDeclaration interface: calling getPropertyValue(CSSOMString) on sheet.cssRules[4].style with too few arguments must throw TypeError +PASS CSSStyleDeclaration interface: sheet.cssRules[4].style must inherit property "getPropertyPriority(CSSOMString)" with the proper type +PASS CSSStyleDeclaration interface: calling getPropertyPriority(CSSOMString) on sheet.cssRules[4].style with too few arguments must throw TypeError +PASS CSSStyleDeclaration interface: sheet.cssRules[4].style must inherit property "setProperty(CSSOMString, CSSOMString, optional CSSOMString)" with the proper type +PASS CSSStyleDeclaration interface: calling setProperty(CSSOMString, CSSOMString, optional CSSOMString) on sheet.cssRules[4].style with too few arguments must throw TypeError +PASS CSSStyleDeclaration interface: sheet.cssRules[4].style must inherit property "removeProperty(CSSOMString)" with the proper type +PASS CSSStyleDeclaration interface: calling removeProperty(CSSOMString) on sheet.cssRules[4].style with too few arguments must throw TypeError +PASS CSSStyleDeclaration interface: sheet.cssRules[4].style must inherit property "parentRule" with the proper type +PASS CSSStyleDeclaration interface: sheet.cssRules[4].style must inherit property "cssFloat" with the proper type +PASS CSSStyleDeclaration must be primary interface of sheet.cssRules[2].style +PASS Stringification of sheet.cssRules[2].style +PASS CSSStyleDeclaration interface: sheet.cssRules[2].style must inherit property "cssText" with the proper type +PASS CSSStyleDeclaration interface: sheet.cssRules[2].style must inherit property "length" with the proper type +PASS CSSStyleDeclaration interface: sheet.cssRules[2].style must inherit property "item(unsigned long)" with the proper type +PASS CSSStyleDeclaration interface: calling item(unsigned long) on sheet.cssRules[2].style with too few arguments must throw TypeError +PASS CSSStyleDeclaration interface: sheet.cssRules[2].style must inherit property "getPropertyValue(CSSOMString)" with the proper type +PASS CSSStyleDeclaration interface: calling getPropertyValue(CSSOMString) on sheet.cssRules[2].style with too few arguments must throw TypeError +PASS CSSStyleDeclaration interface: sheet.cssRules[2].style must inherit property "getPropertyPriority(CSSOMString)" with the proper type +PASS CSSStyleDeclaration interface: calling getPropertyPriority(CSSOMString) on sheet.cssRules[2].style with too few arguments must throw TypeError +PASS CSSStyleDeclaration interface: sheet.cssRules[2].style must inherit property "setProperty(CSSOMString, CSSOMString, optional CSSOMString)" with the proper type +PASS CSSStyleDeclaration interface: calling setProperty(CSSOMString, CSSOMString, optional CSSOMString) on sheet.cssRules[2].style with too few arguments must throw TypeError +PASS CSSStyleDeclaration interface: sheet.cssRules[2].style must inherit property "removeProperty(CSSOMString)" with the proper type +PASS CSSStyleDeclaration interface: calling removeProperty(CSSOMString) on sheet.cssRules[2].style with too few arguments must throw TypeError +PASS CSSStyleDeclaration interface: sheet.cssRules[2].style must inherit property "parentRule" with the proper type +PASS CSSStyleDeclaration interface: sheet.cssRules[2].style must inherit property "cssFloat" with the proper type +FAIL CSSStyleDeclaration must be primary interface of sheet.cssRules[2].cssRules[0].style assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined" +FAIL Stringification of sheet.cssRules[2].cssRules[0].style assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined" +FAIL CSSStyleDeclaration interface: sheet.cssRules[2].cssRules[0].style must inherit property "cssText" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined" +FAIL CSSStyleDeclaration interface: sheet.cssRules[2].cssRules[0].style must inherit property "length" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined" +FAIL CSSStyleDeclaration interface: sheet.cssRules[2].cssRules[0].style must inherit property "item(unsigned long)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined" +FAIL CSSStyleDeclaration interface: calling item(unsigned long) on sheet.cssRules[2].cssRules[0].style with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined" +FAIL CSSStyleDeclaration interface: sheet.cssRules[2].cssRules[0].style must inherit property "getPropertyValue(CSSOMString)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined" +FAIL CSSStyleDeclaration interface: calling getPropertyValue(CSSOMString) on sheet.cssRules[2].cssRules[0].style with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined" +FAIL CSSStyleDeclaration interface: sheet.cssRules[2].cssRules[0].style must inherit property "getPropertyPriority(CSSOMString)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined" +FAIL CSSStyleDeclaration interface: calling getPropertyPriority(CSSOMString) on sheet.cssRules[2].cssRules[0].style with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined" +FAIL CSSStyleDeclaration interface: sheet.cssRules[2].cssRules[0].style must inherit property "setProperty(CSSOMString, CSSOMString, optional CSSOMString)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined" +FAIL CSSStyleDeclaration interface: calling setProperty(CSSOMString, CSSOMString, optional CSSOMString) on sheet.cssRules[2].cssRules[0].style with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined" +FAIL CSSStyleDeclaration interface: sheet.cssRules[2].cssRules[0].style must inherit property "removeProperty(CSSOMString)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined" +FAIL CSSStyleDeclaration interface: calling removeProperty(CSSOMString) on sheet.cssRules[2].cssRules[0].style with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined" +FAIL CSSStyleDeclaration interface: sheet.cssRules[2].cssRules[0].style must inherit property "parentRule" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined" +FAIL CSSStyleDeclaration interface: sheet.cssRules[2].cssRules[0].style must inherit property "cssFloat" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined" +PASS CSSStyleDeclaration must be primary interface of style_element.style +PASS Stringification of style_element.style +PASS CSSStyleDeclaration interface: style_element.style must inherit property "cssText" with the proper type +PASS CSSStyleDeclaration interface: style_element.style must inherit property "length" with the proper type +PASS CSSStyleDeclaration interface: style_element.style must inherit property "item(unsigned long)" with the proper type +PASS CSSStyleDeclaration interface: calling item(unsigned long) on style_element.style with too few arguments must throw TypeError +PASS CSSStyleDeclaration interface: style_element.style must inherit property "getPropertyValue(CSSOMString)" with the proper type +PASS CSSStyleDeclaration interface: calling getPropertyValue(CSSOMString) on style_element.style with too few arguments must throw TypeError +PASS CSSStyleDeclaration interface: style_element.style must inherit property "getPropertyPriority(CSSOMString)" with the proper type +PASS CSSStyleDeclaration interface: calling getPropertyPriority(CSSOMString) on style_element.style with too few arguments must throw TypeError +PASS CSSStyleDeclaration interface: style_element.style must inherit property "setProperty(CSSOMString, CSSOMString, optional CSSOMString)" with the proper type +PASS CSSStyleDeclaration interface: calling setProperty(CSSOMString, CSSOMString, optional CSSOMString) on style_element.style with too few arguments must throw TypeError +PASS CSSStyleDeclaration interface: style_element.style must inherit property "removeProperty(CSSOMString)" with the proper type +PASS CSSStyleDeclaration interface: calling removeProperty(CSSOMString) on style_element.style with too few arguments must throw TypeError +PASS CSSStyleDeclaration interface: style_element.style must inherit property "parentRule" with the proper type +PASS CSSStyleDeclaration interface: style_element.style must inherit property "cssFloat" with the proper type +PASS CSSStyleDeclaration must be primary interface of svg_element.style +PASS Stringification of svg_element.style +PASS CSSStyleDeclaration interface: svg_element.style must inherit property "cssText" with the proper type +PASS CSSStyleDeclaration interface: svg_element.style must inherit property "length" with the proper type +PASS CSSStyleDeclaration interface: svg_element.style must inherit property "item(unsigned long)" with the proper type +PASS CSSStyleDeclaration interface: calling item(unsigned long) on svg_element.style with too few arguments must throw TypeError +PASS CSSStyleDeclaration interface: svg_element.style must inherit property "getPropertyValue(CSSOMString)" with the proper type +PASS CSSStyleDeclaration interface: calling getPropertyValue(CSSOMString) on svg_element.style with too few arguments must throw TypeError +PASS CSSStyleDeclaration interface: svg_element.style must inherit property "getPropertyPriority(CSSOMString)" with the proper type +PASS CSSStyleDeclaration interface: calling getPropertyPriority(CSSOMString) on svg_element.style with too few arguments must throw TypeError +PASS CSSStyleDeclaration interface: svg_element.style must inherit property "setProperty(CSSOMString, CSSOMString, optional CSSOMString)" with the proper type +PASS CSSStyleDeclaration interface: calling setProperty(CSSOMString, CSSOMString, optional CSSOMString) on svg_element.style with too few arguments must throw TypeError +PASS CSSStyleDeclaration interface: svg_element.style must inherit property "removeProperty(CSSOMString)" with the proper type +PASS CSSStyleDeclaration interface: calling removeProperty(CSSOMString) on svg_element.style with too few arguments must throw TypeError +PASS CSSStyleDeclaration interface: svg_element.style must inherit property "parentRule" with the proper type +PASS CSSStyleDeclaration interface: svg_element.style must inherit property "cssFloat" with the proper type +PASS CSSStyleDeclaration must be primary interface of getComputedStyle(svg_element) +PASS Stringification of getComputedStyle(svg_element) +PASS CSSStyleDeclaration interface: getComputedStyle(svg_element) must inherit property "cssText" with the proper type +PASS CSSStyleDeclaration interface: getComputedStyle(svg_element) must inherit property "length" with the proper type +PASS CSSStyleDeclaration interface: getComputedStyle(svg_element) must inherit property "item(unsigned long)" with the proper type +PASS CSSStyleDeclaration interface: calling item(unsigned long) on getComputedStyle(svg_element) with too few arguments must throw TypeError +PASS CSSStyleDeclaration interface: getComputedStyle(svg_element) must inherit property "getPropertyValue(CSSOMString)" with the proper type +PASS CSSStyleDeclaration interface: calling getPropertyValue(CSSOMString) on getComputedStyle(svg_element) with too few arguments must throw TypeError +PASS CSSStyleDeclaration interface: getComputedStyle(svg_element) must inherit property "getPropertyPriority(CSSOMString)" with the proper type +PASS CSSStyleDeclaration interface: calling getPropertyPriority(CSSOMString) on getComputedStyle(svg_element) with too few arguments must throw TypeError +PASS CSSStyleDeclaration interface: getComputedStyle(svg_element) must inherit property "setProperty(CSSOMString, CSSOMString, optional CSSOMString)" with the proper type +PASS CSSStyleDeclaration interface: calling setProperty(CSSOMString, CSSOMString, optional CSSOMString) on getComputedStyle(svg_element) with too few arguments must throw TypeError +PASS CSSStyleDeclaration interface: getComputedStyle(svg_element) must inherit property "removeProperty(CSSOMString)" with the proper type +PASS CSSStyleDeclaration interface: calling removeProperty(CSSOMString) on getComputedStyle(svg_element) with too few arguments must throw TypeError +PASS CSSStyleDeclaration interface: getComputedStyle(svg_element) must inherit property "parentRule" with the proper type +PASS CSSStyleDeclaration interface: getComputedStyle(svg_element) must inherit property "cssFloat" with the proper type +PASS CSS namespace: extended attributes +PASS CSS namespace: property descriptor +PASS CSS namespace: [[Extensible]] is true +PASS CSS namespace: [[Prototype]] is Object.prototype +PASS CSS namespace: typeof is "object" +PASS CSS namespace: operation escape(CSSOMString) +PASS SVGElement interface: attribute style +PASS SVGElement interface: svg_element must inherit property "style" with the proper type +PASS SVGStyleElement interface: attribute sheet +PASS HTMLElement interface: attribute style +PASS HTMLElement interface: style_element must inherit property "style" with the proper type +PASS HTMLElement interface: document.createElement("unknownelement") must inherit property "style" with the proper type +PASS HTMLLinkElement interface: attribute sheet +PASS HTMLStyleElement interface: attribute sheet +PASS Window interface: operation getComputedStyle(Element, optional CSSOMString?) +PASS Window interface: window must inherit property "getComputedStyle(Element, optional CSSOMString?)" with the proper type +PASS Window interface: calling getComputedStyle(Element, optional CSSOMString?) on window with too few arguments must throw TypeError +PASS Document interface: attribute styleSheets +PASS Document interface: document must inherit property "styleSheets" with the proper type +PASS Document interface: new Document() must inherit property "styleSheets" with the proper type +PASS ShadowRoot interface: attribute styleSheets +PASS ProcessingInstruction interface: attribute sheet +PASS ProcessingInstruction interface: xmlss_pi must inherit property "sheet" with the proper type +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac-arm11.0/virtual/raw-clipboard/external/wpt/clipboard-apis/clipboard-item.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac-arm11.0/virtual/raw-clipboard/external/wpt/clipboard-apis/clipboard-item.https-expected.txt new file mode 100644 index 0000000..77ef423 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac-arm11.0/virtual/raw-clipboard/external/wpt/clipboard-apis/clipboard-item.https-expected.txt
@@ -0,0 +1,14 @@ +This is a testharness.js-based test. +PASS ClipboardItem({string, Blob}) succeeds with different types +PASS ClipboardItem() succeeds with empty options +PASS ClipboardItem({}) fails with empty dictionary input +PASS ClipboardItem(Blob) fails +PASS ClipboardItem() fails with null input +PASS ClipboardItem() fails with no input +PASS types() returns correct values +PASS raw() returns correct values, defaulting to false +PASS getType(DOMString valid type) succeeds with correct output +PASS getType(DOMString invalid type) succeeds with correct output +PASS getType(DOMString type) rejects correctly when querying for missing type +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/compositing/video/video-controls-layer-creation-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/compositing/video/video-controls-layer-creation-expected.png index e705046..1d286bb 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.12/compositing/video/video-controls-layer-creation-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.12/compositing/video/video-controls-layer-creation-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/fast/borders/inline-mask-overlay-image-outset-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/fast/borders/inline-mask-overlay-image-outset-expected.png index e370307d..ff6277b4 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.12/fast/borders/inline-mask-overlay-image-outset-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.12/fast/borders/inline-mask-overlay-image-outset-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/fast/forms/color-scheme/media/video-overlay-menu-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/fast/forms/color-scheme/media/video-overlay-menu-expected.png index 76fb5ec..ede47a6c 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.12/fast/forms/color-scheme/media/video-overlay-menu-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.12/fast/forms/color-scheme/media/video-overlay-menu-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/fast/overflow/overflow-of-video-outline-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/fast/overflow/overflow-of-video-outline-expected.png index 868ebcc..d1605bc 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.12/fast/overflow/overflow-of-video-outline-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.12/fast/overflow/overflow-of-video-outline-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/media/controls-after-reload-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/media/controls-after-reload-expected.png index 0be2815a..72fc40a 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.12/media/controls-after-reload-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.12/media/controls-after-reload-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/media/controls-layout-direction-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/media/controls-layout-direction-expected.png index f805da63..213d8a9 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.12/media/controls-layout-direction-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.12/media/controls-layout-direction-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/media/controls-strict-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/media/controls-strict-expected.png index 569e316..dbd8bfd2 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.12/media/controls-strict-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.12/media/controls-strict-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/media/controls-styling-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/media/controls-styling-expected.png index b6132cb..07d3fb6 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.12/media/controls-styling-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.12/media/controls-styling-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/media/controls-styling-strict-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/media/controls-styling-strict-expected.png index f3dc9f55..de714b00 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.12/media/controls-styling-strict-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.12/media/controls-styling-strict-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/media/controls-without-preload-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/media/controls-without-preload-expected.png index bfe96cd53..b4618e26 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.12/media/controls-without-preload-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.12/media/controls-without-preload-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/media/controls/paint-controls-webkit-appearance-none-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/media/controls/paint-controls-webkit-appearance-none-expected.png index abab0e7..611aab8 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.12/media/controls/paint-controls-webkit-appearance-none-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.12/media/controls/paint-controls-webkit-appearance-none-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/media/media-controls-clone-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/media/media-controls-clone-expected.png index 5a7ab65..b00b9c7f 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.12/media/media-controls-clone-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.12/media/media-controls-clone-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/media/media-controls-grey-scrubber-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/media/media-controls-grey-scrubber-expected.png index e6e87e6..562dab3 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.12/media/media-controls-grey-scrubber-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.12/media/media-controls-grey-scrubber-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/media/video-controls-rendering-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/media/video-controls-rendering-expected.png index ebee22c..e55051c 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.12/media/video-controls-rendering-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.12/media/video-controls-rendering-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/media/video-display-toggle-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/media/video-display-toggle-expected.png index cb3359a2..89283089 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.12/media/video-display-toggle-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.12/media/video-display-toggle-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/media/video-empty-source-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/media/video-empty-source-expected.png index 1f3bd47..a861e1e 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.12/media/video-empty-source-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.12/media/video-empty-source-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/media/video-no-audio-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/media/video-no-audio-expected.png index 8cc53d7..22bd1c0a 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.12/media/video-no-audio-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.12/media/video-no-audio-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/media/video-zoom-controls-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/media/video-zoom-controls-expected.png index e78d1ae..0f51338 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.12/media/video-zoom-controls-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.12/media/video-zoom-controls-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/tables/mozilla/bugs/bug4093-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/tables/mozilla/bugs/bug4093-expected.png index e463648..322b2243 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.12/tables/mozilla/bugs/bug4093-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.12/tables/mozilla/bugs/bug4093-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh-hc/fast/forms/color-scheme/media/video-overlay-menu-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh-hc/fast/forms/color-scheme/media/video-overlay-menu-expected.png index 272d59a..d5edf0e 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh-hc/fast/forms/color-scheme/media/video-overlay-menu-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh-hc/fast/forms/color-scheme/media/video-overlay-menu-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/dark-color-scheme/fast/forms/color-scheme/media/video-overlay-menu-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/dark-color-scheme/fast/forms/color-scheme/media/video-overlay-menu-expected.png index 30048ad..b2b018e 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/dark-color-scheme/fast/forms/color-scheme/media/video-overlay-menu-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/dark-color-scheme/fast/forms/color-scheme/media/video-overlay-menu-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/dark-color-scheme/media/video-controls-rendering-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/dark-color-scheme/media/video-controls-rendering-expected.png index db3cdb9f..2308d4f0 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/dark-color-scheme/media/video-controls-rendering-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/dark-color-scheme/media/video-controls-rendering-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/dark-color-scheme/media/video-focus-ring-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/dark-color-scheme/media/video-focus-ring-expected.png index d40608d..d36d0e7 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/dark-color-scheme/media/video-focus-ring-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/dark-color-scheme/media/video-focus-ring-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.13/fast/overflow/overflow-of-video-outline-expected.png b/third_party/blink/web_tests/platform/mac-mac10.13/fast/overflow/overflow-of-video-outline-expected.png index 9dddf6d..76d2b83 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.13/fast/overflow/overflow-of-video-outline-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.13/fast/overflow/overflow-of-video-outline-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.13/media/controls-layout-direction-expected.png b/third_party/blink/web_tests/platform/mac-mac10.13/media/controls-layout-direction-expected.png index d490dd2..558872f 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.13/media/controls-layout-direction-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.13/media/controls-layout-direction-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.13/media/media-controls-clone-expected.png b/third_party/blink/web_tests/platform/mac-mac10.13/media/media-controls-clone-expected.png index 9d3c8f2..26b80831 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.13/media/media-controls-clone-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.13/media/media-controls-clone-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.13/media/media-controls-grey-scrubber-expected.png b/third_party/blink/web_tests/platform/mac-mac10.13/media/media-controls-grey-scrubber-expected.png index c326a6d..877187d3 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.13/media/media-controls-grey-scrubber-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.13/media/media-controls-grey-scrubber-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.13/media/video-empty-source-expected.png b/third_party/blink/web_tests/platform/mac-mac10.13/media/video-empty-source-expected.png index ef951e0c..f2a2c837 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.13/media/video-empty-source-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.13/media/video-empty-source-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.13/virtual/controls-refresh-hc/fast/forms/color-scheme/media/video-overlay-menu-expected.png b/third_party/blink/web_tests/platform/mac-mac10.13/virtual/controls-refresh-hc/fast/forms/color-scheme/media/video-overlay-menu-expected.png new file mode 100644 index 0000000..e27e6c08 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac10.13/virtual/controls-refresh-hc/fast/forms/color-scheme/media/video-overlay-menu-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.13/virtual/dark-color-scheme/fast/forms/color-scheme/media/video-overlay-menu-expected.png b/third_party/blink/web_tests/platform/mac-mac10.13/virtual/dark-color-scheme/fast/forms/color-scheme/media/video-overlay-menu-expected.png new file mode 100644 index 0000000..76fd87a --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac10.13/virtual/dark-color-scheme/fast/forms/color-scheme/media/video-overlay-menu-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.13/virtual/dark-color-scheme/media/video-focus-ring-expected.png b/third_party/blink/web_tests/platform/mac-mac10.13/virtual/dark-color-scheme/media/video-focus-ring-expected.png index 314a261e..b0175cac 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.13/virtual/dark-color-scheme/media/video-focus-ring-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.13/virtual/dark-color-scheme/media/video-focus-ring-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.14/compositing/video/video-controls-layer-creation-expected.png b/third_party/blink/web_tests/platform/mac-mac10.14/compositing/video/video-controls-layer-creation-expected.png index 7efabade..83f838a 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.14/compositing/video/video-controls-layer-creation-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.14/compositing/video/video-controls-layer-creation-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.14/fast/forms/color-scheme/media/video-overlay-menu-expected.png b/third_party/blink/web_tests/platform/mac-mac10.14/fast/forms/color-scheme/media/video-overlay-menu-expected.png index bf6353f..eba67052 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.14/fast/forms/color-scheme/media/video-overlay-menu-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.14/fast/forms/color-scheme/media/video-overlay-menu-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.14/fast/overflow/overflow-of-video-outline-expected.png b/third_party/blink/web_tests/platform/mac-mac10.14/fast/overflow/overflow-of-video-outline-expected.png index 99c49c0..279dbdb8 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.14/fast/overflow/overflow-of-video-outline-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.14/fast/overflow/overflow-of-video-outline-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.14/media/controls-after-reload-expected.png b/third_party/blink/web_tests/platform/mac-mac10.14/media/controls-after-reload-expected.png index e723ed4..bb3085d5 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.14/media/controls-after-reload-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.14/media/controls-after-reload-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.14/media/controls-layout-direction-expected.png b/third_party/blink/web_tests/platform/mac-mac10.14/media/controls-layout-direction-expected.png index 37a5e6ee..5dbdb4f 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.14/media/controls-layout-direction-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.14/media/controls-layout-direction-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.14/media/controls-strict-expected.png b/third_party/blink/web_tests/platform/mac-mac10.14/media/controls-strict-expected.png index 610e8f9b..66db921 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.14/media/controls-strict-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.14/media/controls-strict-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.14/media/controls-styling-expected.png b/third_party/blink/web_tests/platform/mac-mac10.14/media/controls-styling-expected.png index 65db7a6..f9916ed 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.14/media/controls-styling-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.14/media/controls-styling-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.14/media/controls-styling-strict-expected.png b/third_party/blink/web_tests/platform/mac-mac10.14/media/controls-styling-strict-expected.png index 2d3a799..7c49b56 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.14/media/controls-styling-strict-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.14/media/controls-styling-strict-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.14/media/controls-without-preload-expected.png b/third_party/blink/web_tests/platform/mac-mac10.14/media/controls-without-preload-expected.png index 7902ec2..e619bfd 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.14/media/controls-without-preload-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.14/media/controls-without-preload-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.14/media/controls/paint-controls-webkit-appearance-none-expected.png b/third_party/blink/web_tests/platform/mac-mac10.14/media/controls/paint-controls-webkit-appearance-none-expected.png index 2a53caa5..ff0ede83 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.14/media/controls/paint-controls-webkit-appearance-none-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.14/media/controls/paint-controls-webkit-appearance-none-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.14/media/media-controls-clone-expected.png b/third_party/blink/web_tests/platform/mac-mac10.14/media/media-controls-clone-expected.png index 53d53b64..314ee140 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.14/media/media-controls-clone-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.14/media/media-controls-clone-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.14/media/media-controls-grey-scrubber-expected.png b/third_party/blink/web_tests/platform/mac-mac10.14/media/media-controls-grey-scrubber-expected.png index a005a14c..deccb02 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.14/media/media-controls-grey-scrubber-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.14/media/media-controls-grey-scrubber-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.14/media/video-controls-rendering-expected.png b/third_party/blink/web_tests/platform/mac-mac10.14/media/video-controls-rendering-expected.png index 152578bf..125df1f4 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.14/media/video-controls-rendering-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.14/media/video-controls-rendering-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.14/media/video-display-toggle-expected.png b/third_party/blink/web_tests/platform/mac-mac10.14/media/video-display-toggle-expected.png index 06e15a7..a11c49a 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.14/media/video-display-toggle-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.14/media/video-display-toggle-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.14/media/video-empty-source-expected.png b/third_party/blink/web_tests/platform/mac-mac10.14/media/video-empty-source-expected.png index f00ea222..dba91d8 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.14/media/video-empty-source-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.14/media/video-empty-source-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.14/media/video-no-audio-expected.png b/third_party/blink/web_tests/platform/mac-mac10.14/media/video-no-audio-expected.png index bc66ff2..dfc3b13 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.14/media/video-no-audio-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.14/media/video-no-audio-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.14/tables/mozilla/bugs/bug4093-expected.png b/third_party/blink/web_tests/platform/mac-mac10.14/tables/mozilla/bugs/bug4093-expected.png index 19953d5f3..d62eda0 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.14/tables/mozilla/bugs/bug4093-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.14/tables/mozilla/bugs/bug4093-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.14/tables/mozilla_expected_failures/bugs/bug89315-expected.png b/third_party/blink/web_tests/platform/mac-mac10.14/tables/mozilla_expected_failures/bugs/bug89315-expected.png deleted file mode 100644 index 1cc31c3c..0000000 --- a/third_party/blink/web_tests/platform/mac-mac10.14/tables/mozilla_expected_failures/bugs/bug89315-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.14/virtual/controls-refresh-hc/fast/forms/color-scheme/media/video-overlay-menu-expected.png b/third_party/blink/web_tests/platform/mac-mac10.14/virtual/controls-refresh-hc/fast/forms/color-scheme/media/video-overlay-menu-expected.png index 76a108e..e27e6c08 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.14/virtual/controls-refresh-hc/fast/forms/color-scheme/media/video-overlay-menu-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.14/virtual/controls-refresh-hc/fast/forms/color-scheme/media/video-overlay-menu-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.14/virtual/dark-color-scheme/fast/forms/color-scheme/media/video-overlay-menu-expected.png b/third_party/blink/web_tests/platform/mac-mac10.14/virtual/dark-color-scheme/fast/forms/color-scheme/media/video-overlay-menu-expected.png index fded683c..76fd87a 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.14/virtual/dark-color-scheme/fast/forms/color-scheme/media/video-overlay-menu-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.14/virtual/dark-color-scheme/fast/forms/color-scheme/media/video-overlay-menu-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.14/virtual/dark-color-scheme/media/video-controls-rendering-expected.png b/third_party/blink/web_tests/platform/mac-mac10.14/virtual/dark-color-scheme/media/video-controls-rendering-expected.png index f4fdaef7..acea3cf 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.14/virtual/dark-color-scheme/media/video-controls-rendering-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.14/virtual/dark-color-scheme/media/video-controls-rendering-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.14/virtual/dark-color-scheme/media/video-focus-ring-expected.png b/third_party/blink/web_tests/platform/mac-mac10.14/virtual/dark-color-scheme/media/video-focus-ring-expected.png index 2107c3c..aca486d 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.14/virtual/dark-color-scheme/media/video-focus-ring-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.14/virtual/dark-color-scheme/media/video-focus-ring-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.14/virtual/gpu-rasterization/images/color-profile-image-filter-all-expected.png b/third_party/blink/web_tests/platform/mac-mac10.14/virtual/gpu-rasterization/images/color-profile-image-filter-all-expected.png index 27ae3a4..6f42eeed 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.14/virtual/gpu-rasterization/images/color-profile-image-filter-all-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.14/virtual/gpu-rasterization/images/color-profile-image-filter-all-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.15/tables/mozilla_expected_failures/bugs/bug89315-expected.png b/third_party/blink/web_tests/platform/mac-mac10.15/tables/mozilla_expected_failures/bugs/bug89315-expected.png deleted file mode 100644 index cff5d8e..0000000 --- a/third_party/blink/web_tests/platform/mac-mac10.15/tables/mozilla_expected_failures/bugs/bug89315-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac-arm11.0/virtual/controls-refresh-hc/fast/forms/color-scheme/media/video-overlay-menu-expected.png b/third_party/blink/web_tests/platform/mac-mac10.15/virtual/controls-refresh-hc/fast/forms/color-scheme/media/video-overlay-menu-expected.png similarity index 100% rename from third_party/blink/web_tests/platform/mac-mac-arm11.0/virtual/controls-refresh-hc/fast/forms/color-scheme/media/video-overlay-menu-expected.png rename to third_party/blink/web_tests/platform/mac-mac10.15/virtual/controls-refresh-hc/fast/forms/color-scheme/media/video-overlay-menu-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.15/virtual/dark-color-scheme/fast/forms/color-scheme/media/video-overlay-menu-expected.png b/third_party/blink/web_tests/platform/mac-mac10.15/virtual/dark-color-scheme/fast/forms/color-scheme/media/video-overlay-menu-expected.png new file mode 100644 index 0000000..650cae3 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac10.15/virtual/dark-color-scheme/fast/forms/color-scheme/media/video-overlay-menu-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.15/virtual/gpu-rasterization/images/color-profile-svg-fill-text-expected.png b/third_party/blink/web_tests/platform/mac-mac10.15/virtual/gpu-rasterization/images/color-profile-svg-fill-text-expected.png index eba7d4f..8082783c 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.15/virtual/gpu-rasterization/images/color-profile-svg-fill-text-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.15/virtual/gpu-rasterization/images/color-profile-svg-fill-text-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/compositing/img-layer-object-fit-expected.png b/third_party/blink/web_tests/platform/mac/compositing/img-layer-object-fit-expected.png index 3d308b8..e7aedde 100644 --- a/third_party/blink/web_tests/platform/mac/compositing/img-layer-object-fit-expected.png +++ b/third_party/blink/web_tests/platform/mac/compositing/img-layer-object-fit-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/compositing/video/video-controls-layer-creation-expected.png b/third_party/blink/web_tests/platform/mac/compositing/video/video-controls-layer-creation-expected.png index f391025..8c401b6 100644 --- a/third_party/blink/web_tests/platform/mac/compositing/video/video-controls-layer-creation-expected.png +++ b/third_party/blink/web_tests/platform/mac/compositing/video/video-controls-layer-creation-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/fast/backgrounds/background-repeat-with-background-color-expected.png b/third_party/blink/web_tests/platform/mac/fast/backgrounds/background-repeat-with-background-color-expected.png index d30b5517..2416fef2 100644 --- a/third_party/blink/web_tests/platform/mac/fast/backgrounds/background-repeat-with-background-color-expected.png +++ b/third_party/blink/web_tests/platform/mac/fast/backgrounds/background-repeat-with-background-color-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/fast/backgrounds/size/backgroundSize15-expected.png b/third_party/blink/web_tests/platform/mac/fast/backgrounds/size/backgroundSize15-expected.png index 1f934317..97e1451 100644 --- a/third_party/blink/web_tests/platform/mac/fast/backgrounds/size/backgroundSize15-expected.png +++ b/third_party/blink/web_tests/platform/mac/fast/backgrounds/size/backgroundSize15-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/fast/backgrounds/size/backgroundSize16-expected.png b/third_party/blink/web_tests/platform/mac/fast/backgrounds/size/backgroundSize16-expected.png index 49513dd..71bdbd4 100644 --- a/third_party/blink/web_tests/platform/mac/fast/backgrounds/size/backgroundSize16-expected.png +++ b/third_party/blink/web_tests/platform/mac/fast/backgrounds/size/backgroundSize16-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/fast/borders/border-image-01-expected.png b/third_party/blink/web_tests/platform/mac/fast/borders/border-image-01-expected.png index 06d86b5a..e394e18 100644 --- a/third_party/blink/web_tests/platform/mac/fast/borders/border-image-01-expected.png +++ b/third_party/blink/web_tests/platform/mac/fast/borders/border-image-01-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/fast/borders/border-image-border-radius-expected.png b/third_party/blink/web_tests/platform/mac/fast/borders/border-image-border-radius-expected.png index 920f42a3..5883c51 100644 --- a/third_party/blink/web_tests/platform/mac/fast/borders/border-image-border-radius-expected.png +++ b/third_party/blink/web_tests/platform/mac/fast/borders/border-image-border-radius-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/fast/borders/border-image-longhand-expected.png b/third_party/blink/web_tests/platform/mac/fast/borders/border-image-longhand-expected.png index 06d86b5a..e394e18 100644 --- a/third_party/blink/web_tests/platform/mac/fast/borders/border-image-longhand-expected.png +++ b/third_party/blink/web_tests/platform/mac/fast/borders/border-image-longhand-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac-arm11.0/fast/borders/border-image-massive-scale-expected.png b/third_party/blink/web_tests/platform/mac/fast/borders/border-image-massive-scale-expected.png similarity index 100% rename from third_party/blink/web_tests/platform/mac-mac-arm11.0/fast/borders/border-image-massive-scale-expected.png rename to third_party/blink/web_tests/platform/mac/fast/borders/border-image-massive-scale-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/fast/borders/border-image-outset-expected.png b/third_party/blink/web_tests/platform/mac/fast/borders/border-image-outset-expected.png index bb60c6e..d0c19ae 100644 --- a/third_party/blink/web_tests/platform/mac/fast/borders/border-image-outset-expected.png +++ b/third_party/blink/web_tests/platform/mac/fast/borders/border-image-outset-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/fast/borders/border-image-outset-in-shorthand-expected.png b/third_party/blink/web_tests/platform/mac/fast/borders/border-image-outset-in-shorthand-expected.png index bb60c6e..d0c19ae 100644 --- a/third_party/blink/web_tests/platform/mac/fast/borders/border-image-outset-in-shorthand-expected.png +++ b/third_party/blink/web_tests/platform/mac/fast/borders/border-image-outset-in-shorthand-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/fast/borders/border-image-repeat-expected.png b/third_party/blink/web_tests/platform/mac/fast/borders/border-image-repeat-expected.png index 06d86b5a..e394e18 100644 --- a/third_party/blink/web_tests/platform/mac/fast/borders/border-image-repeat-expected.png +++ b/third_party/blink/web_tests/platform/mac/fast/borders/border-image-repeat-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/fast/borders/border-image-repeat-round-expected.png b/third_party/blink/web_tests/platform/mac/fast/borders/border-image-repeat-round-expected.png index ab36b23..633c8ad2 100644 --- a/third_party/blink/web_tests/platform/mac/fast/borders/border-image-repeat-round-expected.png +++ b/third_party/blink/web_tests/platform/mac/fast/borders/border-image-repeat-round-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/fast/borders/border-image-rotate-transform-expected.png b/third_party/blink/web_tests/platform/mac/fast/borders/border-image-rotate-transform-expected.png new file mode 100644 index 0000000..1fd6fab5 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac/fast/borders/border-image-rotate-transform-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac-arm11.0/fast/borders/border-image-scale-transform-expected.png b/third_party/blink/web_tests/platform/mac/fast/borders/border-image-scale-transform-expected.png similarity index 100% rename from third_party/blink/web_tests/platform/mac-mac-arm11.0/fast/borders/border-image-scale-transform-expected.png rename to third_party/blink/web_tests/platform/mac/fast/borders/border-image-scale-transform-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/fast/borders/border-image-scaled-expected.png b/third_party/blink/web_tests/platform/mac/fast/borders/border-image-scaled-expected.png index ec491ce..e9c00e3 100644 --- a/third_party/blink/web_tests/platform/mac/fast/borders/border-image-scaled-expected.png +++ b/third_party/blink/web_tests/platform/mac/fast/borders/border-image-scaled-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/fast/borders/border-image-scrambled-expected.png b/third_party/blink/web_tests/platform/mac/fast/borders/border-image-scrambled-expected.png index 06d86b5a..e394e18 100644 --- a/third_party/blink/web_tests/platform/mac/fast/borders/border-image-scrambled-expected.png +++ b/third_party/blink/web_tests/platform/mac/fast/borders/border-image-scrambled-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/fast/borders/border-image-slices-expected.png b/third_party/blink/web_tests/platform/mac/fast/borders/border-image-slices-expected.png index 0298778..7666df9 100644 --- a/third_party/blink/web_tests/platform/mac/fast/borders/border-image-slices-expected.png +++ b/third_party/blink/web_tests/platform/mac/fast/borders/border-image-slices-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/fast/borders/border-image-source-expected.png b/third_party/blink/web_tests/platform/mac/fast/borders/border-image-source-expected.png index 06d86b5a..e394e18 100644 --- a/third_party/blink/web_tests/platform/mac/fast/borders/border-image-source-expected.png +++ b/third_party/blink/web_tests/platform/mac/fast/borders/border-image-source-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/fast/borders/inline-mask-overlay-image-outset-expected.png b/third_party/blink/web_tests/platform/mac/fast/borders/inline-mask-overlay-image-outset-expected.png index 20ae3bf..10a6893d 100644 --- a/third_party/blink/web_tests/platform/mac/fast/borders/inline-mask-overlay-image-outset-expected.png +++ b/third_party/blink/web_tests/platform/mac/fast/borders/inline-mask-overlay-image-outset-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/fast/borders/scaled-border-image-expected.png b/third_party/blink/web_tests/platform/mac/fast/borders/scaled-border-image-expected.png index 0bec3e2..56f9da5 100644 --- a/third_party/blink/web_tests/platform/mac/fast/borders/scaled-border-image-expected.png +++ b/third_party/blink/web_tests/platform/mac/fast/borders/scaled-border-image-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/fast/forms/color-scheme/media/video-overlay-menu-expected.png b/third_party/blink/web_tests/platform/mac/fast/forms/color-scheme/media/video-overlay-menu-expected.png index 9e516ce..70f9f23d 100644 --- a/third_party/blink/web_tests/platform/mac/fast/forms/color-scheme/media/video-overlay-menu-expected.png +++ b/third_party/blink/web_tests/platform/mac/fast/forms/color-scheme/media/video-overlay-menu-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/fast/overflow/overflow-of-video-outline-expected.png b/third_party/blink/web_tests/platform/mac/fast/overflow/overflow-of-video-outline-expected.png index 25a2d0a..6b71c1f 100644 --- a/third_party/blink/web_tests/platform/mac/fast/overflow/overflow-of-video-outline-expected.png +++ b/third_party/blink/web_tests/platform/mac/fast/overflow/overflow-of-video-outline-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/http/tests/misc/slow-loading-image-in-pattern-expected.png b/third_party/blink/web_tests/platform/mac/http/tests/misc/slow-loading-image-in-pattern-expected.png index 4f419da..5778442 100644 --- a/third_party/blink/web_tests/platform/mac/http/tests/misc/slow-loading-image-in-pattern-expected.png +++ b/third_party/blink/web_tests/platform/mac/http/tests/misc/slow-loading-image-in-pattern-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/images/color-profile-border-image-source-expected.png b/third_party/blink/web_tests/platform/mac/images/color-profile-border-image-source-expected.png index 06d86b5a..e394e18 100644 --- a/third_party/blink/web_tests/platform/mac/images/color-profile-border-image-source-expected.png +++ b/third_party/blink/web_tests/platform/mac/images/color-profile-border-image-source-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/images/color-profile-group-expected.png b/third_party/blink/web_tests/platform/mac/images/color-profile-group-expected.png index 5f5a2d8..b983e63 100644 --- a/third_party/blink/web_tests/platform/mac/images/color-profile-group-expected.png +++ b/third_party/blink/web_tests/platform/mac/images/color-profile-group-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/images/color-profile-svg-fill-text-expected.png b/third_party/blink/web_tests/platform/mac/images/color-profile-svg-fill-text-expected.png index 875f387c..d9d108b 100644 --- a/third_party/blink/web_tests/platform/mac/images/color-profile-svg-fill-text-expected.png +++ b/third_party/blink/web_tests/platform/mac/images/color-profile-svg-fill-text-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/images/sprite-no-bleed-expected.png b/third_party/blink/web_tests/platform/mac/images/sprite-no-bleed-expected.png index 15b414a..143e3672 100644 --- a/third_party/blink/web_tests/platform/mac/images/sprite-no-bleed-expected.png +++ b/third_party/blink/web_tests/platform/mac/images/sprite-no-bleed-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/media/controls-after-reload-expected.png b/third_party/blink/web_tests/platform/mac/media/controls-after-reload-expected.png index 36062e0..d7ee63f0 100644 --- a/third_party/blink/web_tests/platform/mac/media/controls-after-reload-expected.png +++ b/third_party/blink/web_tests/platform/mac/media/controls-after-reload-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/media/controls-layout-direction-expected.png b/third_party/blink/web_tests/platform/mac/media/controls-layout-direction-expected.png index 531e2cb..2959460 100644 --- a/third_party/blink/web_tests/platform/mac/media/controls-layout-direction-expected.png +++ b/third_party/blink/web_tests/platform/mac/media/controls-layout-direction-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/media/controls-strict-expected.png b/third_party/blink/web_tests/platform/mac/media/controls-strict-expected.png index 6045a22..70f3b153 100644 --- a/third_party/blink/web_tests/platform/mac/media/controls-strict-expected.png +++ b/third_party/blink/web_tests/platform/mac/media/controls-strict-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/media/controls-styling-expected.png b/third_party/blink/web_tests/platform/mac/media/controls-styling-expected.png index 9aebb1c..22a52af0 100644 --- a/third_party/blink/web_tests/platform/mac/media/controls-styling-expected.png +++ b/third_party/blink/web_tests/platform/mac/media/controls-styling-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/media/controls-styling-strict-expected.png b/third_party/blink/web_tests/platform/mac/media/controls-styling-strict-expected.png index dd3d1519..0448d1b 100644 --- a/third_party/blink/web_tests/platform/mac/media/controls-styling-strict-expected.png +++ b/third_party/blink/web_tests/platform/mac/media/controls-styling-strict-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/media/controls-without-preload-expected.png b/third_party/blink/web_tests/platform/mac/media/controls-without-preload-expected.png index fe68995..b7c4ffff 100644 --- a/third_party/blink/web_tests/platform/mac/media/controls-without-preload-expected.png +++ b/third_party/blink/web_tests/platform/mac/media/controls-without-preload-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/media/controls/paint-controls-webkit-appearance-none-expected.png b/third_party/blink/web_tests/platform/mac/media/controls/paint-controls-webkit-appearance-none-expected.png index c613f41..a028cfff 100644 --- a/third_party/blink/web_tests/platform/mac/media/controls/paint-controls-webkit-appearance-none-expected.png +++ b/third_party/blink/web_tests/platform/mac/media/controls/paint-controls-webkit-appearance-none-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/media/media-controls-clone-expected.png b/third_party/blink/web_tests/platform/mac/media/media-controls-clone-expected.png index ab4d9b7..60a2818 100644 --- a/third_party/blink/web_tests/platform/mac/media/media-controls-clone-expected.png +++ b/third_party/blink/web_tests/platform/mac/media/media-controls-clone-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/media/media-controls-grey-scrubber-expected.png b/third_party/blink/web_tests/platform/mac/media/media-controls-grey-scrubber-expected.png index e13a47a..98e9d38 100644 --- a/third_party/blink/web_tests/platform/mac/media/media-controls-grey-scrubber-expected.png +++ b/third_party/blink/web_tests/platform/mac/media/media-controls-grey-scrubber-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/media/video-controls-rendering-expected.png b/third_party/blink/web_tests/platform/mac/media/video-controls-rendering-expected.png index 7ed217bd..3221e806 100644 --- a/third_party/blink/web_tests/platform/mac/media/video-controls-rendering-expected.png +++ b/third_party/blink/web_tests/platform/mac/media/video-controls-rendering-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/media/video-display-toggle-expected.png b/third_party/blink/web_tests/platform/mac/media/video-display-toggle-expected.png index 49ea67b1..d6f39d5b 100644 --- a/third_party/blink/web_tests/platform/mac/media/video-display-toggle-expected.png +++ b/third_party/blink/web_tests/platform/mac/media/video-display-toggle-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/media/video-empty-source-expected.png b/third_party/blink/web_tests/platform/mac/media/video-empty-source-expected.png index 2aa8302..6a09559d 100644 --- a/third_party/blink/web_tests/platform/mac/media/video-empty-source-expected.png +++ b/third_party/blink/web_tests/platform/mac/media/video-empty-source-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/media/video-no-audio-expected.png b/third_party/blink/web_tests/platform/mac/media/video-no-audio-expected.png index e7ff72a..a3c6c063 100644 --- a/third_party/blink/web_tests/platform/mac/media/video-no-audio-expected.png +++ b/third_party/blink/web_tests/platform/mac/media/video-no-audio-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/media/video-poster-scale-expected.png b/third_party/blink/web_tests/platform/mac/media/video-poster-scale-expected.png index 1f2082c..026f161e 100644 --- a/third_party/blink/web_tests/platform/mac/media/video-poster-scale-expected.png +++ b/third_party/blink/web_tests/platform/mac/media/video-poster-scale-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/media/video-zoom-controls-expected.png b/third_party/blink/web_tests/platform/mac/media/video-zoom-controls-expected.png index f669551..5f7482c 100644 --- a/third_party/blink/web_tests/platform/mac/media/video-zoom-controls-expected.png +++ b/third_party/blink/web_tests/platform/mac/media/video-zoom-controls-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/paint/invalidation/svg/animated-path-inside-transformed-html-expected.png b/third_party/blink/web_tests/platform/mac/paint/invalidation/svg/animated-path-inside-transformed-html-expected.png index ae8d1de1..48b88ca 100644 --- a/third_party/blink/web_tests/platform/mac/paint/invalidation/svg/animated-path-inside-transformed-html-expected.png +++ b/third_party/blink/web_tests/platform/mac/paint/invalidation/svg/animated-path-inside-transformed-html-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/svg/carto.net/selectionlist-expected.png b/third_party/blink/web_tests/platform/mac/svg/carto.net/selectionlist-expected.png deleted file mode 100644 index e0012d650..0000000 --- a/third_party/blink/web_tests/platform/mac/svg/carto.net/selectionlist-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/svg/custom/createImageElement2-expected.png b/third_party/blink/web_tests/platform/mac/svg/custom/createImageElement2-expected.png index ec2c4ed3..e8414fa1 100644 --- a/third_party/blink/web_tests/platform/mac/svg/custom/createImageElement2-expected.png +++ b/third_party/blink/web_tests/platform/mac/svg/custom/createImageElement2-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/svg/custom/image-parent-translation-expected.png b/third_party/blink/web_tests/platform/mac/svg/custom/image-parent-translation-expected.png index 35eead6..5b93bd5b 100644 --- a/third_party/blink/web_tests/platform/mac/svg/custom/image-parent-translation-expected.png +++ b/third_party/blink/web_tests/platform/mac/svg/custom/image-parent-translation-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/svg/custom/image-small-width-height-expected.png b/third_party/blink/web_tests/platform/mac/svg/custom/image-small-width-height-expected.png index a3d0ecb..f29b1a9a 100644 --- a/third_party/blink/web_tests/platform/mac/svg/custom/image-small-width-height-expected.png +++ b/third_party/blink/web_tests/platform/mac/svg/custom/image-small-width-height-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/svg/custom/pointer-events-image-css-transform-expected.png b/third_party/blink/web_tests/platform/mac/svg/custom/pointer-events-image-css-transform-expected.png index d81ab707..324d16e5 100644 --- a/third_party/blink/web_tests/platform/mac/svg/custom/pointer-events-image-css-transform-expected.png +++ b/third_party/blink/web_tests/platform/mac/svg/custom/pointer-events-image-css-transform-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/svg/custom/pointer-events-image-expected.png b/third_party/blink/web_tests/platform/mac/svg/custom/pointer-events-image-expected.png index d81ab707..324d16e5 100644 --- a/third_party/blink/web_tests/platform/mac/svg/custom/pointer-events-image-expected.png +++ b/third_party/blink/web_tests/platform/mac/svg/custom/pointer-events-image-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/svg/custom/text-image-opacity-expected.png b/third_party/blink/web_tests/platform/mac/svg/custom/text-image-opacity-expected.png index a062fa2..0587824 100644 --- a/third_party/blink/web_tests/platform/mac/svg/custom/text-image-opacity-expected.png +++ b/third_party/blink/web_tests/platform/mac/svg/custom/text-image-opacity-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/svg/hixie/perf/004-expected.png b/third_party/blink/web_tests/platform/mac/svg/hixie/perf/004-expected.png index 67fc67d..8e686679 100644 --- a/third_party/blink/web_tests/platform/mac/svg/hixie/perf/004-expected.png +++ b/third_party/blink/web_tests/platform/mac/svg/hixie/perf/004-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/svg/wicd/test-rightsizing-b-expected.png b/third_party/blink/web_tests/platform/mac/svg/wicd/test-rightsizing-b-expected.png index 8a0b001..909c1c7 100644 --- a/third_party/blink/web_tests/platform/mac/svg/wicd/test-rightsizing-b-expected.png +++ b/third_party/blink/web_tests/platform/mac/svg/wicd/test-rightsizing-b-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/tables/mozilla/bugs/bug101674-expected.png b/third_party/blink/web_tests/platform/mac/tables/mozilla/bugs/bug101674-expected.png index 629eaa23..d4034c73 100644 --- a/third_party/blink/web_tests/platform/mac/tables/mozilla/bugs/bug101674-expected.png +++ b/third_party/blink/web_tests/platform/mac/tables/mozilla/bugs/bug101674-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/tables/mozilla/bugs/bug11026-expected.png b/third_party/blink/web_tests/platform/mac/tables/mozilla/bugs/bug11026-expected.png index 17c6c3f..e3c6d78 100644 --- a/third_party/blink/web_tests/platform/mac/tables/mozilla/bugs/bug11026-expected.png +++ b/third_party/blink/web_tests/platform/mac/tables/mozilla/bugs/bug11026-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/tables/mozilla/bugs/bug1296-expected.png b/third_party/blink/web_tests/platform/mac/tables/mozilla/bugs/bug1296-expected.png index ec74c32..0b1b2c41 100644 --- a/third_party/blink/web_tests/platform/mac/tables/mozilla/bugs/bug1296-expected.png +++ b/third_party/blink/web_tests/platform/mac/tables/mozilla/bugs/bug1296-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/tables/mozilla/bugs/bug1430-expected.png b/third_party/blink/web_tests/platform/mac/tables/mozilla/bugs/bug1430-expected.png index b9a2a47f..8779b37 100644 --- a/third_party/blink/web_tests/platform/mac/tables/mozilla/bugs/bug1430-expected.png +++ b/third_party/blink/web_tests/platform/mac/tables/mozilla/bugs/bug1430-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/tables/mozilla/bugs/bug4093-expected.png b/third_party/blink/web_tests/platform/mac/tables/mozilla/bugs/bug4093-expected.png index dfe0f06..570e2c2 100644 --- a/third_party/blink/web_tests/platform/mac/tables/mozilla/bugs/bug4093-expected.png +++ b/third_party/blink/web_tests/platform/mac/tables/mozilla/bugs/bug4093-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/tables/mozilla/bugs/bug4427-expected.png b/third_party/blink/web_tests/platform/mac/tables/mozilla/bugs/bug4427-expected.png index 7eaae918..c73d28e3 100644 --- a/third_party/blink/web_tests/platform/mac/tables/mozilla/bugs/bug4427-expected.png +++ b/third_party/blink/web_tests/platform/mac/tables/mozilla/bugs/bug4427-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/tables/mozilla/bugs/bug625-expected.png b/third_party/blink/web_tests/platform/mac/tables/mozilla/bugs/bug625-expected.png index 7b7f1e5..98fb2c8 100644 --- a/third_party/blink/web_tests/platform/mac/tables/mozilla/bugs/bug625-expected.png +++ b/third_party/blink/web_tests/platform/mac/tables/mozilla/bugs/bug625-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh-hc/fast/forms/color-scheme/media/video-overlay-menu-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh-hc/fast/forms/color-scheme/media/video-overlay-menu-expected.png index 3ae7528..5fcc5c5 100644 --- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh-hc/fast/forms/color-scheme/media/video-overlay-menu-expected.png +++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh-hc/fast/forms/color-scheme/media/video-overlay-menu-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/dark-color-scheme/fast/forms/color-scheme/media/video-overlay-menu-expected.png b/third_party/blink/web_tests/platform/mac/virtual/dark-color-scheme/fast/forms/color-scheme/media/video-overlay-menu-expected.png index 2ceb5867..650cae3 100644 --- a/third_party/blink/web_tests/platform/mac/virtual/dark-color-scheme/fast/forms/color-scheme/media/video-overlay-menu-expected.png +++ b/third_party/blink/web_tests/platform/mac/virtual/dark-color-scheme/fast/forms/color-scheme/media/video-overlay-menu-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/dark-color-scheme/media/video-controls-rendering-expected.png b/third_party/blink/web_tests/platform/mac/virtual/dark-color-scheme/media/video-controls-rendering-expected.png index 5bc988cf..e7b148c 100644 --- a/third_party/blink/web_tests/platform/mac/virtual/dark-color-scheme/media/video-controls-rendering-expected.png +++ b/third_party/blink/web_tests/platform/mac/virtual/dark-color-scheme/media/video-controls-rendering-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/dark-color-scheme/media/video-focus-ring-expected.png b/third_party/blink/web_tests/platform/mac/virtual/dark-color-scheme/media/video-focus-ring-expected.png index 88e74c85..0d6a11cd 100644 --- a/third_party/blink/web_tests/platform/mac/virtual/dark-color-scheme/media/video-focus-ring-expected.png +++ b/third_party/blink/web_tests/platform/mac/virtual/dark-color-scheme/media/video-focus-ring-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/exotic-color-space/images/color-profile-background-image-cover-expected.png b/third_party/blink/web_tests/platform/mac/virtual/exotic-color-space/images/color-profile-background-image-cover-expected.png deleted file mode 100644 index d9f2105f..0000000 --- a/third_party/blink/web_tests/platform/mac/virtual/exotic-color-space/images/color-profile-background-image-cover-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/exotic-color-space/images/color-profile-background-image-space-expected.png b/third_party/blink/web_tests/platform/mac/virtual/exotic-color-space/images/color-profile-background-image-space-expected.png deleted file mode 100644 index af63757..0000000 --- a/third_party/blink/web_tests/platform/mac/virtual/exotic-color-space/images/color-profile-background-image-space-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/exotic-color-space/images/color-profile-border-image-expected.png b/third_party/blink/web_tests/platform/mac/virtual/exotic-color-space/images/color-profile-border-image-expected.png deleted file mode 100644 index e42cc9b..0000000 --- a/third_party/blink/web_tests/platform/mac/virtual/exotic-color-space/images/color-profile-border-image-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/exotic-color-space/images/color-profile-group-expected.png b/third_party/blink/web_tests/platform/mac/virtual/exotic-color-space/images/color-profile-group-expected.png index 5c184def..5c047a2 100644 --- a/third_party/blink/web_tests/platform/mac/virtual/exotic-color-space/images/color-profile-group-expected.png +++ b/third_party/blink/web_tests/platform/mac/virtual/exotic-color-space/images/color-profile-group-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/exotic-color-space/images/color-profile-svg-fill-text-expected.png b/third_party/blink/web_tests/platform/mac/virtual/exotic-color-space/images/color-profile-svg-fill-text-expected.png index 8bb7fdd..e17e9ce 100644 --- a/third_party/blink/web_tests/platform/mac/virtual/exotic-color-space/images/color-profile-svg-fill-text-expected.png +++ b/third_party/blink/web_tests/platform/mac/virtual/exotic-color-space/images/color-profile-svg-fill-text-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/exotic-color-space/images/sprite-no-bleed-expected.png b/third_party/blink/web_tests/platform/mac/virtual/exotic-color-space/images/sprite-no-bleed-expected.png index 938f13d..8ce49a4a 100644 --- a/third_party/blink/web_tests/platform/mac/virtual/exotic-color-space/images/sprite-no-bleed-expected.png +++ b/third_party/blink/web_tests/platform/mac/virtual/exotic-color-space/images/sprite-no-bleed-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/gpu-rasterization-disable-yuv/images/yuv-decode-eligible/color-profile-border-radius-expected.png b/third_party/blink/web_tests/platform/mac/virtual/gpu-rasterization-disable-yuv/images/yuv-decode-eligible/color-profile-border-radius-expected.png index cb230c1..b863cf3 100644 --- a/third_party/blink/web_tests/platform/mac/virtual/gpu-rasterization-disable-yuv/images/yuv-decode-eligible/color-profile-border-radius-expected.png +++ b/third_party/blink/web_tests/platform/mac/virtual/gpu-rasterization-disable-yuv/images/yuv-decode-eligible/color-profile-border-radius-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/gpu-rasterization-disable-yuv/images/yuv-decode-eligible/color-profile-filter-expected.png b/third_party/blink/web_tests/platform/mac/virtual/gpu-rasterization-disable-yuv/images/yuv-decode-eligible/color-profile-filter-expected.png index 0af66ee..5729eed 100644 --- a/third_party/blink/web_tests/platform/mac/virtual/gpu-rasterization-disable-yuv/images/yuv-decode-eligible/color-profile-filter-expected.png +++ b/third_party/blink/web_tests/platform/mac/virtual/gpu-rasterization-disable-yuv/images/yuv-decode-eligible/color-profile-filter-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/gpu-rasterization-disable-yuv/images/yuv-decode-eligible/color-profile-image-expected.png b/third_party/blink/web_tests/platform/mac/virtual/gpu-rasterization-disable-yuv/images/yuv-decode-eligible/color-profile-image-expected.png index fbbb309..b1d16f5c 100644 --- a/third_party/blink/web_tests/platform/mac/virtual/gpu-rasterization-disable-yuv/images/yuv-decode-eligible/color-profile-image-expected.png +++ b/third_party/blink/web_tests/platform/mac/virtual/gpu-rasterization-disable-yuv/images/yuv-decode-eligible/color-profile-image-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/gpu-rasterization/images/color-profile-image-filter-all-expected.png b/third_party/blink/web_tests/platform/mac/virtual/gpu-rasterization/images/color-profile-image-filter-all-expected.png index ffd96a8..157a19d 100644 --- a/third_party/blink/web_tests/platform/mac/virtual/gpu-rasterization/images/color-profile-image-filter-all-expected.png +++ b/third_party/blink/web_tests/platform/mac/virtual/gpu-rasterization/images/color-profile-image-filter-all-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/gpu-rasterization/images/color-profile-svg-fill-text-expected.png b/third_party/blink/web_tests/platform/mac/virtual/gpu-rasterization/images/color-profile-svg-fill-text-expected.png index 218f5efb..bb647f8 100644 --- a/third_party/blink/web_tests/platform/mac/virtual/gpu-rasterization/images/color-profile-svg-fill-text-expected.png +++ b/third_party/blink/web_tests/platform/mac/virtual/gpu-rasterization/images/color-profile-svg-fill-text-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/gpu-rasterization/images/sprite-no-bleed-expected.png b/third_party/blink/web_tests/platform/mac/virtual/gpu-rasterization/images/sprite-no-bleed-expected.png index fc2b68a..d290410 100644 --- a/third_party/blink/web_tests/platform/mac/virtual/gpu-rasterization/images/sprite-no-bleed-expected.png +++ b/third_party/blink/web_tests/platform/mac/virtual/gpu-rasterization/images/sprite-no-bleed-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/gpu-rasterization/images/yuv-decode-eligible/color-profile-filter-expected.png b/third_party/blink/web_tests/platform/mac/virtual/gpu-rasterization/images/yuv-decode-eligible/color-profile-filter-expected.png index 0af66ee..5729eed 100644 --- a/third_party/blink/web_tests/platform/mac/virtual/gpu-rasterization/images/yuv-decode-eligible/color-profile-filter-expected.png +++ b/third_party/blink/web_tests/platform/mac/virtual/gpu-rasterization/images/yuv-decode-eligible/color-profile-filter-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/gpu-rasterization/images/yuv-decode-eligible/color-profile-image-expected.png b/third_party/blink/web_tests/platform/mac/virtual/gpu-rasterization/images/yuv-decode-eligible/color-profile-image-expected.png index fbbb309..b1d16f5c 100644 --- a/third_party/blink/web_tests/platform/mac/virtual/gpu-rasterization/images/yuv-decode-eligible/color-profile-image-expected.png +++ b/third_party/blink/web_tests/platform/mac/virtual/gpu-rasterization/images/yuv-decode-eligible/color-profile-image-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/compositing/img-layer-object-fit-expected.png b/third_party/blink/web_tests/platform/win/compositing/img-layer-object-fit-expected.png index 22fb7a1b..05b33c8 100644 --- a/third_party/blink/web_tests/platform/win/compositing/img-layer-object-fit-expected.png +++ b/third_party/blink/web_tests/platform/win/compositing/img-layer-object-fit-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/css3/blending/mix-blend-mode-isolated-group-1-expected.png b/third_party/blink/web_tests/platform/win/css3/blending/mix-blend-mode-isolated-group-1-expected.png deleted file mode 100644 index 3430ffa..0000000 --- a/third_party/blink/web_tests/platform/win/css3/blending/mix-blend-mode-isolated-group-1-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/css3/blending/mix-blend-mode-isolated-group-3-expected.png b/third_party/blink/web_tests/platform/win/css3/blending/mix-blend-mode-isolated-group-3-expected.png deleted file mode 100644 index ccae4c3c..0000000 --- a/third_party/blink/web_tests/platform/win/css3/blending/mix-blend-mode-isolated-group-3-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/backgrounds/background-repeat-with-background-color-expected.png b/third_party/blink/web_tests/platform/win/fast/backgrounds/background-repeat-with-background-color-expected.png index b518763..05d37bb 100644 --- a/third_party/blink/web_tests/platform/win/fast/backgrounds/background-repeat-with-background-color-expected.png +++ b/third_party/blink/web_tests/platform/win/fast/backgrounds/background-repeat-with-background-color-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/backgrounds/size/backgroundSize15-expected.png b/third_party/blink/web_tests/platform/win/fast/backgrounds/size/backgroundSize15-expected.png index 4bfb1156..c216689 100644 --- a/third_party/blink/web_tests/platform/win/fast/backgrounds/size/backgroundSize15-expected.png +++ b/third_party/blink/web_tests/platform/win/fast/backgrounds/size/backgroundSize15-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/backgrounds/size/backgroundSize16-expected.png b/third_party/blink/web_tests/platform/win/fast/backgrounds/size/backgroundSize16-expected.png index bb71ea6..4209f86 100644 --- a/third_party/blink/web_tests/platform/win/fast/backgrounds/size/backgroundSize16-expected.png +++ b/third_party/blink/web_tests/platform/win/fast/backgrounds/size/backgroundSize16-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/borders/border-image-01-expected.png b/third_party/blink/web_tests/platform/win/fast/borders/border-image-01-expected.png index 57fe61a..c5d5c00 100644 --- a/third_party/blink/web_tests/platform/win/fast/borders/border-image-01-expected.png +++ b/third_party/blink/web_tests/platform/win/fast/borders/border-image-01-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/borders/border-image-border-radius-expected.png b/third_party/blink/web_tests/platform/win/fast/borders/border-image-border-radius-expected.png index b4d8bb9c..78fddf5 100644 --- a/third_party/blink/web_tests/platform/win/fast/borders/border-image-border-radius-expected.png +++ b/third_party/blink/web_tests/platform/win/fast/borders/border-image-border-radius-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/borders/border-image-longhand-expected.png b/third_party/blink/web_tests/platform/win/fast/borders/border-image-longhand-expected.png index 57fe61a..c5d5c00 100644 --- a/third_party/blink/web_tests/platform/win/fast/borders/border-image-longhand-expected.png +++ b/third_party/blink/web_tests/platform/win/fast/borders/border-image-longhand-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/borders/border-image-massive-scale-expected.png b/third_party/blink/web_tests/platform/win/fast/borders/border-image-massive-scale-expected.png index 3a9e0842..21c590d 100644 --- a/third_party/blink/web_tests/platform/win/fast/borders/border-image-massive-scale-expected.png +++ b/third_party/blink/web_tests/platform/win/fast/borders/border-image-massive-scale-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/borders/border-image-outset-expected.png b/third_party/blink/web_tests/platform/win/fast/borders/border-image-outset-expected.png index 64d0f5a..5f06ac9 100644 --- a/third_party/blink/web_tests/platform/win/fast/borders/border-image-outset-expected.png +++ b/third_party/blink/web_tests/platform/win/fast/borders/border-image-outset-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/borders/border-image-outset-in-shorthand-expected.png b/third_party/blink/web_tests/platform/win/fast/borders/border-image-outset-in-shorthand-expected.png index 64d0f5a..5f06ac9 100644 --- a/third_party/blink/web_tests/platform/win/fast/borders/border-image-outset-in-shorthand-expected.png +++ b/third_party/blink/web_tests/platform/win/fast/borders/border-image-outset-in-shorthand-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/borders/border-image-repeat-expected.png b/third_party/blink/web_tests/platform/win/fast/borders/border-image-repeat-expected.png index 57fe61a..c5d5c00 100644 --- a/third_party/blink/web_tests/platform/win/fast/borders/border-image-repeat-expected.png +++ b/third_party/blink/web_tests/platform/win/fast/borders/border-image-repeat-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/borders/border-image-repeat-round-expected.png b/third_party/blink/web_tests/platform/win/fast/borders/border-image-repeat-round-expected.png index 0432d9f..6533731 100644 --- a/third_party/blink/web_tests/platform/win/fast/borders/border-image-repeat-round-expected.png +++ b/third_party/blink/web_tests/platform/win/fast/borders/border-image-repeat-round-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/borders/border-image-rotate-transform-expected.png b/third_party/blink/web_tests/platform/win/fast/borders/border-image-rotate-transform-expected.png index b42a74c..a01228d 100644 --- a/third_party/blink/web_tests/platform/win/fast/borders/border-image-rotate-transform-expected.png +++ b/third_party/blink/web_tests/platform/win/fast/borders/border-image-rotate-transform-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/borders/border-image-scale-transform-expected.png b/third_party/blink/web_tests/platform/win/fast/borders/border-image-scale-transform-expected.png index 701ec30..cfe9d071 100644 --- a/third_party/blink/web_tests/platform/win/fast/borders/border-image-scale-transform-expected.png +++ b/third_party/blink/web_tests/platform/win/fast/borders/border-image-scale-transform-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/borders/border-image-scaled-expected.png b/third_party/blink/web_tests/platform/win/fast/borders/border-image-scaled-expected.png index 2d6afb7..22c08644 100644 --- a/third_party/blink/web_tests/platform/win/fast/borders/border-image-scaled-expected.png +++ b/third_party/blink/web_tests/platform/win/fast/borders/border-image-scaled-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/borders/border-image-scrambled-expected.png b/third_party/blink/web_tests/platform/win/fast/borders/border-image-scrambled-expected.png index 57fe61a..c5d5c00 100644 --- a/third_party/blink/web_tests/platform/win/fast/borders/border-image-scrambled-expected.png +++ b/third_party/blink/web_tests/platform/win/fast/borders/border-image-scrambled-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/borders/border-image-slices-expected.png b/third_party/blink/web_tests/platform/win/fast/borders/border-image-slices-expected.png index 51fc474..d8e429e 100644 --- a/third_party/blink/web_tests/platform/win/fast/borders/border-image-slices-expected.png +++ b/third_party/blink/web_tests/platform/win/fast/borders/border-image-slices-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/borders/border-image-source-expected.png b/third_party/blink/web_tests/platform/win/fast/borders/border-image-source-expected.png index 57fe61a..c5d5c00 100644 --- a/third_party/blink/web_tests/platform/win/fast/borders/border-image-source-expected.png +++ b/third_party/blink/web_tests/platform/win/fast/borders/border-image-source-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/borders/inline-mask-overlay-image-outset-expected.png b/third_party/blink/web_tests/platform/win/fast/borders/inline-mask-overlay-image-outset-expected.png index ee65da5..b6ee18a 100644 --- a/third_party/blink/web_tests/platform/win/fast/borders/inline-mask-overlay-image-outset-expected.png +++ b/third_party/blink/web_tests/platform/win/fast/borders/inline-mask-overlay-image-outset-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/borders/scaled-border-image-expected.png b/third_party/blink/web_tests/platform/win/fast/borders/scaled-border-image-expected.png index 3976ab0d..c389b73 100644 --- a/third_party/blink/web_tests/platform/win/fast/borders/scaled-border-image-expected.png +++ b/third_party/blink/web_tests/platform/win/fast/borders/scaled-border-image-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/color-scheme/media/video-overlay-menu-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/color-scheme/media/video-overlay-menu-expected.png index dadb289e..d7d099ed 100644 --- a/third_party/blink/web_tests/platform/win/fast/forms/color-scheme/media/video-overlay-menu-expected.png +++ b/third_party/blink/web_tests/platform/win/fast/forms/color-scheme/media/video-overlay-menu-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/overflow/overflow-of-video-outline-expected.png b/third_party/blink/web_tests/platform/win/fast/overflow/overflow-of-video-outline-expected.png index 1ccd49edb..48cd305 100644 --- a/third_party/blink/web_tests/platform/win/fast/overflow/overflow-of-video-outline-expected.png +++ b/third_party/blink/web_tests/platform/win/fast/overflow/overflow-of-video-outline-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/http/tests/misc/slow-loading-image-in-pattern-expected.png b/third_party/blink/web_tests/platform/win/http/tests/misc/slow-loading-image-in-pattern-expected.png index 5a76e6a7..5655c4ee 100644 --- a/third_party/blink/web_tests/platform/win/http/tests/misc/slow-loading-image-in-pattern-expected.png +++ b/third_party/blink/web_tests/platform/win/http/tests/misc/slow-loading-image-in-pattern-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/images/color-profile-border-image-source-expected.png b/third_party/blink/web_tests/platform/win/images/color-profile-border-image-source-expected.png index 57fe61a..c5d5c00 100644 --- a/third_party/blink/web_tests/platform/win/images/color-profile-border-image-source-expected.png +++ b/third_party/blink/web_tests/platform/win/images/color-profile-border-image-source-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/images/color-profile-group-expected.png b/third_party/blink/web_tests/platform/win/images/color-profile-group-expected.png index 18227e5..7330059 100644 --- a/third_party/blink/web_tests/platform/win/images/color-profile-group-expected.png +++ b/third_party/blink/web_tests/platform/win/images/color-profile-group-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/images/color-profile-svg-fill-text-expected.png b/third_party/blink/web_tests/platform/win/images/color-profile-svg-fill-text-expected.png index 5a3051e7..ef99b9e3 100644 --- a/third_party/blink/web_tests/platform/win/images/color-profile-svg-fill-text-expected.png +++ b/third_party/blink/web_tests/platform/win/images/color-profile-svg-fill-text-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/images/sprite-no-bleed-expected.png b/third_party/blink/web_tests/platform/win/images/sprite-no-bleed-expected.png index 5f054dd..e0e3356 100644 --- a/third_party/blink/web_tests/platform/win/images/sprite-no-bleed-expected.png +++ b/third_party/blink/web_tests/platform/win/images/sprite-no-bleed-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/media/controls-after-reload-expected.png b/third_party/blink/web_tests/platform/win/media/controls-after-reload-expected.png index 2953838..1a53ec73 100644 --- a/third_party/blink/web_tests/platform/win/media/controls-after-reload-expected.png +++ b/third_party/blink/web_tests/platform/win/media/controls-after-reload-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/media/controls-layout-direction-expected.png b/third_party/blink/web_tests/platform/win/media/controls-layout-direction-expected.png index ec7b2a2..a5b4626 100644 --- a/third_party/blink/web_tests/platform/win/media/controls-layout-direction-expected.png +++ b/third_party/blink/web_tests/platform/win/media/controls-layout-direction-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/media/controls-strict-expected.png b/third_party/blink/web_tests/platform/win/media/controls-strict-expected.png index 03fb4ab..6c003a5 100644 --- a/third_party/blink/web_tests/platform/win/media/controls-strict-expected.png +++ b/third_party/blink/web_tests/platform/win/media/controls-strict-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/media/controls-styling-expected.png b/third_party/blink/web_tests/platform/win/media/controls-styling-expected.png index 5ebc1e76..19b2c19 100644 --- a/third_party/blink/web_tests/platform/win/media/controls-styling-expected.png +++ b/third_party/blink/web_tests/platform/win/media/controls-styling-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/media/controls-styling-strict-expected.png b/third_party/blink/web_tests/platform/win/media/controls-styling-strict-expected.png index 82f69f54..a5a10c5 100644 --- a/third_party/blink/web_tests/platform/win/media/controls-styling-strict-expected.png +++ b/third_party/blink/web_tests/platform/win/media/controls-styling-strict-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/media/controls-without-preload-expected.png b/third_party/blink/web_tests/platform/win/media/controls-without-preload-expected.png index 8ccd3e2..2889b4b 100644 --- a/third_party/blink/web_tests/platform/win/media/controls-without-preload-expected.png +++ b/third_party/blink/web_tests/platform/win/media/controls-without-preload-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/media/controls/paint-controls-webkit-appearance-none-expected.png b/third_party/blink/web_tests/platform/win/media/controls/paint-controls-webkit-appearance-none-expected.png index f687768..7897e95 100644 --- a/third_party/blink/web_tests/platform/win/media/controls/paint-controls-webkit-appearance-none-expected.png +++ b/third_party/blink/web_tests/platform/win/media/controls/paint-controls-webkit-appearance-none-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/media/media-controls-clone-expected.png b/third_party/blink/web_tests/platform/win/media/media-controls-clone-expected.png index 366c0684..31adecc5 100644 --- a/third_party/blink/web_tests/platform/win/media/media-controls-clone-expected.png +++ b/third_party/blink/web_tests/platform/win/media/media-controls-clone-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/media/media-controls-grey-scrubber-expected.png b/third_party/blink/web_tests/platform/win/media/media-controls-grey-scrubber-expected.png index cb26ec4..8e06338 100644 --- a/third_party/blink/web_tests/platform/win/media/media-controls-grey-scrubber-expected.png +++ b/third_party/blink/web_tests/platform/win/media/media-controls-grey-scrubber-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/media/video-controls-rendering-expected.png b/third_party/blink/web_tests/platform/win/media/video-controls-rendering-expected.png index 513458d..f7c989bc 100644 --- a/third_party/blink/web_tests/platform/win/media/video-controls-rendering-expected.png +++ b/third_party/blink/web_tests/platform/win/media/video-controls-rendering-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/media/video-display-toggle-expected.png b/third_party/blink/web_tests/platform/win/media/video-display-toggle-expected.png index 9c2605b..07b08d7 100644 --- a/third_party/blink/web_tests/platform/win/media/video-display-toggle-expected.png +++ b/third_party/blink/web_tests/platform/win/media/video-display-toggle-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/media/video-empty-source-expected.png b/third_party/blink/web_tests/platform/win/media/video-empty-source-expected.png index 1f76877f..78be5a4b 100644 --- a/third_party/blink/web_tests/platform/win/media/video-empty-source-expected.png +++ b/third_party/blink/web_tests/platform/win/media/video-empty-source-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/media/video-no-audio-expected.png b/third_party/blink/web_tests/platform/win/media/video-no-audio-expected.png index 86e52323..fdb47fa5 100644 --- a/third_party/blink/web_tests/platform/win/media/video-no-audio-expected.png +++ b/third_party/blink/web_tests/platform/win/media/video-no-audio-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/media/video-poster-scale-expected.png b/third_party/blink/web_tests/platform/win/media/video-poster-scale-expected.png index fcf21d300..cc44af8 100644 --- a/third_party/blink/web_tests/platform/win/media/video-poster-scale-expected.png +++ b/third_party/blink/web_tests/platform/win/media/video-poster-scale-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/media/video-zoom-controls-expected.png b/third_party/blink/web_tests/platform/win/media/video-zoom-controls-expected.png index be6e10b..4d4c821 100644 --- a/third_party/blink/web_tests/platform/win/media/video-zoom-controls-expected.png +++ b/third_party/blink/web_tests/platform/win/media/video-zoom-controls-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/paint/invalidation/svg/animated-path-inside-transformed-html-expected.png b/third_party/blink/web_tests/platform/win/paint/invalidation/svg/animated-path-inside-transformed-html-expected.png index 8fb2d8a..2cc03902 100644 --- a/third_party/blink/web_tests/platform/win/paint/invalidation/svg/animated-path-inside-transformed-html-expected.png +++ b/third_party/blink/web_tests/platform/win/paint/invalidation/svg/animated-path-inside-transformed-html-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/svg/carto.net/selectionlist-expected.png b/third_party/blink/web_tests/platform/win/svg/carto.net/selectionlist-expected.png index 248972d1..b24a8205 100644 --- a/third_party/blink/web_tests/platform/win/svg/carto.net/selectionlist-expected.png +++ b/third_party/blink/web_tests/platform/win/svg/carto.net/selectionlist-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/svg/custom/createImageElement2-expected.png b/third_party/blink/web_tests/platform/win/svg/custom/createImageElement2-expected.png index c09915e0..4a834963 100644 --- a/third_party/blink/web_tests/platform/win/svg/custom/createImageElement2-expected.png +++ b/third_party/blink/web_tests/platform/win/svg/custom/createImageElement2-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/svg/custom/image-parent-translation-expected.png b/third_party/blink/web_tests/platform/win/svg/custom/image-parent-translation-expected.png index 54eb732..4ee9d8b 100644 --- a/third_party/blink/web_tests/platform/win/svg/custom/image-parent-translation-expected.png +++ b/third_party/blink/web_tests/platform/win/svg/custom/image-parent-translation-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/svg/custom/image-small-width-height-expected.png b/third_party/blink/web_tests/platform/win/svg/custom/image-small-width-height-expected.png index 149f9f2..290e16f 100644 --- a/third_party/blink/web_tests/platform/win/svg/custom/image-small-width-height-expected.png +++ b/third_party/blink/web_tests/platform/win/svg/custom/image-small-width-height-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/svg/custom/pointer-events-image-css-transform-expected.png b/third_party/blink/web_tests/platform/win/svg/custom/pointer-events-image-css-transform-expected.png index fd3be98..f290187 100644 --- a/third_party/blink/web_tests/platform/win/svg/custom/pointer-events-image-css-transform-expected.png +++ b/third_party/blink/web_tests/platform/win/svg/custom/pointer-events-image-css-transform-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/svg/custom/pointer-events-image-expected.png b/third_party/blink/web_tests/platform/win/svg/custom/pointer-events-image-expected.png index fd3be98..f290187 100644 --- a/third_party/blink/web_tests/platform/win/svg/custom/pointer-events-image-expected.png +++ b/third_party/blink/web_tests/platform/win/svg/custom/pointer-events-image-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/svg/custom/text-image-opacity-expected.png b/third_party/blink/web_tests/platform/win/svg/custom/text-image-opacity-expected.png index a70d01d..b139a65 100644 --- a/third_party/blink/web_tests/platform/win/svg/custom/text-image-opacity-expected.png +++ b/third_party/blink/web_tests/platform/win/svg/custom/text-image-opacity-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/svg/hixie/perf/004-expected.png b/third_party/blink/web_tests/platform/win/svg/hixie/perf/004-expected.png index 70ed0cd..10a2fb9 100644 --- a/third_party/blink/web_tests/platform/win/svg/hixie/perf/004-expected.png +++ b/third_party/blink/web_tests/platform/win/svg/hixie/perf/004-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/svg/wicd/test-rightsizing-b-expected.png b/third_party/blink/web_tests/platform/win/svg/wicd/test-rightsizing-b-expected.png index ee41415b..574c7e1a 100644 --- a/third_party/blink/web_tests/platform/win/svg/wicd/test-rightsizing-b-expected.png +++ b/third_party/blink/web_tests/platform/win/svg/wicd/test-rightsizing-b-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug101674-expected.png b/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug101674-expected.png index ae3586977..f4b8e99 100644 --- a/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug101674-expected.png +++ b/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug101674-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug11026-expected.png b/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug11026-expected.png index c359af8..0bc1bb5 100644 --- a/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug11026-expected.png +++ b/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug11026-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug1296-expected.png b/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug1296-expected.png index 0d6b686..ff3226219 100644 --- a/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug1296-expected.png +++ b/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug1296-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug1430-expected.png b/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug1430-expected.png index 762c126..1384698 100644 --- a/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug1430-expected.png +++ b/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug1430-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug4093-expected.png b/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug4093-expected.png index 49b2fce..6d11e0b6 100644 --- a/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug4093-expected.png +++ b/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug4093-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug4427-expected.png b/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug4427-expected.png index abadcd3..e9d98ad 100644 --- a/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug4427-expected.png +++ b/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug4427-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug625-expected.png b/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug625-expected.png index 59b54814..e4c500c 100644 --- a/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug625-expected.png +++ b/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug625-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh-hc/fast/forms/color-scheme/media/video-overlay-menu-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh-hc/fast/forms/color-scheme/media/video-overlay-menu-expected.png index 00c8478..1e180fe 100644 --- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh-hc/fast/forms/color-scheme/media/video-overlay-menu-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh-hc/fast/forms/color-scheme/media/video-overlay-menu-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/dark-color-scheme/fast/forms/color-scheme/media/video-overlay-menu-expected.png b/third_party/blink/web_tests/platform/win/virtual/dark-color-scheme/fast/forms/color-scheme/media/video-overlay-menu-expected.png index 1ba009c5..4a642cc 100644 --- a/third_party/blink/web_tests/platform/win/virtual/dark-color-scheme/fast/forms/color-scheme/media/video-overlay-menu-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/dark-color-scheme/fast/forms/color-scheme/media/video-overlay-menu-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/dark-color-scheme/media/video-controls-rendering-expected.png b/third_party/blink/web_tests/platform/win/virtual/dark-color-scheme/media/video-controls-rendering-expected.png index 694cf4b0..5d2029d 100644 --- a/third_party/blink/web_tests/platform/win/virtual/dark-color-scheme/media/video-controls-rendering-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/dark-color-scheme/media/video-controls-rendering-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/dark-color-scheme/media/video-focus-ring-expected.png b/third_party/blink/web_tests/platform/win/virtual/dark-color-scheme/media/video-focus-ring-expected.png index 0805ec3..6dcbab3 100644 --- a/third_party/blink/web_tests/platform/win/virtual/dark-color-scheme/media/video-focus-ring-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/dark-color-scheme/media/video-focus-ring-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/exotic-color-space/images/color-profile-background-image-cover-expected.png b/third_party/blink/web_tests/platform/win/virtual/exotic-color-space/images/color-profile-background-image-cover-expected.png index ad98a77..54d4331 100644 --- a/third_party/blink/web_tests/platform/win/virtual/exotic-color-space/images/color-profile-background-image-cover-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/exotic-color-space/images/color-profile-background-image-cover-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/exotic-color-space/images/color-profile-background-image-space-expected.png b/third_party/blink/web_tests/platform/win/virtual/exotic-color-space/images/color-profile-background-image-space-expected.png index a118435..7c5b1e2 100644 --- a/third_party/blink/web_tests/platform/win/virtual/exotic-color-space/images/color-profile-background-image-space-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/exotic-color-space/images/color-profile-background-image-space-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/exotic-color-space/images/color-profile-border-image-expected.png b/third_party/blink/web_tests/platform/win/virtual/exotic-color-space/images/color-profile-border-image-expected.png index df9a5bd..1df1e9ac 100644 --- a/third_party/blink/web_tests/platform/win/virtual/exotic-color-space/images/color-profile-border-image-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/exotic-color-space/images/color-profile-border-image-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/exotic-color-space/images/color-profile-group-expected.png b/third_party/blink/web_tests/platform/win/virtual/exotic-color-space/images/color-profile-group-expected.png index 9a15d7a..7f2072ae 100644 --- a/third_party/blink/web_tests/platform/win/virtual/exotic-color-space/images/color-profile-group-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/exotic-color-space/images/color-profile-group-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/exotic-color-space/images/color-profile-svg-fill-text-expected.png b/third_party/blink/web_tests/platform/win/virtual/exotic-color-space/images/color-profile-svg-fill-text-expected.png index f672f80..aa1a8a8 100644 --- a/third_party/blink/web_tests/platform/win/virtual/exotic-color-space/images/color-profile-svg-fill-text-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/exotic-color-space/images/color-profile-svg-fill-text-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/exotic-color-space/images/sprite-no-bleed-expected.png b/third_party/blink/web_tests/platform/win/virtual/exotic-color-space/images/sprite-no-bleed-expected.png index 078ef5e3..f65b905 100644 --- a/third_party/blink/web_tests/platform/win/virtual/exotic-color-space/images/sprite-no-bleed-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/exotic-color-space/images/sprite-no-bleed-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/gpu-rasterization-disable-yuv/images/yuv-decode-eligible/color-profile-border-radius-expected.png b/third_party/blink/web_tests/platform/win/virtual/gpu-rasterization-disable-yuv/images/yuv-decode-eligible/color-profile-border-radius-expected.png index 2911490..57e153c6 100644 --- a/third_party/blink/web_tests/platform/win/virtual/gpu-rasterization-disable-yuv/images/yuv-decode-eligible/color-profile-border-radius-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/gpu-rasterization-disable-yuv/images/yuv-decode-eligible/color-profile-border-radius-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/gpu-rasterization-disable-yuv/images/yuv-decode-eligible/color-profile-filter-expected.png b/third_party/blink/web_tests/platform/win/virtual/gpu-rasterization-disable-yuv/images/yuv-decode-eligible/color-profile-filter-expected.png index 17f2233d..1c80966 100644 --- a/third_party/blink/web_tests/platform/win/virtual/gpu-rasterization-disable-yuv/images/yuv-decode-eligible/color-profile-filter-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/gpu-rasterization-disable-yuv/images/yuv-decode-eligible/color-profile-filter-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/gpu-rasterization-disable-yuv/images/yuv-decode-eligible/color-profile-image-expected.png b/third_party/blink/web_tests/platform/win/virtual/gpu-rasterization-disable-yuv/images/yuv-decode-eligible/color-profile-image-expected.png index b3adb7a..b143e8e 100644 --- a/third_party/blink/web_tests/platform/win/virtual/gpu-rasterization-disable-yuv/images/yuv-decode-eligible/color-profile-image-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/gpu-rasterization-disable-yuv/images/yuv-decode-eligible/color-profile-image-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/gpu-rasterization/images/color-profile-image-filter-all-expected.png b/third_party/blink/web_tests/platform/win/virtual/gpu-rasterization/images/color-profile-image-filter-all-expected.png index 60234a68..b5234b8 100644 --- a/third_party/blink/web_tests/platform/win/virtual/gpu-rasterization/images/color-profile-image-filter-all-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/gpu-rasterization/images/color-profile-image-filter-all-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/gpu-rasterization/images/color-profile-svg-fill-text-expected.png b/third_party/blink/web_tests/platform/win/virtual/gpu-rasterization/images/color-profile-svg-fill-text-expected.png index 5b2d1bb..07d8705 100644 --- a/third_party/blink/web_tests/platform/win/virtual/gpu-rasterization/images/color-profile-svg-fill-text-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/gpu-rasterization/images/color-profile-svg-fill-text-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/gpu-rasterization/images/sprite-no-bleed-expected.png b/third_party/blink/web_tests/platform/win/virtual/gpu-rasterization/images/sprite-no-bleed-expected.png index 0fa4605..415a0c8a 100644 --- a/third_party/blink/web_tests/platform/win/virtual/gpu-rasterization/images/sprite-no-bleed-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/gpu-rasterization/images/sprite-no-bleed-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/gpu-rasterization/images/yuv-decode-eligible/color-profile-filter-expected.png b/third_party/blink/web_tests/platform/win/virtual/gpu-rasterization/images/yuv-decode-eligible/color-profile-filter-expected.png index 17f2233d..1c80966 100644 --- a/third_party/blink/web_tests/platform/win/virtual/gpu-rasterization/images/yuv-decode-eligible/color-profile-filter-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/gpu-rasterization/images/yuv-decode-eligible/color-profile-filter-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/gpu-rasterization/images/yuv-decode-eligible/color-profile-image-expected.png b/third_party/blink/web_tests/platform/win/virtual/gpu-rasterization/images/yuv-decode-eligible/color-profile-image-expected.png index b3adb7a..b143e8e 100644 --- a/third_party/blink/web_tests/platform/win/virtual/gpu-rasterization/images/yuv-decode-eligible/color-profile-image-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/gpu-rasterization/images/yuv-decode-eligible/color-profile-image-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh-hc/fast/forms/color-scheme/media/video-overlay-menu-expected.png b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh-hc/fast/forms/color-scheme/media/video-overlay-menu-expected.png new file mode 100644 index 0000000..1e180fe --- /dev/null +++ b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh-hc/fast/forms/color-scheme/media/video-overlay-menu-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/dark-color-scheme/fast/forms/color-scheme/media/video-overlay-menu-expected.png b/third_party/blink/web_tests/platform/win7/virtual/dark-color-scheme/fast/forms/color-scheme/media/video-overlay-menu-expected.png new file mode 100644 index 0000000..4a642cc --- /dev/null +++ b/third_party/blink/web_tests/platform/win7/virtual/dark-color-scheme/fast/forms/color-scheme/media/video-overlay-menu-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac-arm11.0/svg/carto.net/selectionlist-expected.png b/third_party/blink/web_tests/svg/carto.net/selectionlist-expected.png similarity index 100% rename from third_party/blink/web_tests/platform/mac-mac-arm11.0/svg/carto.net/selectionlist-expected.png rename to third_party/blink/web_tests/svg/carto.net/selectionlist-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/svg/custom/convolution-crash-expected.png b/third_party/blink/web_tests/svg/custom/convolution-crash-expected.png index 3e68843..1adac69 100644 --- a/third_party/blink/web_tests/svg/custom/convolution-crash-expected.png +++ b/third_party/blink/web_tests/svg/custom/convolution-crash-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/svg/custom/createImageElement-expected.png b/third_party/blink/web_tests/svg/custom/createImageElement-expected.png index 2891367..3f310b22 100644 --- a/third_party/blink/web_tests/svg/custom/createImageElement-expected.png +++ b/third_party/blink/web_tests/svg/custom/createImageElement-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/svg/custom/js-update-image-and-display-expected.png b/third_party/blink/web_tests/svg/custom/js-update-image-and-display-expected.png index a1fd67e3..c93cffd 100644 --- a/third_party/blink/web_tests/svg/custom/js-update-image-and-display-expected.png +++ b/third_party/blink/web_tests/svg/custom/js-update-image-and-display-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/svg/custom/js-update-image-and-display2-expected.png b/third_party/blink/web_tests/svg/custom/js-update-image-and-display2-expected.png index a1fd67e3..c93cffd 100644 --- a/third_party/blink/web_tests/svg/custom/js-update-image-and-display2-expected.png +++ b/third_party/blink/web_tests/svg/custom/js-update-image-and-display2-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/svg/custom/js-update-image-and-display3-expected.png b/third_party/blink/web_tests/svg/custom/js-update-image-and-display3-expected.png index a1fd67e3..c93cffd 100644 --- a/third_party/blink/web_tests/svg/custom/js-update-image-and-display3-expected.png +++ b/third_party/blink/web_tests/svg/custom/js-update-image-and-display3-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/svg/custom/use-on-g-containing-foreignObject-and-image-expected.png b/third_party/blink/web_tests/svg/custom/use-on-g-containing-foreignObject-and-image-expected.png index 0c585a35..6ba300a 100644 --- a/third_party/blink/web_tests/svg/custom/use-on-g-containing-foreignObject-and-image-expected.png +++ b/third_party/blink/web_tests/svg/custom/use-on-g-containing-foreignObject-and-image-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/svg/dynamic-updates/SVGImageElement-dom-preserveAspectRatio-attr-expected.png b/third_party/blink/web_tests/svg/dynamic-updates/SVGImageElement-dom-preserveAspectRatio-attr-expected.png index b5047100..682509b 100644 --- a/third_party/blink/web_tests/svg/dynamic-updates/SVGImageElement-dom-preserveAspectRatio-attr-expected.png +++ b/third_party/blink/web_tests/svg/dynamic-updates/SVGImageElement-dom-preserveAspectRatio-attr-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/svg/dynamic-updates/SVGImageElement-dom-width-attr-expected.png b/third_party/blink/web_tests/svg/dynamic-updates/SVGImageElement-dom-width-attr-expected.png index 1641a7e2..3a6c4546 100644 --- a/third_party/blink/web_tests/svg/dynamic-updates/SVGImageElement-dom-width-attr-expected.png +++ b/third_party/blink/web_tests/svg/dynamic-updates/SVGImageElement-dom-width-attr-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/svg/dynamic-updates/SVGImageElement-dom-x-attr-expected.png b/third_party/blink/web_tests/svg/dynamic-updates/SVGImageElement-dom-x-attr-expected.png index 1641a7e2..3a6c4546 100644 --- a/third_party/blink/web_tests/svg/dynamic-updates/SVGImageElement-dom-x-attr-expected.png +++ b/third_party/blink/web_tests/svg/dynamic-updates/SVGImageElement-dom-x-attr-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/svg/dynamic-updates/SVGImageElement-dom-y-attr-expected.png b/third_party/blink/web_tests/svg/dynamic-updates/SVGImageElement-dom-y-attr-expected.png index 1641a7e2..3a6c4546 100644 --- a/third_party/blink/web_tests/svg/dynamic-updates/SVGImageElement-dom-y-attr-expected.png +++ b/third_party/blink/web_tests/svg/dynamic-updates/SVGImageElement-dom-y-attr-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/svg/dynamic-updates/SVGImageElement-svgdom-height-prop-expected.png b/third_party/blink/web_tests/svg/dynamic-updates/SVGImageElement-svgdom-height-prop-expected.png index 1641a7e2..3a6c4546 100644 --- a/third_party/blink/web_tests/svg/dynamic-updates/SVGImageElement-svgdom-height-prop-expected.png +++ b/third_party/blink/web_tests/svg/dynamic-updates/SVGImageElement-svgdom-height-prop-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/svg/dynamic-updates/SVGImageElement-svgdom-preserveAspectRatio-prop-expected.png b/third_party/blink/web_tests/svg/dynamic-updates/SVGImageElement-svgdom-preserveAspectRatio-prop-expected.png index 1641a7e2..3a6c4546 100644 --- a/third_party/blink/web_tests/svg/dynamic-updates/SVGImageElement-svgdom-preserveAspectRatio-prop-expected.png +++ b/third_party/blink/web_tests/svg/dynamic-updates/SVGImageElement-svgdom-preserveAspectRatio-prop-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/svg/dynamic-updates/SVGImageElement-svgdom-width-prop-expected.png b/third_party/blink/web_tests/svg/dynamic-updates/SVGImageElement-svgdom-width-prop-expected.png index 1641a7e2..3a6c4546 100644 --- a/third_party/blink/web_tests/svg/dynamic-updates/SVGImageElement-svgdom-width-prop-expected.png +++ b/third_party/blink/web_tests/svg/dynamic-updates/SVGImageElement-svgdom-width-prop-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/svg/dynamic-updates/SVGImageElement-svgdom-x-prop-expected.png b/third_party/blink/web_tests/svg/dynamic-updates/SVGImageElement-svgdom-x-prop-expected.png index 1641a7e2..3a6c4546 100644 --- a/third_party/blink/web_tests/svg/dynamic-updates/SVGImageElement-svgdom-x-prop-expected.png +++ b/third_party/blink/web_tests/svg/dynamic-updates/SVGImageElement-svgdom-x-prop-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/svg/dynamic-updates/SVGImageElement-svgdom-y-prop-expected.png b/third_party/blink/web_tests/svg/dynamic-updates/SVGImageElement-svgdom-y-prop-expected.png index 1641a7e2..3a6c4546 100644 --- a/third_party/blink/web_tests/svg/dynamic-updates/SVGImageElement-svgdom-y-prop-expected.png +++ b/third_party/blink/web_tests/svg/dynamic-updates/SVGImageElement-svgdom-y-prop-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac-arm11.0/virtual/exotic-color-space/images/color-profile-background-image-cover-expected.png b/third_party/blink/web_tests/virtual/exotic-color-space/images/color-profile-background-image-cover-expected.png similarity index 100% rename from third_party/blink/web_tests/platform/mac-mac-arm11.0/virtual/exotic-color-space/images/color-profile-background-image-cover-expected.png rename to third_party/blink/web_tests/virtual/exotic-color-space/images/color-profile-background-image-cover-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac-arm11.0/virtual/exotic-color-space/images/color-profile-background-image-space-expected.png b/third_party/blink/web_tests/virtual/exotic-color-space/images/color-profile-background-image-space-expected.png similarity index 100% rename from third_party/blink/web_tests/platform/mac-mac-arm11.0/virtual/exotic-color-space/images/color-profile-background-image-space-expected.png rename to third_party/blink/web_tests/virtual/exotic-color-space/images/color-profile-background-image-space-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac-arm11.0/virtual/exotic-color-space/images/color-profile-border-image-expected.png b/third_party/blink/web_tests/virtual/exotic-color-space/images/color-profile-border-image-expected.png similarity index 100% rename from third_party/blink/web_tests/platform/mac-mac-arm11.0/virtual/exotic-color-space/images/color-profile-border-image-expected.png rename to third_party/blink/web_tests/virtual/exotic-color-space/images/color-profile-border-image-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/virtual/gpu-rasterization-disable-yuv/images/yuv-decode-eligible/color-profile-image-profile-match-expected.png b/third_party/blink/web_tests/virtual/gpu-rasterization-disable-yuv/images/yuv-decode-eligible/color-profile-image-profile-match-expected.png index 18c5489..b6a8beb3d 100644 --- a/third_party/blink/web_tests/virtual/gpu-rasterization-disable-yuv/images/yuv-decode-eligible/color-profile-image-profile-match-expected.png +++ b/third_party/blink/web_tests/virtual/gpu-rasterization-disable-yuv/images/yuv-decode-eligible/color-profile-image-profile-match-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/virtual/gpu-rasterization/images/color-profile-background-image-cover-expected.png b/third_party/blink/web_tests/virtual/gpu-rasterization/images/color-profile-background-image-cover-expected.png index da14a0e..646c8f5b 100644 --- a/third_party/blink/web_tests/virtual/gpu-rasterization/images/color-profile-background-image-cover-expected.png +++ b/third_party/blink/web_tests/virtual/gpu-rasterization/images/color-profile-background-image-cover-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/virtual/gpu-rasterization/images/color-profile-background-image-repeat-expected.png b/third_party/blink/web_tests/virtual/gpu-rasterization/images/color-profile-background-image-repeat-expected.png index 890d278e..ea05163 100644 --- a/third_party/blink/web_tests/virtual/gpu-rasterization/images/color-profile-background-image-repeat-expected.png +++ b/third_party/blink/web_tests/virtual/gpu-rasterization/images/color-profile-background-image-repeat-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/virtual/gpu-rasterization/images/color-profile-background-image-space-expected.png b/third_party/blink/web_tests/virtual/gpu-rasterization/images/color-profile-background-image-space-expected.png index 7d74fd8..49066a42 100644 --- a/third_party/blink/web_tests/virtual/gpu-rasterization/images/color-profile-background-image-space-expected.png +++ b/third_party/blink/web_tests/virtual/gpu-rasterization/images/color-profile-background-image-space-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/virtual/gpu-rasterization/images/color-profile-border-image-expected.png b/third_party/blink/web_tests/virtual/gpu-rasterization/images/color-profile-border-image-expected.png index f83899f..74f98aa 100644 --- a/third_party/blink/web_tests/virtual/gpu-rasterization/images/color-profile-border-image-expected.png +++ b/third_party/blink/web_tests/virtual/gpu-rasterization/images/color-profile-border-image-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/virtual/gpu-rasterization/images/color-profile-image-canvas-expected.png b/third_party/blink/web_tests/virtual/gpu-rasterization/images/color-profile-image-canvas-expected.png index 200168c..991881b 100644 --- a/third_party/blink/web_tests/virtual/gpu-rasterization/images/color-profile-image-canvas-expected.png +++ b/third_party/blink/web_tests/virtual/gpu-rasterization/images/color-profile-image-canvas-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/virtual/gpu-rasterization/images/color-profile-image-canvas-pattern-expected.png b/third_party/blink/web_tests/virtual/gpu-rasterization/images/color-profile-image-canvas-pattern-expected.png index e492aa9a..73c5b63 100644 --- a/third_party/blink/web_tests/virtual/gpu-rasterization/images/color-profile-image-canvas-pattern-expected.png +++ b/third_party/blink/web_tests/virtual/gpu-rasterization/images/color-profile-image-canvas-pattern-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/virtual/gpu-rasterization/images/color-profile-mask-image-svg-expected.png b/third_party/blink/web_tests/virtual/gpu-rasterization/images/color-profile-mask-image-svg-expected.png index c9069e3..81359a85 100644 --- a/third_party/blink/web_tests/virtual/gpu-rasterization/images/color-profile-mask-image-svg-expected.png +++ b/third_party/blink/web_tests/virtual/gpu-rasterization/images/color-profile-mask-image-svg-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/virtual/gpu-rasterization/images/color-profile-object-expected.png b/third_party/blink/web_tests/virtual/gpu-rasterization/images/color-profile-object-expected.png index 5e115ce5..aaf631d 100644 --- a/third_party/blink/web_tests/virtual/gpu-rasterization/images/color-profile-object-expected.png +++ b/third_party/blink/web_tests/virtual/gpu-rasterization/images/color-profile-object-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/virtual/gpu-rasterization/images/rgb-png-with-cmyk-color-profile-expected.png b/third_party/blink/web_tests/virtual/gpu-rasterization/images/rgb-png-with-cmyk-color-profile-expected.png index dfe9984..8b04cc0 100644 --- a/third_party/blink/web_tests/virtual/gpu-rasterization/images/rgb-png-with-cmyk-color-profile-expected.png +++ b/third_party/blink/web_tests/virtual/gpu-rasterization/images/rgb-png-with-cmyk-color-profile-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/virtual/gpu-rasterization/images/ycbcr-with-cmyk-color-profile-expected.png b/third_party/blink/web_tests/virtual/gpu-rasterization/images/ycbcr-with-cmyk-color-profile-expected.png index 2128d87..f72a8cc 100644 --- a/third_party/blink/web_tests/virtual/gpu-rasterization/images/ycbcr-with-cmyk-color-profile-expected.png +++ b/third_party/blink/web_tests/virtual/gpu-rasterization/images/ycbcr-with-cmyk-color-profile-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/virtual/gpu-rasterization/images/yuv-decode-eligible/color-profile-image-profile-match-expected.png b/third_party/blink/web_tests/virtual/gpu-rasterization/images/yuv-decode-eligible/color-profile-image-profile-match-expected.png index 18c5489..b6a8beb3d 100644 --- a/third_party/blink/web_tests/virtual/gpu-rasterization/images/yuv-decode-eligible/color-profile-image-profile-match-expected.png +++ b/third_party/blink/web_tests/virtual/gpu-rasterization/images/yuv-decode-eligible/color-profile-image-profile-match-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/virtual/gpu-rasterization/images/yuv-decode-eligible/webp-no-color-profile-lossy-expected.png b/third_party/blink/web_tests/virtual/gpu-rasterization/images/yuv-decode-eligible/webp-no-color-profile-lossy-expected.png index 63a272b..bfb9484 100644 --- a/third_party/blink/web_tests/virtual/gpu-rasterization/images/yuv-decode-eligible/webp-no-color-profile-lossy-expected.png +++ b/third_party/blink/web_tests/virtual/gpu-rasterization/images/yuv-decode-eligible/webp-no-color-profile-lossy-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/grid-positioned-items-padding-001-expected.txt b/third_party/blink/web_tests/virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/grid-positioned-items-padding-001-expected.txt new file mode 100644 index 0000000..ee98a6f --- /dev/null +++ b/third_party/blink/web_tests/virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/grid-positioned-items-padding-001-expected.txt
@@ -0,0 +1,163 @@ +This is a testharness.js-based test. +FAIL .grid 1 assert_equals: +<div class="grid"> + <div class="absolute" style="grid-column: auto / 1; grid-row: auto / 1;" data-offset-x="0" data-offset-y="0" data-expected-width="15" data-expected-height="15"> + </div> + <div class="absolute" style="grid-column: 1 / 2; grid-row: auto / 1;" data-offset-x="15" data-offset-y="0" data-expected-width="100" data-expected-height="15"> + </div> + <div class="absolute" style="grid-column: auto / 1; grid-row: 1 / 2;" data-offset-x="0" data-offset-y="15" data-expected-width="15" data-expected-height="50"> + </div> + <div class="absolute" style="grid-column: 3 / auto; grid-row: 3 / auto;" data-offset-x="315" data-offset-y="215" data-expected-width="215" data-expected-height="115"> + </div> + <div class="absolute" style="grid-column: 2 / 3; grid-row: 3 / auto;" data-offset-x="115" data-offset-y="215" data-expected-width="200" data-expected-height="115"> + </div> + <div class="absolute" style="grid-column: 3 / auto; grid-row: 2 / 3;" data-offset-x="315" data-offset-y="65" data-expected-width="215" data-expected-height="150"> + </div> +</div> +width expected 15 but got 530 +FAIL .grid 2 assert_equals: +<div class="grid"> + <div class="absolute" style="grid-column: -5 / 1; grid-row: -5 / 1;" data-offset-x="0" data-offset-y="0" data-expected-width="15" data-expected-height="15"> + </div> + <div class="absolute" style="grid-column: 1 / 2; grid-row: -5 / 1;" data-offset-x="15" data-offset-y="0" data-expected-width="100" data-expected-height="15"> + </div> + <div class="absolute" style="grid-column: -5 / 1; grid-row: 1 / 2;" data-offset-x="0" data-offset-y="15" data-expected-width="15" data-expected-height="50"> + </div> + <div class="absolute" style="grid-column: 3 / 5; grid-row: 3 / 5;" data-offset-x="315" data-offset-y="215" data-expected-width="215" data-expected-height="115"> + </div> + <div class="absolute" style="grid-column: 2 / 3; grid-row: 3 / 5;" data-offset-x="115" data-offset-y="215" data-expected-width="200" data-expected-height="115"> + </div> + <div class="absolute" style="grid-column: 3 / 5; grid-row: 2 / 3;" data-offset-x="315" data-offset-y="65" data-expected-width="215" data-expected-height="150"> + </div> +</div> +width expected 15 but got 530 +FAIL .grid 3 assert_equals: +<div class="grid"> + <div class="absolute" style="grid-column: span 2 / 1; grid-row: span 2 / 1;" data-offset-x="0" data-offset-y="0" data-expected-width="15" data-expected-height="15"> + </div> + <div class="absolute" style="grid-column: 1 / 2; grid-row: span 2 / 1;" data-offset-x="15" data-offset-y="0" data-expected-width="100" data-expected-height="15"> + </div> + <div class="absolute" style="grid-column: span 2 / 1; grid-row: 1 / 2;" data-offset-x="0" data-offset-y="15" data-expected-width="15" data-expected-height="50"> + </div> + <div class="absolute" style="grid-column: 3 / span 2; grid-row: 3 / span 2;" data-offset-x="315" data-offset-y="215" data-expected-width="215" data-expected-height="115"> + </div> + <div class="absolute" style="grid-column: 2 / 3; grid-row: 3 / span 2;" data-offset-x="115" data-offset-y="215" data-expected-width="200" data-expected-height="115"> + </div> + <div class="absolute" style="grid-column: 3 / span 2; grid-row: 2 / 3;" data-offset-x="315" data-offset-y="65" data-expected-width="215" data-expected-height="150"> + </div> +</div> +width expected 15 but got 530 +FAIL .grid 4 assert_equals: +<div class="grid"> + <div class="absolute" style="grid-column: foo / 1; grid-row: foo / 1;" data-offset-x="15" data-offset-y="15" data-expected-width="515" data-expected-height="315"> + </div> + <div class="absolute" style="grid-column: 1 / 2; grid-row: foo / 1;" data-offset-x="15" data-offset-y="15" data-expected-width="100" data-expected-height="315"> + </div> + <div class="absolute" style="grid-column: foo / 1; grid-row: 1 / 2;" data-offset-x="15" data-offset-y="15" data-expected-width="515" data-expected-height="50"> + </div> + <div class="absolute" style="grid-column: 3 / foo; grid-row: 3 / foo;" data-offset-x="315" data-offset-y="215" data-expected-width="215" data-expected-height="115"> + </div> + <div class="absolute" style="grid-column: 2 / 3; grid-row: 3 / foo;" data-offset-x="115" data-offset-y="215" data-expected-width="200" data-expected-height="115"> + </div> + <div class="absolute" style="grid-column: 3 / foo; grid-row: 2 / 3;" data-offset-x="315" data-offset-y="65" data-expected-width="215" data-expected-height="150"> + </div> +</div> +width expected 215 but got 530 +FAIL .grid 5 assert_equals: +<div class="grid directionRTL"> + <div class="absolute" style="grid-column: auto / 1; grid-row: auto / 1;" data-offset-x="515" data-offset-y="0" data-expected-width="15" data-expected-height="15"> + </div> + <div class="absolute" style="grid-column: 1 / 2; grid-row: auto / 1;" data-offset-x="415" data-offset-y="0" data-expected-width="100" data-expected-height="15"> + </div> + <div class="absolute" style="grid-column: auto / 1; grid-row: 1 / 2;" data-offset-x="515" data-offset-y="15" data-expected-width="15" data-expected-height="50"> + </div> + <div class="absolute" style="grid-column: 3 / auto; grid-row: 3 / auto;" data-offset-x="0" data-offset-y="215" data-expected-width="215" data-expected-height="115"> + </div> + <div class="absolute" style="grid-column: 2 / 3; grid-row: 3 / auto;" data-offset-x="215" data-offset-y="215" data-expected-width="200" data-expected-height="115"> + </div> + <div class="absolute" style="grid-column: 3 / auto; grid-row: 2 / 3;" data-offset-x="0" data-offset-y="65" data-expected-width="215" data-expected-height="150"> + </div> +</div> +width expected 15 but got 530 +FAIL .grid 6 assert_equals: +<div class="grid directionRTL"> + <div class="absolute" style="grid-column: -5 / 1; grid-row: -5 / 1;" data-offset-x="515" data-offset-y="0" data-expected-width="15" data-expected-height="15"> + </div> + <div class="absolute" style="grid-column: 1 / 2; grid-row: -5 / 1;" data-offset-x="415" data-offset-y="0" data-expected-width="100" data-expected-height="15"> + </div> + <div class="absolute" style="grid-column: -5 / 1; grid-row: 1 / 2;" data-offset-x="515" data-offset-y="15" data-expected-width="15" data-expected-height="50"> + </div> + <div class="absolute" style="grid-column: 3 / 5; grid-row: 3 / 5;" data-offset-x="0" data-offset-y="215" data-expected-width="215" data-expected-height="115"> + </div> + <div class="absolute" style="grid-column: 2 / 3; grid-row: 3 / 5;" data-offset-x="215" data-offset-y="215" data-expected-width="200" data-expected-height="115"> + </div> + <div class="absolute" style="grid-column: 3 / 5; grid-row: 2 / 3;" data-offset-x="0" data-offset-y="65" data-expected-width="215" data-expected-height="150"> + </div> +</div> +width expected 15 but got 530 +FAIL .grid 7 assert_equals: +<div class="grid directionRTL"> + <div class="absolute" style="grid-column: span 2 / 1; grid-row: span 2 / 1;" data-offset-x="515" data-offset-y="0" data-expected-width="15" data-expected-height="15"> + </div> + <div class="absolute" style="grid-column: 1 / 2; grid-row: span 2 / 1;" data-offset-x="415" data-offset-y="0" data-expected-width="100" data-expected-height="15"> + </div> + <div class="absolute" style="grid-column: span 2 / 1; grid-row: 1 / 2;" data-offset-x="515" data-offset-y="15" data-expected-width="15" data-expected-height="50"> + </div> + <div class="absolute" style="grid-column: 3 / span 2; grid-row: 3 / span 2;" data-offset-x="0" data-offset-y="215" data-expected-width="215" data-expected-height="115"> + </div> + <div class="absolute" style="grid-column: 2 / 3; grid-row: 3 / span 2;" data-offset-x="215" data-offset-y="215" data-expected-width="200" data-expected-height="115"> + </div> + <div class="absolute" style="grid-column: 3 / span 2; grid-row: 2 / 3;" data-offset-x="0" data-offset-y="65" data-expected-width="215" data-expected-height="150"> + </div> +</div> +width expected 15 but got 530 +FAIL .grid 8 assert_equals: +<div class="grid directionRTL"> + <div class="absolute" style="grid-column: foo / 1; grid-row: foo / 1;" data-offset-x="0" data-offset-y="15" data-expected-width="515" data-expected-height="315"> + </div> + <div class="absolute" style="grid-column: 1 / 2; grid-row: foo / 1;" data-offset-x="415" data-offset-y="15" data-expected-width="100" data-expected-height="315"> + </div> + <div class="absolute" style="grid-column: foo / 1; grid-row: 1 / 2;" data-offset-x="0" data-offset-y="15" data-expected-width="515" data-expected-height="50"> + </div> + <div class="absolute" style="grid-column: 3 / foo; grid-row: 3 / foo;" data-offset-x="0" data-offset-y="215" data-expected-width="215" data-expected-height="115"> + </div> + <div class="absolute" style="grid-column: 2 / 3; grid-row: 3 / foo;" data-offset-x="215" data-offset-y="215" data-expected-width="200" data-expected-height="115"> + </div> + <div class="absolute" style="grid-column: 3 / foo; grid-row: 2 / 3;" data-offset-x="0" data-offset-y="65" data-expected-width="215" data-expected-height="150"> + </div> +</div> +width expected 215 but got 530 +FAIL .grid 9 assert_equals: +<div class="grid autoFit gap"> + <div class="absolute" style="grid-column: auto / 1; grid-row: auto / 1;" data-offset-x="0" data-offset-y="0" data-expected-width="15" data-expected-height="15"> + </div> + <div class="absolute" style="grid-column: -1 / auto; grid-row: -1 / auto;" data-offset-x="15" data-offset-y="15" data-expected-width="515" data-expected-height="315"> + </div> +</div> +width expected 15 but got 530 +FAIL .grid 10 assert_equals: +<div class="grid autoFit gap"> + <div class="absolute" style="grid-column: auto / 2; grid-row: auto / 2;" data-offset-x="0" data-offset-y="0" data-expected-width="15" data-expected-height="15"> + </div> + <div class="absolute" style="grid-column: -2 / auto; grid-row: -2 / auto;" data-offset-x="15" data-offset-y="15" data-expected-width="515" data-expected-height="315"> + </div> +</div> +width expected 15 but got 45 +FAIL .grid 11 assert_equals: +<div class="grid autoFit directionRTL gap"> + <div class="absolute" style="grid-column: auto / 1; grid-row: auto / 1;" data-offset-x="515" data-offset-y="0" data-expected-width="15" data-expected-height="15"> + </div> + <div class="absolute" style="grid-column: -1 / auto; grid-row: -1 / auto;" data-offset-x="0" data-offset-y="15" data-expected-width="515" data-expected-height="315"> + </div> +</div> +width expected 15 but got 530 +FAIL .grid 12 assert_equals: +<div class="grid autoFit directionRTL gap"> + <div class="absolute" style="grid-column: auto / 2; grid-row: auto / 2;" data-offset-x="515" data-offset-y="0" data-expected-width="15" data-expected-height="15"> + </div> + <div class="absolute" style="grid-column: -2 / auto; grid-row: -2 / auto;" data-offset-x="0" data-offset-y="15" data-expected-width="515" data-expected-height="315"> + </div> +</div> +width expected 15 but got 45 +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/virtual/layout_ng_block_frag/external/wpt/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/legend-display-expected.txt b/third_party/blink/web_tests/virtual/layout_ng_block_frag/external/wpt/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/legend-display-expected.txt new file mode 100644 index 0000000..69bb94f --- /dev/null +++ b/third_party/blink/web_tests/virtual/layout_ng_block_frag/external/wpt/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/legend-display-expected.txt
@@ -0,0 +1,112 @@ +This is a testharness.js-based test. +Found 108 tests; 28 PASS, 80 FAIL, 0 TIMEOUT, 0 NOTRUN. +PASS rendered legend with display: block +PASS rendered legend with display: table +FAIL rendered legend with display: table-row-group assert_equals: display: table-row-group is not supported expected "table-row-group" but got "block" +FAIL rendered legend with display: table-header-group assert_equals: display: table-header-group is not supported expected "table-header-group" but got "block" +FAIL rendered legend with display: table-footer-group assert_equals: display: table-footer-group is not supported expected "table-footer-group" but got "block" +FAIL rendered legend with display: table-row assert_equals: display: table-row is not supported expected "table-row" but got "block" +FAIL rendered legend with display: table-cell assert_equals: display: table-cell is not supported expected "table-cell" but got "block" +FAIL rendered legend with display: table-column-group assert_equals: display: table-column-group is not supported expected "table-column-group" but got "block" +FAIL rendered legend with display: table-column assert_equals: display: table-column is not supported expected "table-column" but got "block" +FAIL rendered legend with display: table-caption assert_equals: display: table-caption is not supported expected "table-caption" but got "block" +PASS rendered legend with display: list-item +PASS rendered legend with display: flow +PASS rendered legend with display: flow-root +FAIL rendered legend with display: run-in assert_equals: display: run-in is not supported expected "run-in" but got "block" +FAIL rendered legend with display: inline assert_equals: display: inline is not supported expected "inline" but got "block" +FAIL rendered legend with display: inline-block assert_equals: display: inline-block is not supported expected "inline-block" but got "block" +FAIL rendered legend with display: inline-table assert_equals: display: inline-table is not supported expected "inline-table" but got "table" +FAIL rendered legend with display: block ruby assert_equals: display: block ruby is not supported expected "block ruby" but got "block" +FAIL rendered legend with display: ruby assert_equals: display: ruby is not supported expected "ruby" but got "block" +FAIL rendered legend with display: ruby-base assert_equals: display: ruby-base is not supported expected "ruby-base" but got "block" +FAIL rendered legend with display: ruby-text assert_equals: display: ruby-text is not supported expected "ruby-text" but got "block" +FAIL rendered legend with display: ruby-base-container assert_equals: display: ruby-base-container is not supported expected "ruby-base-container" but got "block" +FAIL rendered legend with display: ruby-text-container assert_equals: display: ruby-text-container is not supported expected "ruby-text-container" but got "block" +PASS rendered legend with display: grid +FAIL rendered legend with display: inline-grid assert_equals: display: inline-grid is not supported expected "inline-grid" but got "grid" +PASS rendered legend with display: flex +FAIL rendered legend with display: inline-flex assert_equals: display: inline-flex is not supported expected "inline-flex" but got "flex" +PASS rendered legend with display: block; overflow:hidden +PASS rendered legend with display: table; overflow:hidden +FAIL rendered legend with display: table-row-group; overflow:hidden assert_equals: display: table-row-group is not supported expected "table-row-group" but got "block" +FAIL rendered legend with display: table-header-group; overflow:hidden assert_equals: display: table-header-group is not supported expected "table-header-group" but got "block" +FAIL rendered legend with display: table-footer-group; overflow:hidden assert_equals: display: table-footer-group is not supported expected "table-footer-group" but got "block" +FAIL rendered legend with display: table-row; overflow:hidden assert_equals: display: table-row is not supported expected "table-row" but got "block" +FAIL rendered legend with display: table-cell; overflow:hidden assert_equals: display: table-cell is not supported expected "table-cell" but got "block" +FAIL rendered legend with display: table-column-group; overflow:hidden assert_equals: display: table-column-group is not supported expected "table-column-group" but got "block" +FAIL rendered legend with display: table-column; overflow:hidden assert_equals: display: table-column is not supported expected "table-column" but got "block" +FAIL rendered legend with display: table-caption; overflow:hidden assert_equals: display: table-caption is not supported expected "table-caption" but got "block" +PASS rendered legend with display: list-item; overflow:hidden +PASS rendered legend with display: flow; overflow:hidden +PASS rendered legend with display: flow-root; overflow:hidden +FAIL rendered legend with display: run-in; overflow:hidden assert_equals: display: run-in is not supported expected "run-in" but got "block" +FAIL rendered legend with display: inline; overflow:hidden assert_equals: display: inline is not supported expected "inline" but got "block" +FAIL rendered legend with display: inline-block; overflow:hidden assert_equals: display: inline-block is not supported expected "inline-block" but got "block" +FAIL rendered legend with display: inline-table; overflow:hidden assert_equals: display: inline-table is not supported expected "inline-table" but got "table" +FAIL rendered legend with display: block ruby; overflow:hidden assert_equals: display: block ruby is not supported expected "block ruby" but got "block" +FAIL rendered legend with display: ruby; overflow:hidden assert_equals: display: ruby is not supported expected "ruby" but got "block" +FAIL rendered legend with display: ruby-base; overflow:hidden assert_equals: display: ruby-base is not supported expected "ruby-base" but got "block" +FAIL rendered legend with display: ruby-text; overflow:hidden assert_equals: display: ruby-text is not supported expected "ruby-text" but got "block" +FAIL rendered legend with display: ruby-base-container; overflow:hidden assert_equals: display: ruby-base-container is not supported expected "ruby-base-container" but got "block" +FAIL rendered legend with display: ruby-text-container; overflow:hidden assert_equals: display: ruby-text-container is not supported expected "ruby-text-container" but got "block" +PASS rendered legend with display: grid; overflow:hidden +FAIL rendered legend with display: inline-grid; overflow:hidden assert_equals: display: inline-grid is not supported expected "inline-grid" but got "grid" +PASS rendered legend with display: flex; overflow:hidden +FAIL rendered legend with display: inline-flex; overflow:hidden assert_equals: display: inline-flex is not supported expected "inline-flex" but got "flex" +PASS rendered legend with display: block; columns:1 +PASS rendered legend with display: table; columns:1 +FAIL rendered legend with display: table-row-group; columns:1 assert_equals: display: table-row-group is not supported expected "table-row-group" but got "block" +FAIL rendered legend with display: table-header-group; columns:1 assert_equals: display: table-header-group is not supported expected "table-header-group" but got "block" +FAIL rendered legend with display: table-footer-group; columns:1 assert_equals: display: table-footer-group is not supported expected "table-footer-group" but got "block" +FAIL rendered legend with display: table-row; columns:1 assert_equals: display: table-row is not supported expected "table-row" but got "block" +FAIL rendered legend with display: table-cell; columns:1 assert_equals: display: table-cell is not supported expected "table-cell" but got "block" +FAIL rendered legend with display: table-column-group; columns:1 assert_equals: display: table-column-group is not supported expected "table-column-group" but got "block" +FAIL rendered legend with display: table-column; columns:1 assert_equals: display: table-column is not supported expected "table-column" but got "block" +FAIL rendered legend with display: table-caption; columns:1 assert_equals: display: table-caption is not supported expected "table-caption" but got "block" +PASS rendered legend with display: list-item; columns:1 +PASS rendered legend with display: flow; columns:1 +PASS rendered legend with display: flow-root; columns:1 +FAIL rendered legend with display: run-in; columns:1 assert_equals: display: run-in is not supported expected "run-in" but got "block" +FAIL rendered legend with display: inline; columns:1 assert_equals: display: inline is not supported expected "inline" but got "block" +FAIL rendered legend with display: inline-block; columns:1 assert_equals: display: inline-block is not supported expected "inline-block" but got "block" +FAIL rendered legend with display: inline-table; columns:1 assert_equals: display: inline-table is not supported expected "inline-table" but got "table" +FAIL rendered legend with display: block ruby; columns:1 assert_equals: display: block ruby is not supported expected "block ruby" but got "block" +FAIL rendered legend with display: ruby; columns:1 assert_equals: display: ruby is not supported expected "ruby" but got "block" +FAIL rendered legend with display: ruby-base; columns:1 assert_equals: display: ruby-base is not supported expected "ruby-base" but got "block" +FAIL rendered legend with display: ruby-text; columns:1 assert_equals: display: ruby-text is not supported expected "ruby-text" but got "block" +FAIL rendered legend with display: ruby-base-container; columns:1 assert_equals: display: ruby-base-container is not supported expected "ruby-base-container" but got "block" +FAIL rendered legend with display: ruby-text-container; columns:1 assert_equals: display: ruby-text-container is not supported expected "ruby-text-container" but got "block" +PASS rendered legend with display: grid; columns:1 +FAIL rendered legend with display: inline-grid; columns:1 assert_equals: display: inline-grid is not supported expected "inline-grid" but got "grid" +PASS rendered legend with display: flex; columns:1 +FAIL rendered legend with display: inline-flex; columns:1 assert_equals: display: inline-flex is not supported expected "inline-flex" but got "flex" +PASS rendered legend with display: block; overflow:hidden;columns:1 +PASS rendered legend with display: table; overflow:hidden;columns:1 +FAIL rendered legend with display: table-row-group; overflow:hidden;columns:1 assert_equals: display: table-row-group is not supported expected "table-row-group" but got "block" +FAIL rendered legend with display: table-header-group; overflow:hidden;columns:1 assert_equals: display: table-header-group is not supported expected "table-header-group" but got "block" +FAIL rendered legend with display: table-footer-group; overflow:hidden;columns:1 assert_equals: display: table-footer-group is not supported expected "table-footer-group" but got "block" +FAIL rendered legend with display: table-row; overflow:hidden;columns:1 assert_equals: display: table-row is not supported expected "table-row" but got "block" +FAIL rendered legend with display: table-cell; overflow:hidden;columns:1 assert_equals: display: table-cell is not supported expected "table-cell" but got "block" +FAIL rendered legend with display: table-column-group; overflow:hidden;columns:1 assert_equals: display: table-column-group is not supported expected "table-column-group" but got "block" +FAIL rendered legend with display: table-column; overflow:hidden;columns:1 assert_equals: display: table-column is not supported expected "table-column" but got "block" +FAIL rendered legend with display: table-caption; overflow:hidden;columns:1 assert_equals: display: table-caption is not supported expected "table-caption" but got "block" +PASS rendered legend with display: list-item; overflow:hidden;columns:1 +PASS rendered legend with display: flow; overflow:hidden;columns:1 +PASS rendered legend with display: flow-root; overflow:hidden;columns:1 +FAIL rendered legend with display: run-in; overflow:hidden;columns:1 assert_equals: display: run-in is not supported expected "run-in" but got "block" +FAIL rendered legend with display: inline; overflow:hidden;columns:1 assert_equals: display: inline is not supported expected "inline" but got "block" +FAIL rendered legend with display: inline-block; overflow:hidden;columns:1 assert_equals: display: inline-block is not supported expected "inline-block" but got "block" +FAIL rendered legend with display: inline-table; overflow:hidden;columns:1 assert_equals: display: inline-table is not supported expected "inline-table" but got "table" +FAIL rendered legend with display: block ruby; overflow:hidden;columns:1 assert_equals: display: block ruby is not supported expected "block ruby" but got "block" +FAIL rendered legend with display: ruby; overflow:hidden;columns:1 assert_equals: display: ruby is not supported expected "ruby" but got "block" +FAIL rendered legend with display: ruby-base; overflow:hidden;columns:1 assert_equals: display: ruby-base is not supported expected "ruby-base" but got "block" +FAIL rendered legend with display: ruby-text; overflow:hidden;columns:1 assert_equals: display: ruby-text is not supported expected "ruby-text" but got "block" +FAIL rendered legend with display: ruby-base-container; overflow:hidden;columns:1 assert_equals: display: ruby-base-container is not supported expected "ruby-base-container" but got "block" +FAIL rendered legend with display: ruby-text-container; overflow:hidden;columns:1 assert_equals: display: ruby-text-container is not supported expected "ruby-text-container" but got "block" +PASS rendered legend with display: grid; overflow:hidden;columns:1 +FAIL rendered legend with display: inline-grid; overflow:hidden;columns:1 assert_equals: display: inline-grid is not supported expected "inline-grid" but got "grid" +PASS rendered legend with display: flex; overflow:hidden;columns:1 +FAIL rendered legend with display: inline-flex; overflow:hidden;columns:1 assert_equals: display: inline-flex is not supported expected "inline-flex" but got "flex" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/virtual/link-disabled-old-behavior/external/wpt/css/cssom/idlharness-expected.txt b/third_party/blink/web_tests/virtual/link-disabled-old-behavior/external/wpt/css/cssom/idlharness-expected.txt new file mode 100644 index 0000000..ecd26b9 --- /dev/null +++ b/third_party/blink/web_tests/virtual/link-disabled-old-behavior/external/wpt/css/cssom/idlharness-expected.txt
@@ -0,0 +1,443 @@ +This is a testharness.js-based test. +Found 437 tests; 382 PASS, 55 FAIL, 0 TIMEOUT, 0 NOTRUN. +PASS idl_test setup +PASS idl_test validation +PASS Partial interface CSSStyleSheet: original interface defined +PASS Partial interface CSSStyleSheet: member names are unique +PASS Partial interface mixin DocumentOrShadowRoot: original interface mixin defined +PASS Partial interface mixin DocumentOrShadowRoot: member names are unique +PASS Partial interface Window: original interface defined +PASS Partial interface Window: member names are unique +PASS Partial interface mixin DocumentOrShadowRoot[2]: member names are unique +PASS Partial interface HTMLLinkElement: member names are unique +PASS Partial interface HTMLStyleElement: member names are unique +PASS Partial interface Window[2]: member names are unique +PASS ProcessingInstruction includes LinkStyle: member names are unique +PASS HTMLElement includes ElementCSSInlineStyle: member names are unique +PASS HTMLElement includes GlobalEventHandlers: member names are unique +PASS HTMLElement includes DocumentAndElementEventHandlers: member names are unique +PASS HTMLElement includes ElementContentEditable: member names are unique +PASS HTMLElement includes HTMLOrSVGElement: member names are unique +PASS SVGElement includes ElementCSSInlineStyle: member names are unique +PASS SVGElement includes GlobalEventHandlers: member names are unique +PASS SVGElement includes DocumentAndElementEventHandlers: member names are unique +PASS SVGElement includes SVGElementInstance: member names are unique +PASS SVGElement includes HTMLOrSVGElement: member names are unique +PASS SVGStyleElement includes LinkStyle: member names are unique +PASS HTMLLinkElement includes LinkStyle: member names are unique +PASS HTMLStyleElement includes LinkStyle: member names are unique +PASS Window includes GlobalEventHandlers: member names are unique +PASS Window includes WindowEventHandlers: member names are unique +PASS Window includes WindowOrWorkerGlobalScope: member names are unique +PASS Window includes AnimationFrameProvider: member names are unique +PASS Window includes WindowSessionStorage: member names are unique +PASS Window includes WindowLocalStorage: member names are unique +PASS Document includes NonElementParentNode: member names are unique +PASS Document includes DocumentOrShadowRoot: member names are unique +PASS Document includes ParentNode: member names are unique +PASS Document includes XPathEvaluatorBase: member names are unique +PASS DocumentFragment includes NonElementParentNode: member names are unique +PASS DocumentFragment includes ParentNode: member names are unique +PASS ShadowRoot includes DocumentOrShadowRoot: member names are unique +PASS Element includes ParentNode: member names are unique +PASS Element includes NonDocumentTypeChildNode: member names are unique +PASS Element includes ChildNode: member names are unique +PASS Element includes Slottable: member names are unique +PASS CharacterData includes NonDocumentTypeChildNode: member names are unique +PASS CharacterData includes ChildNode: member names are unique +PASS MediaList interface: existence and properties of interface object +PASS MediaList interface object length +PASS MediaList interface object name +PASS MediaList interface: existence and properties of interface prototype object +PASS MediaList interface: existence and properties of interface prototype object's "constructor" property +PASS MediaList interface: existence and properties of interface prototype object's @@unscopables property +PASS MediaList interface: attribute mediaText +PASS MediaList interface: stringifier +PASS MediaList interface: attribute length +PASS MediaList interface: operation item(unsigned long) +PASS MediaList interface: operation appendMedium(CSSOMString) +PASS MediaList interface: operation deleteMedium(CSSOMString) +PASS MediaList must be primary interface of sheet.media +PASS Stringification of sheet.media +PASS MediaList interface: sheet.media must inherit property "mediaText" with the proper type +PASS MediaList interface: sheet.media must inherit property "length" with the proper type +PASS MediaList interface: sheet.media must inherit property "item(unsigned long)" with the proper type +PASS MediaList interface: calling item(unsigned long) on sheet.media with too few arguments must throw TypeError +PASS MediaList interface: sheet.media must inherit property "appendMedium(CSSOMString)" with the proper type +PASS MediaList interface: calling appendMedium(CSSOMString) on sheet.media with too few arguments must throw TypeError +PASS MediaList interface: sheet.media must inherit property "deleteMedium(CSSOMString)" with the proper type +PASS MediaList interface: calling deleteMedium(CSSOMString) on sheet.media with too few arguments must throw TypeError +PASS StyleSheet interface: existence and properties of interface object +PASS StyleSheet interface object length +PASS StyleSheet interface object name +PASS StyleSheet interface: existence and properties of interface prototype object +PASS StyleSheet interface: existence and properties of interface prototype object's "constructor" property +PASS StyleSheet interface: existence and properties of interface prototype object's @@unscopables property +PASS StyleSheet interface: attribute type +PASS StyleSheet interface: attribute href +PASS StyleSheet interface: attribute ownerNode +PASS StyleSheet interface: attribute parentStyleSheet +PASS StyleSheet interface: attribute title +PASS StyleSheet interface: attribute media +PASS StyleSheet interface: attribute disabled +FAIL CSSStyleSheet interface: existence and properties of interface object assert_throws_js: interface object didn't throw TypeError when called as a constructor function "function() { + new interface_object(); + }" did not throw +PASS CSSStyleSheet interface object length +PASS CSSStyleSheet interface object name +PASS CSSStyleSheet interface: existence and properties of interface prototype object +PASS CSSStyleSheet interface: existence and properties of interface prototype object's "constructor" property +PASS CSSStyleSheet interface: existence and properties of interface prototype object's @@unscopables property +PASS CSSStyleSheet interface: attribute ownerRule +PASS CSSStyleSheet interface: attribute cssRules +PASS CSSStyleSheet interface: operation insertRule(CSSOMString, optional unsigned long) +PASS CSSStyleSheet interface: operation deleteRule(unsigned long) +PASS CSSStyleSheet interface: attribute rules +PASS CSSStyleSheet interface: operation addRule(optional DOMString, optional DOMString, optional unsigned long) +PASS CSSStyleSheet interface: operation removeRule(optional unsigned long) +PASS CSSStyleSheet must be primary interface of sheet +PASS Stringification of sheet +PASS CSSStyleSheet interface: sheet must inherit property "ownerRule" with the proper type +PASS CSSStyleSheet interface: sheet must inherit property "cssRules" with the proper type +PASS CSSStyleSheet interface: sheet must inherit property "insertRule(CSSOMString, optional unsigned long)" with the proper type +PASS CSSStyleSheet interface: calling insertRule(CSSOMString, optional unsigned long) on sheet with too few arguments must throw TypeError +PASS CSSStyleSheet interface: sheet must inherit property "deleteRule(unsigned long)" with the proper type +PASS CSSStyleSheet interface: calling deleteRule(unsigned long) on sheet with too few arguments must throw TypeError +PASS CSSStyleSheet interface: sheet must inherit property "rules" with the proper type +PASS CSSStyleSheet interface: sheet must inherit property "addRule(optional DOMString, optional DOMString, optional unsigned long)" with the proper type +PASS CSSStyleSheet interface: calling addRule(optional DOMString, optional DOMString, optional unsigned long) on sheet with too few arguments must throw TypeError +PASS CSSStyleSheet interface: sheet must inherit property "removeRule(optional unsigned long)" with the proper type +PASS CSSStyleSheet interface: calling removeRule(optional unsigned long) on sheet with too few arguments must throw TypeError +PASS StyleSheet interface: sheet must inherit property "type" with the proper type +PASS StyleSheet interface: sheet must inherit property "href" with the proper type +PASS StyleSheet interface: sheet must inherit property "ownerNode" with the proper type +PASS StyleSheet interface: sheet must inherit property "parentStyleSheet" with the proper type +PASS StyleSheet interface: sheet must inherit property "title" with the proper type +PASS StyleSheet interface: sheet must inherit property "media" with the proper type +PASS StyleSheet interface: sheet must inherit property "disabled" with the proper type +PASS StyleSheetList interface: existence and properties of interface object +PASS StyleSheetList interface object length +PASS StyleSheetList interface object name +PASS StyleSheetList interface: existence and properties of interface prototype object +PASS StyleSheetList interface: existence and properties of interface prototype object's "constructor" property +PASS StyleSheetList interface: existence and properties of interface prototype object's @@unscopables property +PASS StyleSheetList interface: operation item(unsigned long) +PASS StyleSheetList interface: attribute length +PASS StyleSheetList must be primary interface of document.styleSheets +PASS Stringification of document.styleSheets +PASS StyleSheetList interface: document.styleSheets must inherit property "item(unsigned long)" with the proper type +PASS StyleSheetList interface: calling item(unsigned long) on document.styleSheets with too few arguments must throw TypeError +PASS StyleSheetList interface: document.styleSheets must inherit property "length" with the proper type +PASS CSSRuleList interface: existence and properties of interface object +PASS CSSRuleList interface object length +PASS CSSRuleList interface object name +PASS CSSRuleList interface: existence and properties of interface prototype object +PASS CSSRuleList interface: existence and properties of interface prototype object's "constructor" property +PASS CSSRuleList interface: existence and properties of interface prototype object's @@unscopables property +PASS CSSRuleList interface: operation item(unsigned long) +PASS CSSRuleList interface: attribute length +PASS CSSRuleList must be primary interface of sheet.cssRules +PASS Stringification of sheet.cssRules +PASS CSSRuleList interface: sheet.cssRules must inherit property "item(unsigned long)" with the proper type +PASS CSSRuleList interface: calling item(unsigned long) on sheet.cssRules with too few arguments must throw TypeError +PASS CSSRuleList interface: sheet.cssRules must inherit property "length" with the proper type +PASS CSSRule interface: existence and properties of interface object +PASS CSSRule interface object length +PASS CSSRule interface object name +PASS CSSRule interface: existence and properties of interface prototype object +PASS CSSRule interface: existence and properties of interface prototype object's "constructor" property +PASS CSSRule interface: existence and properties of interface prototype object's @@unscopables property +PASS CSSRule interface: attribute cssText +PASS CSSRule interface: attribute parentRule +PASS CSSRule interface: attribute parentStyleSheet +PASS CSSRule interface: attribute type +PASS CSSRule interface: constant STYLE_RULE on interface object +PASS CSSRule interface: constant STYLE_RULE on interface prototype object +PASS CSSRule interface: constant CHARSET_RULE on interface object +PASS CSSRule interface: constant CHARSET_RULE on interface prototype object +PASS CSSRule interface: constant IMPORT_RULE on interface object +PASS CSSRule interface: constant IMPORT_RULE on interface prototype object +PASS CSSRule interface: constant MEDIA_RULE on interface object +PASS CSSRule interface: constant MEDIA_RULE on interface prototype object +PASS CSSRule interface: constant FONT_FACE_RULE on interface object +PASS CSSRule interface: constant FONT_FACE_RULE on interface prototype object +PASS CSSRule interface: constant PAGE_RULE on interface object +PASS CSSRule interface: constant PAGE_RULE on interface prototype object +FAIL CSSRule interface: constant MARGIN_RULE on interface object assert_own_property: expected property "MARGIN_RULE" missing +FAIL CSSRule interface: constant MARGIN_RULE on interface prototype object assert_own_property: expected property "MARGIN_RULE" missing +PASS CSSRule interface: constant NAMESPACE_RULE on interface object +PASS CSSRule interface: constant NAMESPACE_RULE on interface prototype object +PASS CSSStyleRule interface: existence and properties of interface object +PASS CSSStyleRule interface object length +PASS CSSStyleRule interface object name +PASS CSSStyleRule interface: existence and properties of interface prototype object +PASS CSSStyleRule interface: existence and properties of interface prototype object's "constructor" property +PASS CSSStyleRule interface: existence and properties of interface prototype object's @@unscopables property +PASS CSSStyleRule interface: attribute selectorText +PASS CSSStyleRule interface: attribute style +PASS CSSStyleRule must be primary interface of sheet.cssRules[4] +PASS Stringification of sheet.cssRules[4] +PASS CSSStyleRule interface: sheet.cssRules[4] must inherit property "selectorText" with the proper type +PASS CSSStyleRule interface: sheet.cssRules[4] must inherit property "style" with the proper type +PASS CSSRule interface: sheet.cssRules[4] must inherit property "cssText" with the proper type +PASS CSSRule interface: sheet.cssRules[4] must inherit property "parentRule" with the proper type +PASS CSSRule interface: sheet.cssRules[4] must inherit property "parentStyleSheet" with the proper type +PASS CSSRule interface: sheet.cssRules[4] must inherit property "type" with the proper type +PASS CSSRule interface: sheet.cssRules[4] must inherit property "STYLE_RULE" with the proper type +PASS CSSRule interface: sheet.cssRules[4] must inherit property "CHARSET_RULE" with the proper type +PASS CSSRule interface: sheet.cssRules[4] must inherit property "IMPORT_RULE" with the proper type +PASS CSSRule interface: sheet.cssRules[4] must inherit property "MEDIA_RULE" with the proper type +PASS CSSRule interface: sheet.cssRules[4] must inherit property "FONT_FACE_RULE" with the proper type +PASS CSSRule interface: sheet.cssRules[4] must inherit property "PAGE_RULE" with the proper type +FAIL CSSRule interface: sheet.cssRules[4] must inherit property "MARGIN_RULE" with the proper type assert_inherits: property "MARGIN_RULE" not found in prototype chain +PASS CSSRule interface: sheet.cssRules[4] must inherit property "NAMESPACE_RULE" with the proper type +PASS CSSImportRule interface: existence and properties of interface object +PASS CSSImportRule interface object length +PASS CSSImportRule interface object name +PASS CSSImportRule interface: existence and properties of interface prototype object +PASS CSSImportRule interface: existence and properties of interface prototype object's "constructor" property +PASS CSSImportRule interface: existence and properties of interface prototype object's @@unscopables property +PASS CSSImportRule interface: attribute href +PASS CSSImportRule interface: attribute media +PASS CSSImportRule interface: attribute styleSheet +PASS CSSImportRule must be primary interface of sheet.cssRules[0] +PASS Stringification of sheet.cssRules[0] +PASS CSSImportRule interface: sheet.cssRules[0] must inherit property "href" with the proper type +PASS CSSImportRule interface: sheet.cssRules[0] must inherit property "media" with the proper type +PASS CSSImportRule interface: sheet.cssRules[0] must inherit property "styleSheet" with the proper type +PASS CSSRule interface: sheet.cssRules[0] must inherit property "cssText" with the proper type +PASS CSSRule interface: sheet.cssRules[0] must inherit property "parentRule" with the proper type +PASS CSSRule interface: sheet.cssRules[0] must inherit property "parentStyleSheet" with the proper type +PASS CSSRule interface: sheet.cssRules[0] must inherit property "type" with the proper type +PASS CSSRule interface: sheet.cssRules[0] must inherit property "STYLE_RULE" with the proper type +PASS CSSRule interface: sheet.cssRules[0] must inherit property "CHARSET_RULE" with the proper type +PASS CSSRule interface: sheet.cssRules[0] must inherit property "IMPORT_RULE" with the proper type +PASS CSSRule interface: sheet.cssRules[0] must inherit property "MEDIA_RULE" with the proper type +PASS CSSRule interface: sheet.cssRules[0] must inherit property "FONT_FACE_RULE" with the proper type +PASS CSSRule interface: sheet.cssRules[0] must inherit property "PAGE_RULE" with the proper type +FAIL CSSRule interface: sheet.cssRules[0] must inherit property "MARGIN_RULE" with the proper type assert_inherits: property "MARGIN_RULE" not found in prototype chain +PASS CSSRule interface: sheet.cssRules[0] must inherit property "NAMESPACE_RULE" with the proper type +PASS CSSGroupingRule interface: existence and properties of interface object +PASS CSSGroupingRule interface object length +PASS CSSGroupingRule interface object name +PASS CSSGroupingRule interface: existence and properties of interface prototype object +PASS CSSGroupingRule interface: existence and properties of interface prototype object's "constructor" property +PASS CSSGroupingRule interface: existence and properties of interface prototype object's @@unscopables property +PASS CSSGroupingRule interface: attribute cssRules +FAIL CSSGroupingRule interface: operation insertRule(CSSOMString, optional unsigned long) assert_equals: property has wrong .length expected 1 but got 2 +PASS CSSGroupingRule interface: operation deleteRule(unsigned long) +FAIL CSSPageRule interface: existence and properties of interface object assert_equals: prototype of CSSPageRule is not CSSGroupingRule expected function "function CSSGroupingRule() { [native code] }" but got function "function CSSRule() { [native code] }" +PASS CSSPageRule interface object length +PASS CSSPageRule interface object name +FAIL CSSPageRule interface: existence and properties of interface prototype object assert_equals: prototype of CSSPageRule.prototype is not CSSGroupingRule.prototype expected object "[object CSSGroupingRule]" but got object "[object CSSRule]" +PASS CSSPageRule interface: existence and properties of interface prototype object's "constructor" property +PASS CSSPageRule interface: existence and properties of interface prototype object's @@unscopables property +PASS CSSPageRule interface: attribute selectorText +PASS CSSPageRule interface: attribute style +PASS CSSPageRule must be primary interface of sheet.cssRules[2] +PASS Stringification of sheet.cssRules[2] +PASS CSSPageRule interface: sheet.cssRules[2] must inherit property "selectorText" with the proper type +PASS CSSPageRule interface: sheet.cssRules[2] must inherit property "style" with the proper type +FAIL CSSGroupingRule interface: sheet.cssRules[2] must inherit property "cssRules" with the proper type assert_inherits: property "cssRules" not found in prototype chain +FAIL CSSGroupingRule interface: sheet.cssRules[2] must inherit property "insertRule(CSSOMString, optional unsigned long)" with the proper type assert_inherits: property "insertRule" not found in prototype chain +FAIL CSSGroupingRule interface: calling insertRule(CSSOMString, optional unsigned long) on sheet.cssRules[2] with too few arguments must throw TypeError assert_inherits: property "insertRule" not found in prototype chain +FAIL CSSGroupingRule interface: sheet.cssRules[2] must inherit property "deleteRule(unsigned long)" with the proper type assert_inherits: property "deleteRule" not found in prototype chain +FAIL CSSGroupingRule interface: calling deleteRule(unsigned long) on sheet.cssRules[2] with too few arguments must throw TypeError assert_inherits: property "deleteRule" not found in prototype chain +PASS CSSRule interface: sheet.cssRules[2] must inherit property "cssText" with the proper type +PASS CSSRule interface: sheet.cssRules[2] must inherit property "parentRule" with the proper type +PASS CSSRule interface: sheet.cssRules[2] must inherit property "parentStyleSheet" with the proper type +PASS CSSRule interface: sheet.cssRules[2] must inherit property "type" with the proper type +PASS CSSRule interface: sheet.cssRules[2] must inherit property "STYLE_RULE" with the proper type +PASS CSSRule interface: sheet.cssRules[2] must inherit property "CHARSET_RULE" with the proper type +PASS CSSRule interface: sheet.cssRules[2] must inherit property "IMPORT_RULE" with the proper type +PASS CSSRule interface: sheet.cssRules[2] must inherit property "MEDIA_RULE" with the proper type +PASS CSSRule interface: sheet.cssRules[2] must inherit property "FONT_FACE_RULE" with the proper type +PASS CSSRule interface: sheet.cssRules[2] must inherit property "PAGE_RULE" with the proper type +FAIL CSSRule interface: sheet.cssRules[2] must inherit property "MARGIN_RULE" with the proper type assert_inherits: property "MARGIN_RULE" not found in prototype chain +PASS CSSRule interface: sheet.cssRules[2] must inherit property "NAMESPACE_RULE" with the proper type +FAIL CSSMarginRule interface: existence and properties of interface object assert_own_property: self does not have own property "CSSMarginRule" expected property "CSSMarginRule" missing +FAIL CSSMarginRule interface object length assert_own_property: self does not have own property "CSSMarginRule" expected property "CSSMarginRule" missing +FAIL CSSMarginRule interface object name assert_own_property: self does not have own property "CSSMarginRule" expected property "CSSMarginRule" missing +FAIL CSSMarginRule interface: existence and properties of interface prototype object assert_own_property: self does not have own property "CSSMarginRule" expected property "CSSMarginRule" missing +FAIL CSSMarginRule interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "CSSMarginRule" expected property "CSSMarginRule" missing +FAIL CSSMarginRule interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "CSSMarginRule" expected property "CSSMarginRule" missing +FAIL CSSMarginRule interface: attribute name assert_own_property: self does not have own property "CSSMarginRule" expected property "CSSMarginRule" missing +FAIL CSSMarginRule interface: attribute style assert_own_property: self does not have own property "CSSMarginRule" expected property "CSSMarginRule" missing +FAIL CSSMarginRule must be primary interface of sheet.cssRules[2].cssRules[0] assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined" +FAIL Stringification of sheet.cssRules[2].cssRules[0] assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined" +FAIL CSSMarginRule interface: sheet.cssRules[2].cssRules[0] must inherit property "name" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined" +FAIL CSSMarginRule interface: sheet.cssRules[2].cssRules[0] must inherit property "style" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined" +FAIL CSSRule interface: sheet.cssRules[2].cssRules[0] must inherit property "cssText" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined" +FAIL CSSRule interface: sheet.cssRules[2].cssRules[0] must inherit property "parentRule" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined" +FAIL CSSRule interface: sheet.cssRules[2].cssRules[0] must inherit property "parentStyleSheet" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined" +FAIL CSSRule interface: sheet.cssRules[2].cssRules[0] must inherit property "type" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined" +FAIL CSSRule interface: sheet.cssRules[2].cssRules[0] must inherit property "STYLE_RULE" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined" +FAIL CSSRule interface: sheet.cssRules[2].cssRules[0] must inherit property "CHARSET_RULE" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined" +FAIL CSSRule interface: sheet.cssRules[2].cssRules[0] must inherit property "IMPORT_RULE" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined" +FAIL CSSRule interface: sheet.cssRules[2].cssRules[0] must inherit property "MEDIA_RULE" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined" +FAIL CSSRule interface: sheet.cssRules[2].cssRules[0] must inherit property "FONT_FACE_RULE" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined" +FAIL CSSRule interface: sheet.cssRules[2].cssRules[0] must inherit property "PAGE_RULE" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined" +FAIL CSSRule interface: sheet.cssRules[2].cssRules[0] must inherit property "MARGIN_RULE" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined" +FAIL CSSRule interface: sheet.cssRules[2].cssRules[0] must inherit property "NAMESPACE_RULE" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined" +PASS CSSNamespaceRule interface: existence and properties of interface object +PASS CSSNamespaceRule interface object length +PASS CSSNamespaceRule interface object name +PASS CSSNamespaceRule interface: existence and properties of interface prototype object +PASS CSSNamespaceRule interface: existence and properties of interface prototype object's "constructor" property +PASS CSSNamespaceRule interface: existence and properties of interface prototype object's @@unscopables property +PASS CSSNamespaceRule interface: attribute namespaceURI +PASS CSSNamespaceRule interface: attribute prefix +PASS CSSNamespaceRule must be primary interface of sheet.cssRules[1] +PASS Stringification of sheet.cssRules[1] +PASS CSSNamespaceRule interface: sheet.cssRules[1] must inherit property "namespaceURI" with the proper type +PASS CSSNamespaceRule interface: sheet.cssRules[1] must inherit property "prefix" with the proper type +PASS CSSRule interface: sheet.cssRules[1] must inherit property "cssText" with the proper type +PASS CSSRule interface: sheet.cssRules[1] must inherit property "parentRule" with the proper type +PASS CSSRule interface: sheet.cssRules[1] must inherit property "parentStyleSheet" with the proper type +PASS CSSRule interface: sheet.cssRules[1] must inherit property "type" with the proper type +PASS CSSRule interface: sheet.cssRules[1] must inherit property "STYLE_RULE" with the proper type +PASS CSSRule interface: sheet.cssRules[1] must inherit property "CHARSET_RULE" with the proper type +PASS CSSRule interface: sheet.cssRules[1] must inherit property "IMPORT_RULE" with the proper type +PASS CSSRule interface: sheet.cssRules[1] must inherit property "MEDIA_RULE" with the proper type +PASS CSSRule interface: sheet.cssRules[1] must inherit property "FONT_FACE_RULE" with the proper type +PASS CSSRule interface: sheet.cssRules[1] must inherit property "PAGE_RULE" with the proper type +FAIL CSSRule interface: sheet.cssRules[1] must inherit property "MARGIN_RULE" with the proper type assert_inherits: property "MARGIN_RULE" not found in prototype chain +PASS CSSRule interface: sheet.cssRules[1] must inherit property "NAMESPACE_RULE" with the proper type +PASS CSSStyleDeclaration interface: existence and properties of interface object +PASS CSSStyleDeclaration interface object length +PASS CSSStyleDeclaration interface object name +PASS CSSStyleDeclaration interface: existence and properties of interface prototype object +PASS CSSStyleDeclaration interface: existence and properties of interface prototype object's "constructor" property +PASS CSSStyleDeclaration interface: existence and properties of interface prototype object's @@unscopables property +PASS CSSStyleDeclaration interface: attribute cssText +PASS CSSStyleDeclaration interface: attribute length +PASS CSSStyleDeclaration interface: operation item(unsigned long) +PASS CSSStyleDeclaration interface: operation getPropertyValue(CSSOMString) +PASS CSSStyleDeclaration interface: operation getPropertyPriority(CSSOMString) +PASS CSSStyleDeclaration interface: operation setProperty(CSSOMString, CSSOMString, optional CSSOMString) +PASS CSSStyleDeclaration interface: operation removeProperty(CSSOMString) +PASS CSSStyleDeclaration interface: attribute parentRule +PASS CSSStyleDeclaration interface: attribute cssFloat +PASS CSSStyleDeclaration must be primary interface of sheet.cssRules[4].style +PASS Stringification of sheet.cssRules[4].style +PASS CSSStyleDeclaration interface: sheet.cssRules[4].style must inherit property "cssText" with the proper type +PASS CSSStyleDeclaration interface: sheet.cssRules[4].style must inherit property "length" with the proper type +PASS CSSStyleDeclaration interface: sheet.cssRules[4].style must inherit property "item(unsigned long)" with the proper type +PASS CSSStyleDeclaration interface: calling item(unsigned long) on sheet.cssRules[4].style with too few arguments must throw TypeError +PASS CSSStyleDeclaration interface: sheet.cssRules[4].style must inherit property "getPropertyValue(CSSOMString)" with the proper type +PASS CSSStyleDeclaration interface: calling getPropertyValue(CSSOMString) on sheet.cssRules[4].style with too few arguments must throw TypeError +PASS CSSStyleDeclaration interface: sheet.cssRules[4].style must inherit property "getPropertyPriority(CSSOMString)" with the proper type +PASS CSSStyleDeclaration interface: calling getPropertyPriority(CSSOMString) on sheet.cssRules[4].style with too few arguments must throw TypeError +PASS CSSStyleDeclaration interface: sheet.cssRules[4].style must inherit property "setProperty(CSSOMString, CSSOMString, optional CSSOMString)" with the proper type +PASS CSSStyleDeclaration interface: calling setProperty(CSSOMString, CSSOMString, optional CSSOMString) on sheet.cssRules[4].style with too few arguments must throw TypeError +PASS CSSStyleDeclaration interface: sheet.cssRules[4].style must inherit property "removeProperty(CSSOMString)" with the proper type +PASS CSSStyleDeclaration interface: calling removeProperty(CSSOMString) on sheet.cssRules[4].style with too few arguments must throw TypeError +PASS CSSStyleDeclaration interface: sheet.cssRules[4].style must inherit property "parentRule" with the proper type +PASS CSSStyleDeclaration interface: sheet.cssRules[4].style must inherit property "cssFloat" with the proper type +PASS CSSStyleDeclaration must be primary interface of sheet.cssRules[2].style +PASS Stringification of sheet.cssRules[2].style +PASS CSSStyleDeclaration interface: sheet.cssRules[2].style must inherit property "cssText" with the proper type +PASS CSSStyleDeclaration interface: sheet.cssRules[2].style must inherit property "length" with the proper type +PASS CSSStyleDeclaration interface: sheet.cssRules[2].style must inherit property "item(unsigned long)" with the proper type +PASS CSSStyleDeclaration interface: calling item(unsigned long) on sheet.cssRules[2].style with too few arguments must throw TypeError +PASS CSSStyleDeclaration interface: sheet.cssRules[2].style must inherit property "getPropertyValue(CSSOMString)" with the proper type +PASS CSSStyleDeclaration interface: calling getPropertyValue(CSSOMString) on sheet.cssRules[2].style with too few arguments must throw TypeError +PASS CSSStyleDeclaration interface: sheet.cssRules[2].style must inherit property "getPropertyPriority(CSSOMString)" with the proper type +PASS CSSStyleDeclaration interface: calling getPropertyPriority(CSSOMString) on sheet.cssRules[2].style with too few arguments must throw TypeError +PASS CSSStyleDeclaration interface: sheet.cssRules[2].style must inherit property "setProperty(CSSOMString, CSSOMString, optional CSSOMString)" with the proper type +PASS CSSStyleDeclaration interface: calling setProperty(CSSOMString, CSSOMString, optional CSSOMString) on sheet.cssRules[2].style with too few arguments must throw TypeError +PASS CSSStyleDeclaration interface: sheet.cssRules[2].style must inherit property "removeProperty(CSSOMString)" with the proper type +PASS CSSStyleDeclaration interface: calling removeProperty(CSSOMString) on sheet.cssRules[2].style with too few arguments must throw TypeError +PASS CSSStyleDeclaration interface: sheet.cssRules[2].style must inherit property "parentRule" with the proper type +PASS CSSStyleDeclaration interface: sheet.cssRules[2].style must inherit property "cssFloat" with the proper type +FAIL CSSStyleDeclaration must be primary interface of sheet.cssRules[2].cssRules[0].style assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined" +FAIL Stringification of sheet.cssRules[2].cssRules[0].style assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined" +FAIL CSSStyleDeclaration interface: sheet.cssRules[2].cssRules[0].style must inherit property "cssText" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined" +FAIL CSSStyleDeclaration interface: sheet.cssRules[2].cssRules[0].style must inherit property "length" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined" +FAIL CSSStyleDeclaration interface: sheet.cssRules[2].cssRules[0].style must inherit property "item(unsigned long)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined" +FAIL CSSStyleDeclaration interface: calling item(unsigned long) on sheet.cssRules[2].cssRules[0].style with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined" +FAIL CSSStyleDeclaration interface: sheet.cssRules[2].cssRules[0].style must inherit property "getPropertyValue(CSSOMString)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined" +FAIL CSSStyleDeclaration interface: calling getPropertyValue(CSSOMString) on sheet.cssRules[2].cssRules[0].style with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined" +FAIL CSSStyleDeclaration interface: sheet.cssRules[2].cssRules[0].style must inherit property "getPropertyPriority(CSSOMString)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined" +FAIL CSSStyleDeclaration interface: calling getPropertyPriority(CSSOMString) on sheet.cssRules[2].cssRules[0].style with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined" +FAIL CSSStyleDeclaration interface: sheet.cssRules[2].cssRules[0].style must inherit property "setProperty(CSSOMString, CSSOMString, optional CSSOMString)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined" +FAIL CSSStyleDeclaration interface: calling setProperty(CSSOMString, CSSOMString, optional CSSOMString) on sheet.cssRules[2].cssRules[0].style with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined" +FAIL CSSStyleDeclaration interface: sheet.cssRules[2].cssRules[0].style must inherit property "removeProperty(CSSOMString)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined" +FAIL CSSStyleDeclaration interface: calling removeProperty(CSSOMString) on sheet.cssRules[2].cssRules[0].style with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined" +FAIL CSSStyleDeclaration interface: sheet.cssRules[2].cssRules[0].style must inherit property "parentRule" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined" +FAIL CSSStyleDeclaration interface: sheet.cssRules[2].cssRules[0].style must inherit property "cssFloat" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined" +PASS CSSStyleDeclaration must be primary interface of style_element.style +PASS Stringification of style_element.style +PASS CSSStyleDeclaration interface: style_element.style must inherit property "cssText" with the proper type +PASS CSSStyleDeclaration interface: style_element.style must inherit property "length" with the proper type +PASS CSSStyleDeclaration interface: style_element.style must inherit property "item(unsigned long)" with the proper type +PASS CSSStyleDeclaration interface: calling item(unsigned long) on style_element.style with too few arguments must throw TypeError +PASS CSSStyleDeclaration interface: style_element.style must inherit property "getPropertyValue(CSSOMString)" with the proper type +PASS CSSStyleDeclaration interface: calling getPropertyValue(CSSOMString) on style_element.style with too few arguments must throw TypeError +PASS CSSStyleDeclaration interface: style_element.style must inherit property "getPropertyPriority(CSSOMString)" with the proper type +PASS CSSStyleDeclaration interface: calling getPropertyPriority(CSSOMString) on style_element.style with too few arguments must throw TypeError +PASS CSSStyleDeclaration interface: style_element.style must inherit property "setProperty(CSSOMString, CSSOMString, optional CSSOMString)" with the proper type +PASS CSSStyleDeclaration interface: calling setProperty(CSSOMString, CSSOMString, optional CSSOMString) on style_element.style with too few arguments must throw TypeError +PASS CSSStyleDeclaration interface: style_element.style must inherit property "removeProperty(CSSOMString)" with the proper type +PASS CSSStyleDeclaration interface: calling removeProperty(CSSOMString) on style_element.style with too few arguments must throw TypeError +PASS CSSStyleDeclaration interface: style_element.style must inherit property "parentRule" with the proper type +PASS CSSStyleDeclaration interface: style_element.style must inherit property "cssFloat" with the proper type +PASS CSSStyleDeclaration must be primary interface of svg_element.style +PASS Stringification of svg_element.style +PASS CSSStyleDeclaration interface: svg_element.style must inherit property "cssText" with the proper type +PASS CSSStyleDeclaration interface: svg_element.style must inherit property "length" with the proper type +PASS CSSStyleDeclaration interface: svg_element.style must inherit property "item(unsigned long)" with the proper type +PASS CSSStyleDeclaration interface: calling item(unsigned long) on svg_element.style with too few arguments must throw TypeError +PASS CSSStyleDeclaration interface: svg_element.style must inherit property "getPropertyValue(CSSOMString)" with the proper type +PASS CSSStyleDeclaration interface: calling getPropertyValue(CSSOMString) on svg_element.style with too few arguments must throw TypeError +PASS CSSStyleDeclaration interface: svg_element.style must inherit property "getPropertyPriority(CSSOMString)" with the proper type +PASS CSSStyleDeclaration interface: calling getPropertyPriority(CSSOMString) on svg_element.style with too few arguments must throw TypeError +PASS CSSStyleDeclaration interface: svg_element.style must inherit property "setProperty(CSSOMString, CSSOMString, optional CSSOMString)" with the proper type +PASS CSSStyleDeclaration interface: calling setProperty(CSSOMString, CSSOMString, optional CSSOMString) on svg_element.style with too few arguments must throw TypeError +PASS CSSStyleDeclaration interface: svg_element.style must inherit property "removeProperty(CSSOMString)" with the proper type +PASS CSSStyleDeclaration interface: calling removeProperty(CSSOMString) on svg_element.style with too few arguments must throw TypeError +PASS CSSStyleDeclaration interface: svg_element.style must inherit property "parentRule" with the proper type +PASS CSSStyleDeclaration interface: svg_element.style must inherit property "cssFloat" with the proper type +PASS CSSStyleDeclaration must be primary interface of getComputedStyle(svg_element) +PASS Stringification of getComputedStyle(svg_element) +PASS CSSStyleDeclaration interface: getComputedStyle(svg_element) must inherit property "cssText" with the proper type +PASS CSSStyleDeclaration interface: getComputedStyle(svg_element) must inherit property "length" with the proper type +PASS CSSStyleDeclaration interface: getComputedStyle(svg_element) must inherit property "item(unsigned long)" with the proper type +PASS CSSStyleDeclaration interface: calling item(unsigned long) on getComputedStyle(svg_element) with too few arguments must throw TypeError +PASS CSSStyleDeclaration interface: getComputedStyle(svg_element) must inherit property "getPropertyValue(CSSOMString)" with the proper type +PASS CSSStyleDeclaration interface: calling getPropertyValue(CSSOMString) on getComputedStyle(svg_element) with too few arguments must throw TypeError +PASS CSSStyleDeclaration interface: getComputedStyle(svg_element) must inherit property "getPropertyPriority(CSSOMString)" with the proper type +PASS CSSStyleDeclaration interface: calling getPropertyPriority(CSSOMString) on getComputedStyle(svg_element) with too few arguments must throw TypeError +PASS CSSStyleDeclaration interface: getComputedStyle(svg_element) must inherit property "setProperty(CSSOMString, CSSOMString, optional CSSOMString)" with the proper type +PASS CSSStyleDeclaration interface: calling setProperty(CSSOMString, CSSOMString, optional CSSOMString) on getComputedStyle(svg_element) with too few arguments must throw TypeError +PASS CSSStyleDeclaration interface: getComputedStyle(svg_element) must inherit property "removeProperty(CSSOMString)" with the proper type +PASS CSSStyleDeclaration interface: calling removeProperty(CSSOMString) on getComputedStyle(svg_element) with too few arguments must throw TypeError +PASS CSSStyleDeclaration interface: getComputedStyle(svg_element) must inherit property "parentRule" with the proper type +PASS CSSStyleDeclaration interface: getComputedStyle(svg_element) must inherit property "cssFloat" with the proper type +PASS CSS namespace: extended attributes +PASS CSS namespace: property descriptor +PASS CSS namespace: [[Extensible]] is true +PASS CSS namespace: [[Prototype]] is Object.prototype +PASS CSS namespace: typeof is "object" +PASS CSS namespace: has no length property +PASS CSS namespace: has no name property +PASS CSS namespace: operation escape(CSSOMString) +PASS SVGElement interface: attribute style +PASS SVGElement interface: svg_element must inherit property "style" with the proper type +PASS SVGStyleElement interface: attribute sheet +PASS HTMLElement interface: attribute style +PASS HTMLElement interface: style_element must inherit property "style" with the proper type +PASS HTMLElement interface: document.createElement("unknownelement") must inherit property "style" with the proper type +PASS HTMLLinkElement interface: attribute sheet +PASS HTMLStyleElement interface: attribute sheet +PASS Window interface: operation getComputedStyle(Element, optional CSSOMString?) +PASS Window interface: window must inherit property "getComputedStyle(Element, optional CSSOMString?)" with the proper type +PASS Window interface: calling getComputedStyle(Element, optional CSSOMString?) on window with too few arguments must throw TypeError +PASS Document interface: attribute styleSheets +PASS Document interface: document must inherit property "styleSheets" with the proper type +PASS Document interface: new Document() must inherit property "styleSheets" with the proper type +PASS ShadowRoot interface: attribute styleSheets +PASS ProcessingInstruction interface: attribute sheet +PASS ProcessingInstruction interface: xmlss_pi must inherit property "sheet" with the proper type +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/virtual/raw-clipboard/external/wpt/clipboard-apis/clipboard-item.https-expected.txt b/third_party/blink/web_tests/virtual/raw-clipboard/external/wpt/clipboard-apis/clipboard-item.https-expected.txt index 77ef423..6c37861b 100644 --- a/third_party/blink/web_tests/virtual/raw-clipboard/external/wpt/clipboard-apis/clipboard-item.https-expected.txt +++ b/third_party/blink/web_tests/virtual/raw-clipboard/external/wpt/clipboard-apis/clipboard-item.https-expected.txt
@@ -10,5 +10,7 @@ PASS getType(DOMString valid type) succeeds with correct output PASS getType(DOMString invalid type) succeeds with correct output PASS getType(DOMString type) rejects correctly when querying for missing type +FAIL getType(DOMString valid type) converts DOMString to Blob promise_test: Unhandled rejection with value: object "TypeError: Failed to construct 'ClipboardItem': Failed to convert value to 'Blob'." +FAIL getType(DOMString invalid type) converts DOMString to Blob promise_test: Unhandled rejection with value: object "TypeError: Failed to construct 'ClipboardItem': Failed to convert value to 'Blob'." Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/wpt_internal/forms/file/file-input-click.html b/third_party/blink/web_tests/wpt_internal/forms/file/file-input-click.html index 97208340..92e2660 100644 --- a/third_party/blink/web_tests/wpt_internal/forms/file/file-input-click.html +++ b/third_party/blink/web_tests/wpt_internal/forms/file/file-input-click.html
@@ -1,11 +1,12 @@ <!DOCTYPE html> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> +<script src="/gen/layout_test_data/mojo/public/js/mojo_bindings.js"></script> +<script src="/gen/third_party/blink/public/mojom/choosers/file_chooser.mojom.js"></script> +<script src="../resources/mock-file-chooser.js"></script> <title>INPUT TYPE=FILE and click events</title> <input type="file"> -<script type="module"> -import {mockFileChooserFactory} from '../resources/mock-file-chooser.js'; - +<script> promise_test(async _ => { const file = document.querySelector('input'); const x = file.offsetLeft + file.offsetWidth / 2;
diff --git a/third_party/blink/web_tests/wpt_internal/forms/file/file-input-key-enter.html b/third_party/blink/web_tests/wpt_internal/forms/file/file-input-key-enter.html index 5baad1a..e871c3b 100644 --- a/third_party/blink/web_tests/wpt_internal/forms/file/file-input-key-enter.html +++ b/third_party/blink/web_tests/wpt_internal/forms/file/file-input-key-enter.html
@@ -1,11 +1,12 @@ <!DOCTYPE html> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> +<script src="/gen/layout_test_data/mojo/public/js/mojo_bindings.js"></script> +<script src="/gen/third_party/blink/public/mojom/choosers/file_chooser.mojom.js"></script> +<script src="../resources/mock-file-chooser.js"></script> <title>INPUT TYPE=FILE and key events - Enter key</title> <input type="file"> -<script type="module"> -import {mockFileChooserFactory} from '../resources/mock-file-chooser.js'; - +<script> promise_test(async _ => { const promise = new Promise( resolve => mockFileChooserFactory.addEventListener('open', resolve));
diff --git a/third_party/blink/web_tests/wpt_internal/forms/file/file-input-key-other.html b/third_party/blink/web_tests/wpt_internal/forms/file/file-input-key-other.html index 3883612..1b444e8 100644 --- a/third_party/blink/web_tests/wpt_internal/forms/file/file-input-key-other.html +++ b/third_party/blink/web_tests/wpt_internal/forms/file/file-input-key-other.html
@@ -1,11 +1,12 @@ <!DOCTYPE html> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> +<script src="/gen/layout_test_data/mojo/public/js/mojo_bindings.js"></script> +<script src="/gen/third_party/blink/public/mojom/choosers/file_chooser.mojom.js"></script> +<script src="../resources/mock-file-chooser.js"></script> <title>INPUT TYPE=FILE and key events - Other keys</title> <input type="file"> -<script type="module"> -import {mockFileChooserFactory} from '../resources/mock-file-chooser.js'; - +<script> promise_test(_ => { const promise = new Promise((resolve, reject) => { mockFileChooserFactory.addEventListener(
diff --git a/third_party/blink/web_tests/wpt_internal/forms/file/file-input-key-space.html b/third_party/blink/web_tests/wpt_internal/forms/file/file-input-key-space.html index 0186516c..49561bda 100644 --- a/third_party/blink/web_tests/wpt_internal/forms/file/file-input-key-space.html +++ b/third_party/blink/web_tests/wpt_internal/forms/file/file-input-key-space.html
@@ -1,11 +1,12 @@ <!DOCTYPE html> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> +<script src="/gen/layout_test_data/mojo/public/js/mojo_bindings.js"></script> +<script src="/gen/third_party/blink/public/mojom/choosers/file_chooser.mojom.js"></script> +<script src="../resources/mock-file-chooser.js"></script> <title>INPUT TYPE=FILE and key events - Space key</title> <input type="file"> -<script type="module"> -import {mockFileChooserFactory} from '../resources/mock-file-chooser.js'; - +<script> promise_test(async _ => { const promise = new Promise( resolve => mockFileChooserFactory.addEventListener('open', resolve));
diff --git a/third_party/blink/web_tests/wpt_internal/forms/file/file-input-webkitdirectory-click.html b/third_party/blink/web_tests/wpt_internal/forms/file/file-input-webkitdirectory-click.html index 6dc4492..b8e22384 100644 --- a/third_party/blink/web_tests/wpt_internal/forms/file/file-input-webkitdirectory-click.html +++ b/third_party/blink/web_tests/wpt_internal/forms/file/file-input-webkitdirectory-click.html
@@ -1,11 +1,12 @@ <!DOCTYPE html> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> +<script src="/gen/layout_test_data/mojo/public/js/mojo_bindings.js"></script> +<script src="/gen/third_party/blink/public/mojom/choosers/file_chooser.mojom.js"></script> +<script src="../resources/mock-file-chooser.js"></script> <title>INPUT TYPE=FILE WEBKITDIRECTORY and click events</title> <input type="file" webkitdirectory> -<script type="module"> -import {mockFileChooserFactory} from '../resources/mock-file-chooser.js'; - +<script> promise_test(async _ => { const promise = new Promise( resolve => mockFileChooserFactory.addEventListener('open', resolve));
diff --git a/third_party/blink/web_tests/wpt_internal/forms/file/file-input-webkitdirectory-key-enter-prevent-keypress.html b/third_party/blink/web_tests/wpt_internal/forms/file/file-input-webkitdirectory-key-enter-prevent-keypress.html index 7355e36..48d5f158 100644 --- a/third_party/blink/web_tests/wpt_internal/forms/file/file-input-webkitdirectory-key-enter-prevent-keypress.html +++ b/third_party/blink/web_tests/wpt_internal/forms/file/file-input-webkitdirectory-key-enter-prevent-keypress.html
@@ -1,11 +1,12 @@ <!DOCTYPE html> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> +<script src="/gen/layout_test_data/mojo/public/js/mojo_bindings.js"></script> +<script src="/gen/third_party/blink/public/mojom/choosers/file_chooser.mojom.js"></script> +<script src="../resources/mock-file-chooser.js"></script> <title>INPUT TYPE=FILE WEBKITDIRECTORY and key events - Enter keypress prevented</title> <input type="file" webkitdirectory> -<script type="module"> -import {mockFileChooserFactory} from '../resources/mock-file-chooser.js'; - +<script> promise_test(async _ => { const promise = new Promise( resolve => mockFileChooserFactory.addEventListener('open', resolve));
diff --git a/third_party/blink/web_tests/wpt_internal/forms/file/file-input-webkitdirectory-key-enter-prevent-keyup.html b/third_party/blink/web_tests/wpt_internal/forms/file/file-input-webkitdirectory-key-enter-prevent-keyup.html index e132658..c5b5e78c 100644 --- a/third_party/blink/web_tests/wpt_internal/forms/file/file-input-webkitdirectory-key-enter-prevent-keyup.html +++ b/third_party/blink/web_tests/wpt_internal/forms/file/file-input-webkitdirectory-key-enter-prevent-keyup.html
@@ -1,11 +1,12 @@ <!DOCTYPE html> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> +<script src="/gen/layout_test_data/mojo/public/js/mojo_bindings.js"></script> +<script src="/gen/third_party/blink/public/mojom/choosers/file_chooser.mojom.js"></script> +<script src="../resources/mock-file-chooser.js"></script> <title>INPUT TYPE=FILE WEBKITDIRECTORY and key events - Enter keyup prevented</title> <input type="file" webkitdirectory> -<script type="module"> -import {mockFileChooserFactory} from '../resources/mock-file-chooser.js'; - +<script> promise_test(_ => { const promise = new Promise((resolve, reject) => { mockFileChooserFactory.addEventListener(
diff --git a/third_party/blink/web_tests/wpt_internal/forms/file/file-input-webkitdirectory-key-enter.html b/third_party/blink/web_tests/wpt_internal/forms/file/file-input-webkitdirectory-key-enter.html index cb4bfc6c..22d7f481 100644 --- a/third_party/blink/web_tests/wpt_internal/forms/file/file-input-webkitdirectory-key-enter.html +++ b/third_party/blink/web_tests/wpt_internal/forms/file/file-input-webkitdirectory-key-enter.html
@@ -1,11 +1,12 @@ <!DOCTYPE html> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> +<script src="/gen/layout_test_data/mojo/public/js/mojo_bindings.js"></script> +<script src="/gen/third_party/blink/public/mojom/choosers/file_chooser.mojom.js"></script> +<script src="../resources/mock-file-chooser.js"></script> <title>INPUT TYPE=FILE WEBKITDIRECTORY and key events - Enter key</title> <input type="file" webkitdirectory> -<script type="module"> -import {mockFileChooserFactory} from '../resources/mock-file-chooser.js'; - +<script> promise_test(async _ => { const promise = new Promise( resolve => mockFileChooserFactory.addEventListener('open', resolve));
diff --git a/third_party/blink/web_tests/wpt_internal/forms/file/file-input-webkitdirectory-key-other.html b/third_party/blink/web_tests/wpt_internal/forms/file/file-input-webkitdirectory-key-other.html index c3007ab8..2892a245 100644 --- a/third_party/blink/web_tests/wpt_internal/forms/file/file-input-webkitdirectory-key-other.html +++ b/third_party/blink/web_tests/wpt_internal/forms/file/file-input-webkitdirectory-key-other.html
@@ -1,11 +1,12 @@ <!DOCTYPE html> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> +<script src="/gen/layout_test_data/mojo/public/js/mojo_bindings.js"></script> +<script src="/gen/third_party/blink/public/mojom/choosers/file_chooser.mojom.js"></script> +<script src="../resources/mock-file-chooser.js"></script> <title>INPUT TYPE=FILE WEBKITDIRECTORY and key events - Other keys</title> <input type="file" webkitdirectory> -<script type="module"> -import {mockFileChooserFactory} from '../resources/mock-file-chooser.js'; - +<script> promise_test(_ => { const promise = new Promise((resolve, reject) => { mockFileChooserFactory.addEventListener(
diff --git a/third_party/blink/web_tests/wpt_internal/forms/file/file-input-webkitdirectory-key-space.html b/third_party/blink/web_tests/wpt_internal/forms/file/file-input-webkitdirectory-key-space.html index 64967140..e1851b8 100644 --- a/third_party/blink/web_tests/wpt_internal/forms/file/file-input-webkitdirectory-key-space.html +++ b/third_party/blink/web_tests/wpt_internal/forms/file/file-input-webkitdirectory-key-space.html
@@ -1,11 +1,12 @@ <!DOCTYPE html> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> +<script src="/gen/layout_test_data/mojo/public/js/mojo_bindings.js"></script> +<script src="/gen/third_party/blink/public/mojom/choosers/file_chooser.mojom.js"></script> +<script src="../resources/mock-file-chooser.js"></script> <title>INPUT TYPE=FILE WEBKITDIRECTORY and key events - Space key</title> <input type="file" webkitdirectory> -<script type="module"> -import {mockFileChooserFactory} from '../resources/mock-file-chooser.js'; - +<script> promise_test(async _ => { const promise = new Promise( resolve => mockFileChooserFactory.addEventListener('open', resolve));
diff --git a/third_party/blink/web_tests/wpt_internal/forms/file/file-webkitRelativePath.html b/third_party/blink/web_tests/wpt_internal/forms/file/file-webkitRelativePath.html index ca214908..5528179 100644 --- a/third_party/blink/web_tests/wpt_internal/forms/file/file-webkitRelativePath.html +++ b/third_party/blink/web_tests/wpt_internal/forms/file/file-webkitRelativePath.html
@@ -3,12 +3,14 @@ <title>Test webkitRelativePath IDL attribute</title> </head> <body> +<script src="/gen/layout_test_data/mojo/public/js/mojo_bindings.js"></script> +<script src="/gen/third_party/blink/public/mojom/choosers/file_chooser.mojom.js"></script> +<script src="../resources/mock-file-chooser.js"></script> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> -<input type="file" webkitdirectory> -<script type="module"> -import {mockFileChooserFactory} from '../resources/mock-file-chooser.js'; +<input type="file" webkitdirectory> +<script> // This is an automated-version of external/wpt/entries-api/file-webkitRelativePath-manual.html function clickElement(e) {
diff --git a/third_party/blink/web_tests/wpt_internal/forms/resources/mock-file-chooser.js b/third_party/blink/web_tests/wpt_internal/forms/resources/mock-file-chooser.js index a5cae36..f32214b4 100644 --- a/third_party/blink/web_tests/wpt_internal/forms/resources/mock-file-chooser.js +++ b/third_party/blink/web_tests/wpt_internal/forms/resources/mock-file-chooser.js
@@ -1,17 +1,21 @@ -import {FileChooser, FileChooserParams_Mode, FileChooserReceiver} from '/gen/third_party/blink/public/mojom/choosers/file_chooser.mojom.m.js'; +(function() { + +// This function stabilize the line number in console messages from this script. +function log(str) { + console.log(str); +} class MockFileChooserFactory extends EventTarget { constructor() { super(); this.paths_ = []; this.baseDir_ = undefined; - this.receiver_ = undefined; + this.bindingSet_ = new mojo.BindingSet(blink.mojom.FileChooser); this.interceptor_ = - new MojoInterfaceInterceptor(FileChooser.$interfaceName); + new MojoInterfaceInterceptor(blink.mojom.FileChooser.name); this.interceptor_.oninterfacerequest = e => { - this.receiver_ = new FileChooserReceiver( - new MockFileChooser(this, this.paths_, this.baseDir_)); - this.receiver_.$.bindHandle(e.handle); + this.bindingSet_.addBinding( + new MockFileChooser(this, this.paths_, this.baseDir_), e.handle); this.paths_ = []; }; this.interceptor_.start(); @@ -25,7 +29,7 @@ } function modeToString(mode) { - let Mode = FileChooserParams_Mode; + let Mode = blink.mojom.FileChooserParams.Mode; switch (mode) { case Mode.kOpen: return 'kOpen'; @@ -49,6 +53,7 @@ openFileChooser(params) { this.params_ = params; + log(`FileChooser: opened; mode=${modeToString(params.mode)}`); this.factory_.dispatchEvent( new CustomEvent('open', {detail: modeToString(params.mode)})); @@ -62,10 +67,19 @@ } chooseFiles_(resolve) { + if (this.paths_.length > 0) { + log('FileChooser: selected: ' + this.paths_); + } else { + log('FileChooser: canceled'); + } const file_info_list = []; for (const path of this.paths_) { - const nativeFile = {filePath: toFilePath(path), displayName: {data: []}}; - file_info_list.push({nativeFile}); + file_info_list.push(new blink.mojom.FileChooserFileInfo({ + nativeFile: { + filePath: toFilePath(path), + displayName: {data:[]} + } + })); } const basePath = this.baseDir_ || ''; resolve({result: {files: file_info_list, @@ -91,4 +105,6 @@ return {path: string16Path}; } -export const mockFileChooserFactory = new MockFileChooserFactory(); +window.mockFileChooserFactory = new MockFileChooserFactory(); + +})();
diff --git a/third_party/widevine/cdm/widevine.gni b/third_party/widevine/cdm/widevine.gni index b8993da..5b7734b8 100644 --- a/third_party/widevine/cdm/widevine.gni +++ b/third_party/widevine/cdm/widevine.gni
@@ -47,11 +47,6 @@ # Widevine CDM is bundled as part of Google Chrome builds. bundle_widevine_cdm = enable_library_widevine_cdm && is_chrome_branded -# TODO(crbug.com/1111381): Remove this when MacOS ARM64 CDM is checked in. -if (is_mac && target_cpu == "arm64") { - bundle_widevine_cdm = false -} - # Enable Widevine CDM host verification, which will sign additional binaries # with Widevine certs and copy signature files as needed. enable_widevine_cdm_host_verification =
diff --git a/tools/clang/scripts/build.py b/tools/clang/scripts/build.py index 60c6a90e..41df350c 100755 --- a/tools/clang/scripts/build.py +++ b/tools/clang/scripts/build.py
@@ -22,6 +22,7 @@ import shutil import subprocess import sys +import tempfile from update import (CDS_URL, CHROMIUM_DIR, CLANG_REVISION, LLVM_BUILD_DIR, FORCE_HEAD_REVISION_FILE, PACKAGE_VERSION, RELEASE_VERSION, @@ -45,10 +46,12 @@ CHROMIUM_DIR, 'third_party', 'android_ndk') FUCHSIA_SDK_DIR = os.path.join(CHROMIUM_DIR, 'third_party', 'fuchsia-sdk', 'sdk') +HOST_CLANG_DIR = os.path.join(LLVM_BUILD_TOOLS_DIR, 'pinned-clang') BUG_REPORT_URL = ('https://crbug.com and run' ' tools/clang/scripts/process_crashreports.py' ' (only works inside Google) which will upload a report') +UPDATE_PY_URL = 'https://raw.githubusercontent.com/chromium/chromium/master/tools/clang/scripts/update.py' win_sdk_dir = None @@ -324,6 +327,22 @@ args.gcc_toolchain = gcc_dir +def DownloadHostClang(): + """Download update.py and run it.""" + if not os.path.exists(HOST_CLANG_DIR): + tempfile_name = "" + with tempfile.NamedTemporaryFile(delete=False) as f: + DownloadUrl(UPDATE_PY_URL, f) + tempfile_name = f.name + print("Running update.py") + code = subprocess.call( + [sys.executable, tempfile_name, '--output-dir=' + HOST_CLANG_DIR]) + os.remove(tempfile_name) + if code != 0: + print("update.py failed.") + sys.exit(1) + + def VerifyVersionOfBuiltClangMatchesVERSION(): """Checks that `clang --version` outputs RELEASE_VERSION. If this fails, update.RELEASE_VERSION is out-of-date and needs to be updated (possibly @@ -708,6 +727,8 @@ cxxflags.append('--gcc-toolchain=' + args.gcc_toolchain) print('Bootstrap compiler installed.') + else: + DownloadHostClang() if args.pgo: print('Building instrumented compiler') @@ -992,6 +1013,7 @@ android_args = base_cmake_args + [ '-DCMAKE_C_COMPILER=' + os.path.join(LLVM_BUILD_DIR, 'bin/clang'), '-DCMAKE_CXX_COMPILER=' + os.path.join(LLVM_BUILD_DIR, 'bin/clang++'), + '-DLLVM_USE_LINKER=' + os.path.join(HOST_CLANG_DIR, 'bin/ld.lld'), '-DLLVM_CONFIG_PATH=' + os.path.join(LLVM_BUILD_DIR, 'bin/llvm-config'), '-DCMAKE_C_FLAGS=' + ' '.join(cflags), '-DCMAKE_CXX_FLAGS=' + ' '.join(cflags),
diff --git a/tools/mb/mb_config.pyl b/tools/mb/mb_config.pyl index 2ba7d28c..792415e 100644 --- a/tools/mb/mb_config.pyl +++ b/tools/mb/mb_config.pyl
@@ -889,6 +889,7 @@ 'chromeos-kevin-rel': 'chromeos_kevin', 'gpu-fyi-try-chromeos-amd64-generic': 'gpu_tests_chromeos_amd64_release_trybot_dcheck_off_no_symbols', 'gpu-fyi-try-chromeos-kevin': 'gpu_tests_chromeos_kevin_release_trybot_dcheck_off_no_symbols', + 'lacros-amd64-generic-rel': 'chromeos_amd64-generic_lacros_rel', 'linux-chromeos-inverse-fieldtrials-fyi-rel': 'chromeos_with_codecs_release_trybot_invert_fieldtrials', 'linux-chromeos-rel': 'chromeos_with_codecs_release_trybot_code_coverage', 'linux-chromeos-compile-dbg': 'chromeos_with_codecs_debug_bot',
diff --git a/tools/mb/mb_config_expectations/tryserver.chromium.chromiumos.json b/tools/mb/mb_config_expectations/tryserver.chromium.chromiumos.json index 03b88a2..2846c18 100644 --- a/tools/mb/mb_config_expectations/tryserver.chromium.chromiumos.json +++ b/tools/mb/mb_config_expectations/tryserver.chromium.chromiumos.json
@@ -90,6 +90,34 @@ "use_goma": true } }, + "lacros-amd64-generic-rel": { + "args_file": "//build/args/chromeos/amd64-generic.gni", + "gn_args": { + "chromeos_is_browser_only": true, + "cros_host_sysroot": "//build/linux/debian_sid_amd64-sysroot", + "cros_v8_snapshot_sysroot": "//build/linux/debian_sid_amd64-sysroot", + "enable_linux_installer": false, + "is_chromeos_device": true, + "ozone_platform_headless": true, + "ozone_platform_wayland": true, + "ozone_platform_x11": false, + "rtc_use_pipewire": false, + "target_os": "chromeos", + "use_custom_libcxx": false, + "use_custom_libcxx_for_host": true, + "use_evdev_gestures": false, + "use_gio": false, + "use_glib": false, + "use_goma": true, + "use_gtk": false, + "use_ozone": true, + "use_pangocairo": false, + "use_pulseaudio": false, + "use_system_libsync": false, + "use_v8_context_snapshot": false, + "use_vaapi": false + } + }, "linux-cfm-rel": { "gn_args": { "dcheck_always_on": true,
diff --git a/tools/metrics/histograms/enums.xml b/tools/metrics/histograms/enums.xml index 837c922..6d060f1f 100644 --- a/tools/metrics/histograms/enums.xml +++ b/tools/metrics/histograms/enums.xml
@@ -31257,6 +31257,8 @@ <int value="3790" label="WindowScreenChange"/> <int value="3791" label="XRWebGLDepthInformationTextureAttribute"/> <int value="3792" label="XRWebGLBindingGetDepthInformation"/> + <int value="3793" label="SessionStorageFirstUsedBeforeFcp"/> + <int value="3794" label="SessionStorageFirstUsedAfterFcp"/> </enum> <enum name="FeaturePolicyAllowlistType"> @@ -59094,6 +59096,18 @@ <int value="9" label="SetLocalAnswerResolved"/> </enum> +<enum name="PeerConnectionBundleUsage"> + <int value="0" label="There are no m-lines"/> + <int value="1" label="No BUNDLE, datachannel-only"/> + <int value="2" label="No BUNDLE, at most one audio/video m-line"/> + <int value="3" label="No BUNDLE, more than one audio/video m-line"/> + <int value="4" label="Using BUNDLE, datachannel-only"/> + <int value="5" label="Using BUNDLE, at most one audio/video m-line"/> + <int value="6" label="Using BUNDLE, more than one audio/video m-line"/> + <int value="7" label="No BUNDLE, legacy plan-b"/> + <int value="8" label="Using BUNDLE, legacy plan-b"/> +</enum> + <enum name="PeerConnectionCallSetupState"> <int value="0" label="NotStarted"/> <int value="1" label="Started"/>
diff --git a/tools/metrics/histograms/histograms_xml/web_rtc/histograms.xml b/tools/metrics/histograms/histograms_xml/web_rtc/histograms.xml index 45325761..7419d369d 100644 --- a/tools/metrics/histograms/histograms_xml/web_rtc/histograms.xml +++ b/tools/metrics/histograms/histograms_xml/web_rtc/histograms.xml
@@ -1188,6 +1188,17 @@ </summary> </histogram> +<histogram name="WebRTC.PeerConnection.BundleUsage" + enum="PeerConnectionBundleUsage" expires_after="2022-01-01"> + <owner>hta@chromium.org</owner> + <owner>webrtc-dev@chromium.org</owner> + <summary> + Determines whether BUNDLE is used in remote offers or answers. Recorded + during setRemoteDescription calls. Distinguishes between simple, complex, + datachannel-only and legacy plan-b usage. + </summary> +</histogram> + <histogram name="WebRTC.PeerConnection.CandidatePairType{IPProtocolType}" enum="IceCandidatePairTypes" expires_after="2020-04-05"> <owner>qingsi@google.com</owner>
diff --git a/tools/metrics/structured/PRESUBMIT.py b/tools/metrics/structured/PRESUBMIT.py index d53f74bf..43aa17c8 100644 --- a/tools/metrics/structured/PRESUBMIT.py +++ b/tools/metrics/structured/PRESUBMIT.py
@@ -9,37 +9,37 @@ """ STRUCTURED_XML = 'structured.xml' +STRUCTURED_OLD_XML = 'structured.old.xml' + def CheckChange(input_api, output_api): """ Checks that structured.xml is pretty-printed and well-formatted. """ - for f in input_api.AffectedTextFiles(): - p = f.AbsoluteLocalPath() - if (input_api.basename(p) == STRUCTURED_XML - and input_api.os_path.dirname(p) == input_api.PresubmitLocalPath()): - cwd = input_api.os_path.dirname(p) + errors = [] + for file in input_api.AffectedTextFiles(): + path = file.AbsoluteLocalPath() + basename = input_api.basename(path) + if input_api.os_path.dirname(path) != input_api.PresubmitLocalPath(): + continue + + if basename == STRUCTURED_XML: + cwd = input_api.os_path.dirname(path) exit_code = input_api.subprocess.call( [input_api.python_executable, 'pretty_print.py', '--presubmit'], cwd=cwd) if exit_code != 0: - return [ + errors.append( output_api.PresubmitError( - '%s is not prettified; run git cl format to fix.' % - STRUCTURED_XML), - ] + STRUCTURED_XML + + ' is not prettified; run git cl format to fix.')) + elif basename == STRUCTURED_OLD_XML: + errors.append( + output_api.PresubmitError( + STRUCTURED_OLD_XML + + ' exists after formatting; please remove before upload.')) - exit_code = input_api.subprocess.call( - [input_api.python_executable, 'validate_format.py', '--presubmit'], - cwd=cwd) - if exit_code != 0: - return [ - output_api.PresubmitError( - '%s does not pass format validation; run %s/validate_format.py ' - 'and fix the reported error(s) or warning(s).' % - (STRUCTURED_XML, input_api.PresubmitLocalPath())), - ] + return errors - return [] def CheckChangeOnUpload(input_api, output_api): return CheckChange(input_api, output_api)
diff --git a/tools/metrics/structured/codegen.py b/tools/metrics/structured/codegen.py index 8526d49b..74047cd 100644 --- a/tools/metrics/structured/codegen.py +++ b/tools/metrics/structured/codegen.py
@@ -1,4 +1,5 @@ -# Copyright 2019 The Chromium Authors. All rights reserved. +# -*- coding: utf-8 -*- +# 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. @@ -8,143 +9,159 @@ import os import re import struct -from model import _EVENT_TYPE -from model import _PROJECT_TYPE -from model import _METRIC_TYPE -def sanitize_name(name): - return re.sub('[^0-9a-zA-Z_]', '_', name) +class Util: + """Helpers for generating C++.""" + + @staticmethod + def sanitize_name(name): + return re.sub('[^0-9a-zA-Z_]', '_', name) + + @staticmethod + def camel_to_snake(name): + pat = '((?<=[a-z0-9])[A-Z]|(?!^)[A-Z](?=[a-z]))' + return re.sub(pat, r'_\1', name).lower() + + @staticmethod + def hash_name(name): + # This must match the hash function in chromium's + # //base/metrics/metric_hashes.cc. >Q means 8 bytes, big endian. + name = name.encode('utf-8') + md5 = hashlib.md5(name) + return struct.unpack('>Q', md5.digest()[:8])[0] + + @staticmethod + def event_name_hash(project_name, event_name): + """Make the name hash for an event. + + This gets uploaded in the StructuredEventProto.event_name_hash field. It is + the sole means of recording which event from structured.xml a + StructuredEventProto instance represents. + + To avoid naming collisions, it must contain three pieces of information: + - the name of the event itself + - the name of the event's project, to avoid collisions with events of the + same name in other projects + - an identifier that this comes from chromium, to avoid collisions with + events and projects of the same name defined in cros's structured.xml + + This must use sanitized names for the project and event. + """ + event_name = Util.sanitize_name(event_name) + project_name = Util.sanitize_name(project_name) + # TODO(crbug.com/1148168): Once the minimum python version is 3.6+, rewrite + # this .format and others using f-strings. + return Util.hash_name('chrome::{}::{}'.format(project_name, event_name)) -def camel_to_snake(name): - pat = '((?<=[a-z0-9])[A-Z]|(?!^)[A-Z](?=[a-z]))' - return re.sub(pat, r'_\1', name).lower() +class FileInfo: + """Codegen-related info about a file.""" + + def __init__(self, dirname, basename): + self.dirname = dirname + self.basename = basename + self.filepath = os.path.join(dirname, basename) + + # This takes the last three components of the filepath for use in the + # header guard, ie. METRICS_STRUCTURED_STRUCTURED_EVENTS_H_ + relative_path = os.sep.join(self.filepath.split(os.sep)[-3:]) + self.guard_path = Util.sanitize_name(relative_path).upper() -def HashName(name): - # This must match the hash function in base/metrics/metric_hashes.cc - # >Q: 8 bytes, big endian. - return struct.unpack('>Q', hashlib.md5(name).digest()[:8])[0] +class ProjectInfo: + """Codegen-related info about a project.""" + def __init__(self, project): + self.name = Util.sanitize_name(project.name) + self.namespace = Util.camel_to_snake(self.name) + self.name_hash = Util.hash_name(self.name) -class FileInfo(object): - def __init__(self, relpath, basename): - self.dir_path = relpath - self.guard_path = sanitize_name(os.path.join(relpath, basename)).upper() - - -class ProjectInfo(object): - def __init__(self, project_obj): - self.name = sanitize_name(project_obj['name']) - self.namespace = camel_to_snake(self.name) - self.name_hash = HashName(self.name) - - id_type = project_obj['id']['text'] - if id_type == 'uma': + if project.id == 'uma': self.id_type = 'kUmaId' - elif id_type == 'per-project': + elif project.id == 'per-project': self.id_type = 'kProjectId' - elif id_type == 'none': + elif project.id == 'none': self.id_type = 'kUnidentified' - else: - raise Exception( - "Structured metrics project '{}' has invalid id field '{}'".format( - self.name, id_type)) -class EventInfo(object): - def __init__(self, event_obj): - self.raw_name = event_obj['name'] - self.name = sanitize_name(event_obj['name']) - self.name_hash = HashName(event_obj['name']) +class EventInfo: + """Codegen-related info about an event.""" + + def __init__(self, event, project_info): + self.name = Util.sanitize_name(event.name) + self.name_hash = Util.event_name_hash(project_info.name, self.name) -class MetricInfo(object): - def __init__(self, json_obj): - self.raw_name = json_obj['name'] - self.name = sanitize_name(json_obj['name']) - self.hash = HashName(json_obj['name']) - if json_obj['kind'] == 'hashed-string': +class MetricInfo: + """Codegen-related info about a metric.""" + + def __init__(self, metric): + self.name = Util.sanitize_name(metric.name) + self.hash = Util.hash_name(metric.name) + + if metric.type == 'hmac-string': self.type = 'std::string&' self.setter = 'AddStringMetric' - elif json_obj['kind'] == 'int': + elif metric.type == 'int': self.type = 'int' self.setter = 'AddIntMetric' else: - raise Exception("Unexpected metric kind: " + json_obj['kind']) + raise ValueError('Invalid metric type.') -class Template(object): +class Template: """Template for producing code from structured.xml.""" - def __init__(self, basename, file_template, project_template, event_template, - metric_template): + def __init__(self, model, dirname, basename, file_template, project_template, + event_template, metric_template): + self.model = model + self.dirname = dirname self.basename = basename self.file_template = file_template self.project_template = project_template self.event_template = event_template self.metric_template = metric_template - def _StampMetricCode(self, file_info, event_info, metric): - """Stamp a metric by creating name hash constant based on the metric name, - and a setter method.""" - return self.metric_template.format( - file=file_info, - event=event_info, - metric=MetricInfo(metric)) + def write_file(self): + file_info = FileInfo(self.dirname, self.basename) + with open(file_info.filepath, 'w') as f: + f.write(self._stamp_file(file_info)) - def _StampEventCode(self, file_info, project_info, event): - """Stamp an event class by creating a skeleton of the class based on the - event name, and then stamping code for each metric within it.""" - event_info = EventInfo(event) + def _stamp_file(self, file_info): + project_code = ''.join( + self._stamp_project(file_info, p) for p in self.model.projects) + + project_names = sorted([p.name for p in self.model.projects]) + project_hashes_list = [ + 'UINT64_C({})'.format(Util.hash_name(n)) for n in project_names + ] + project_hashes_literal = '{' + ', '.join(project_hashes_list) + '}' + + return self.file_template.format(file=file_info, + project_code=project_code, + project_hashes=project_hashes_literal) + + def _stamp_project(self, file_info, project): + project_info = ProjectInfo(project) + event_code = ''.join( + self._stamp_event(file_info, project_info, event) + for event in project.events) + return self.project_template.format(file=file_info, + project=project_info, + event_code=event_code) + + def _stamp_event(self, file_info, project_info, event): + event_info = EventInfo(event, project_info) metric_code = ''.join( - self._StampMetricCode(file_info, event_info, metric) - for metric in event[_METRIC_TYPE.tag]) + self._stamp_metric(file_info, event_info, metric) + for metric in event.metrics) return self.event_template.format(file=file_info, project=project_info, event=event_info, metric_code=metric_code) - def _StampProjectCode(self, file_info, project): - """Stamp a project by stamping classes for all constituent events.""" - project_info = ProjectInfo(project) - event_code = ''.join( - self._StampEventCode(file_info, project_info, event) - for event in project[_EVENT_TYPE.tag]) - return self.project_template.format(file=file_info, - project=project_info, - event_code=event_code) - - def _StampFileCode(self, relpath, data): - """Stamp a file by creating a class for each event within each project, and - a list of all project name hashes.""" - file_info = FileInfo(relpath, self.basename) - - project_code = [ - self._StampProjectCode(file_info, project) - for project in data[_PROJECT_TYPE.tag] - ] - project_code = ''.join(project_code) - - project_names = {project['name'] for project in data[_PROJECT_TYPE.tag]} - project_name_hashes = [ - 'UINT64_C(%s)' % HashName(name) for name in sorted(list(project_names)) - ] - project_name_hashes = '{' + ', '.join(project_name_hashes) + '}' - - return self.file_template.format(file=file_info, - project_code=project_code, - project_name_hashes=project_name_hashes) - - def WriteFile(self, outdir, relpath, data): - """Generates code and writes it to a file. - - Args: - relpath: The path to the file in the source tree. - rootdir: The root of the path the file should be written to. - data: The parsed structured.xml data. - """ - output = open(os.path.join(outdir, self.basename), 'w') - output.write(self._StampFileCode(relpath, data)) - output.close() + def _stamp_metric(self, file_info, event_info, metric): + return self.metric_template.format(file=file_info, + event=event_info, + metric=MetricInfo(metric))
diff --git a/tools/metrics/structured/codegen_unittest.py b/tools/metrics/structured/codegen_unittest.py new file mode 100755 index 0000000..c195480 --- /dev/null +++ b/tools/metrics/structured/codegen_unittest.py
@@ -0,0 +1,50 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +# 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. +"""Tests for codegen.py. +""" + +# TODO(crbug.com/1148168): Set up these tests to run on the tryjobs. + +import unittest +from codegen import Util + + +class CodegenTest(unittest.TestCase): + """Tests for codegen.py""" + + def test_sanitize_name(self): + self.assertEqual(Util.sanitize_name('My Metric.Or::Event/Or/Project_name'), + 'My_Metric_Or__Event_Or_Project_name') + + def test_camel_to_snake(self): + def check(camel, expected_snake): + self.assertEqual(Util.camel_to_snake(camel), expected_snake) + + check('already_snake_case', 'already_snake_case') + check('ConvertFromCamelCase', 'convert_from_camel_case') + check('HTTPAcronymAtStart', 'http_acronym_at_start') + check('AcronymInHTTPMiddle', 'acronym_in_http_middle') + check('AcronymAtEndHTTP', 'acronym_at_end_http') + + def test_hash_name(self): + # This was generated using the function in Chromium's + # //base/metrics/metrics_hashes.cc. + known_good_hash = 11096769389970233700 + self.assertEqual(Util.hash_name('known good hash'), known_good_hash) + + def test_event_name_hash(self): + # This was generated using the function in Chromium's + # //base/metrics/metrics_hashes.cc for the string + # cros::TestProjectOne::TestEventOne + event_name_hash = 16542188217976373364 + project_name = 'TestProjectOne' + event_name = 'TestEventOne' + self.assertEqual(Util.event_name_hash(project_name, event_name), + event_name_hash) + + +if __name__ == '__main__': + unittest.main()
diff --git a/tools/metrics/structured/compile_time_validation.py b/tools/metrics/structured/compile_time_validation.py deleted file mode 100644 index 18255d4..0000000 --- a/tools/metrics/structured/compile_time_validation.py +++ /dev/null
@@ -1,82 +0,0 @@ -# Copyright 2020 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. -"""Verifies that structured.xml is well-structured.""" - -from collections import Counter -from model import _METRIC_TYPE -from model import _EVENT_TYPE -from model import _PROJECT_TYPE - - -def projectsHaveRequiredFields(data): - """Check that projects have all fields required for compilation.""" - valid_id_types = {'none', 'per-project', 'uma'} - - for project in data[_PROJECT_TYPE.tag]: - if 'name' not in project: - raise Exception('Structured metrics project has no name') - - if 'id' not in project: - raise Exception("Structured metrics project '{}' has no id field.".format( - project['name'])) - if project['id']['text'] not in valid_id_types: - raise Exception( - "Structured metrics project '{}' has invalid id field.".format( - project['name'])) - - name_counts = Counter( - project['name'] - for project in data[_PROJECT_TYPE.tag]) - for name, count in name_counts.items(): - if count != 1: - raise Exception( - "Structured metrics projects have duplicate name '{}'.".format(name)) - - -def metricNamesUniqueWithinEvent(data): - """Check that no two metrics within an event have the same name.""" - for project in data[_PROJECT_TYPE.tag]: - for event in project[_EVENT_TYPE.tag]: - name_counts = Counter( - metric['name'] - for metric in event[_METRIC_TYPE.tag]) - - for name, count in name_counts.items(): - if count != 1: - raise Exception(("Structured metrics project '{}' and event '{}' has " - "duplicated metric name '{}'.").format( - project['name'], event['name'], name)) - - -def eventNamesUniqueWithinProject(data): - """Check that no two events in a project have the same name.""" - for project in data[_PROJECT_TYPE.tag]: - name_counts = Counter( - event['name'] - for event in project[_EVENT_TYPE.tag]) - - for name, count in name_counts.items(): - if count != 1: - raise Exception( - "Structured metrics project '{}' has events with duplicate " - "name '{}'.".format(project['name'], name)) - - -def projectNamesUnique(data): - """Check that no two projects have the same name.""" - name_counts = Counter( - project['name'] - for project in data[_PROJECT_TYPE.tag]) - - for name, count in name_counts.items(): - if count != 1: - raise Exception( - "Structured metrics projects have duplicate name '{}'.".format(name)) - - -def validate(data): - projectsHaveRequiredFields(data) - projectNamesUnique(data) - eventNamesUniqueWithinProject(data) - metricNamesUniqueWithinEvent(data)
diff --git a/tools/metrics/structured/gen_events.py b/tools/metrics/structured/gen_events.py index 8d8e678..f0200ec 100755 --- a/tools/metrics/structured/gen_events.py +++ b/tools/metrics/structured/gen_events.py
@@ -1,35 +1,50 @@ -#!/usr/bin/env python -# Copyright 2019 The Chromium Authors. All rights reserved. +#!/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. """A utility for generating classes for structured metrics events. -It takes as input a structured.xml file describing all events and produces a -c++ header and implementation file exposing builders for those events. +Takes as input a structured.xml file describing all events and produces a C++ +header and implementation file exposing builders for those events. """ import argparse import sys +import codegen import model -import events_template -import compile_time_validation +import templates parser = argparse.ArgumentParser( description='Generate structured metrics events') parser.add_argument('--input', help='Path to structured.xml') parser.add_argument('--output', help='Path to generated files.') -def main(argv): - args = parser.parse_args() - data = model.XML_TYPE.Parse(open(args.input).read()) - relpath = 'components/metrics/structured' - compile_time_validation.validate(data) - events_template.WriteFiles(args.output, relpath, data) +def main(): + args = parser.parse_args() + data = model.Model(open(args.input).read()) + + codegen.Template( + data, + args.output, + 'structured_events.h', + file_template=templates.HEADER_FILE_TEMPLATE, + project_template=templates.HEADER_PROJECT_TEMPLATE, + event_template=templates.HEADER_EVENT_TEMPLATE, + metric_template=templates.HEADER_METRIC_TEMPLATE).write_file() + + codegen.Template(data, + args.output, + 'structured_events.cc', + file_template=templates.IMPL_FILE_TEMPLATE, + project_template=templates.IMPL_PROJECT_TEMPLATE, + event_template=templates.IMPL_EVENT_TEMPLATE, + metric_template=templates.IMPL_METRIC_TEMPLATE).write_file() return 0 -if '__main__' == __name__: - sys.exit(main(sys.argv)) + +if __name__ == '__main__': + sys.exit(main())
diff --git a/tools/metrics/structured/model.py b/tools/metrics/structured/model.py index ef073cc..1b32dcb 100644 --- a/tools/metrics/structured/model.py +++ b/tools/metrics/structured/model.py
@@ -1,99 +1,222 @@ -# Copyright 2019 The Chromium Authors. All rights reserved. +# -*- coding: utf-8 -*- +# 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 os -import sys +"""Model of a structured metrics description xml file. -sys.path.append(os.path.join(os.path.dirname(__file__), '..', 'common')) -import models +This marshals an XML string into a Model, and validates that the XML is +semantically correct. The model can also be used to create a canonically +formatted version XML. +""" -# Helpers +import xml.etree.ElementTree as ET +import textwrap as tw +import model_util as util -# A key for sorting XML nodes by the value of |attribute|. -_LOWERCASE_FN = lambda attribute: (lambda node: node.get(attribute).lower()) -# A constant function as the sorting key for nodes whose orderings should be -# kept as given in the XML file within their parent node. -_KEEP_ORDER = lambda node: 1 -# Model definitions +def wrap(text, indent): + wrapper = tw.TextWrapper(width=80, + initial_indent=indent, + subsequent_indent=indent) + return wrapper.fill(tw.dedent(text)) -_OBSOLETE_TYPE = models.TextNodeType('obsolete') -_OWNER_TYPE = models.TextNodeType('owner', single_line=True) -_ID_TYPE = models.TextNodeType('id', single_line=True) -_SUMMARY_TYPE = models.TextNodeType('summary') -_METRIC_TYPE = models.ObjectNodeType( - 'metric', - attributes=[ - ('name', unicode, r'^[A-Za-z0-9_.]+$'), - ('kind', unicode, r'^(?i)(|hashed-string|int)$'), - ], - alphabetization=[ - (_OBSOLETE_TYPE.tag, lambda _: 1), - (_SUMMARY_TYPE.tag, lambda _: 2), - ], - children=[ - models.ChildType(_OBSOLETE_TYPE.tag, _OBSOLETE_TYPE, multiple=False), - models.ChildType(_OWNER_TYPE.tag, _OWNER_TYPE, multiple=True), - models.ChildType(_SUMMARY_TYPE.tag, _SUMMARY_TYPE, multiple=False), - ]) +# TODO(crbug.com/1148168): This can be removed and replaced with textwrap.indent +# once this is run under python3. +def indent(text, prefix): + return '\n'.join(prefix + line if line else '' for line in text.split('\n')) -_EVENT_TYPE = models.ObjectNodeType('event', - attributes=[('name', unicode, r'^[A-Z][A-Za-z0-9.]*$'),], - alphabetization=[ - (_OBSOLETE_TYPE.tag, lambda _: 1), - (_OWNER_TYPE.tag, lambda _: 2), - (_SUMMARY_TYPE.tag, lambda _: 3), - (_METRIC_TYPE.tag, - _LOWERCASE_FN('name')), - ], - extra_newlines=(1, 1, 1), - children=[ - models.ChildType(_OBSOLETE_TYPE.tag, _OBSOLETE_TYPE, multiple=False), - models.ChildType(_OWNER_TYPE.tag, _OWNER_TYPE, multiple=True), - models.ChildType(_SUMMARY_TYPE.tag, _SUMMARY_TYPE, multiple=False), - models.ChildType(_METRIC_TYPE.tag, _METRIC_TYPE, multiple=True), - ]) -_PROJECT_TYPE = models.ObjectNodeType('project', - attributes=[ - ('name', unicode, r'^[A-Z][A-Za-z0-9.]*$'), - ], - alphabetization=[ - (_OBSOLETE_TYPE.tag, lambda _: 1), - (_OWNER_TYPE.tag, lambda _: 2), - (_ID_TYPE.tag, lambda _: 3), - (_SUMMARY_TYPE.tag, lambda _: 4), - ], - extra_newlines=(1, 1, 1), - children=[ - models.ChildType(_OBSOLETE_TYPE.tag, _OBSOLETE_TYPE, multiple=False), - models.ChildType(_OWNER_TYPE.tag, _OWNER_TYPE, multiple=True), - models.ChildType(_ID_TYPE.tag, _ID_TYPE, multiple=False), - models.ChildType(_SUMMARY_TYPE.tag, _SUMMARY_TYPE, multiple=False), - models.ChildType(_EVENT_TYPE.tag, _EVENT_TYPE, multiple=True), - ]) +class Model: + """Represents all projects in the structured.xml file. -CONFIGURATION_TYPE = models.ObjectNodeType( - 'structured-metrics', - alphabetization=[(_PROJECT_TYPE.tag, _LOWERCASE_FN('name'))], - extra_newlines=(2, 1, 1), - indent=False, - children=[ - models.ChildType(_PROJECT_TYPE.tag, _PROJECT_TYPE, multiple=True), - ]) + A Model is initialized with an XML string representing the top-level of + the structured.xml file. This file is built from three building blocks: + metrics, events, and projects. These have the following attributes. -XML_TYPE = models.DocumentType(CONFIGURATION_TYPE) + METRIC + - summary + - data type -def PrettifyXML(original_xml): - """Parses the original xml and return a pretty printed version. + EVENT + - summary + - one or more metrics - Args: - original_xml: A string containing the original xml file contents. + PROJECT + - summary + - id specifier + - one or more owners + - one or more events - Returns: - A pretty-printed xml string, or None if the config contains errors. + The following is an example input XML. + + <structured-metrics> + <project name="MyProject"> + <owner>owner@chromium.org</owner> + <id>none</id> + <summary> My project. </summary> + + <event name="MyEvent"> + <summary> My event. </summary> + <metric name="MyMetric" type="int"> + <summary> My metric. </summary> + </metric> + </event> + </project> + </structured-metrics> + + Calling str(model) will return a canonically formatted XML string. """ - config = XML_TYPE.Parse(original_xml) - return XML_TYPE.PrettyPrint(config) + + OWNER_REGEX = r'^.+@(chromium\.org|google\.com)$' + NAME_REGEX = r'^[A-Za-z0-9_.]+$' + TYPE_REGEX = r'^(hmac-string|int)$' + ID_REGEX = r'^(none|per-project|uma)$' + + def __init__(self, xml_string): + elem = ET.fromstring(xml_string) + util.check_attributes(elem, set()) + util.check_children(elem, {'project'}) + util.check_child_names_unique(elem, 'project') + + projects = util.get_compound_children(elem, 'project') + self.projects = [Project(p) for p in projects] + + def __repr__(self): + projects = '\n\n'.join(str(p) for p in self.projects) + + result = tw.dedent("""\ + <structured-metrics> + + {projects} + + </structured-metrics>""") + return result.format(projects=projects) + + +class Project: + """Represents a single structured metrics project. + + A Project is initialized with an XML node representing one project, eg: + + <project name="MyProject"> + <owner>owner@chromium.org</owner> + <id>none</id> + <summary> My project. </summary> + + <event name="MyEvent"> + <summary> My event. </summary> + <metric name="MyMetric" type="int"> + <summary> My metric. </summary> + </metric> + </event> + </project> + + Calling str(project) will return a canonically formatted XML string. + """ + + def __init__(self, elem): + util.check_attributes(elem, {'name'}) + util.check_children(elem, {'id', 'summary', 'owner', 'event'}) + util.check_child_names_unique(elem, 'event') + + self.name = util.get_attr(elem, 'name', Model.NAME_REGEX) + self.id = util.get_text_child(elem, 'id', Model.ID_REGEX) + self.summary = util.get_text_child(elem, 'summary') + self.owners = util.get_text_children(elem, 'owner', Model.OWNER_REGEX) + + self.events = [Event(e) for e in util.get_compound_children(elem, 'event')] + + def __repr__(self): + events = '\n\n'.join(str(e) for e in self.events) + events = indent(events, ' ') + summary = wrap(self.summary, indent=' ') + owners = '\n'.join(' <owner>{}</owner>'.format(o) for o in self.owners) + + result = tw.dedent("""\ + <project name="{name}"> + {owners} + <id>{id}</id> + <summary> + {summary} + </summary> + + {events} + </project>""") + return result.format(name=self.name, + owners=owners, + id=self.id, + summary=summary, + events=events) + + +class Event: + """Represents a single structured metrics event. + + An Event is initialized with an XML node representing one event, eg: + + <event name="MyEvent"> + <summary> My event. </summary> + <metric name="MyMetric" type="int"> + <summary> My metric. </summary> + </metric> + </event> + + Calling str(event) will return a canonically formatted XML string. + """ + + def __init__(self, elem): + util.check_attributes(elem, {'name'}) + util.check_children(elem, {'summary', 'metric'}) + util.check_child_names_unique(elem, 'metric') + + self.name = util.get_attr(elem, 'name', Model.NAME_REGEX) + self.summary = util.get_text_child(elem, 'summary') + self.metrics = [ + Metric(m) for m in util.get_compound_children(elem, 'metric') + ] + + def __repr__(self): + metrics = '\n'.join(str(m) for m in self.metrics) + metrics = indent(metrics, ' ') + summary = wrap(self.summary, indent=' ') + result = tw.dedent("""\ + <event name="{name}"> + <summary> + {summary} + </summary> + {metrics} + </event>""") + return result.format(name=self.name, summary=summary, metrics=metrics) + + +class Metric: + """Represents a single metric. + + A Metric is initialized with an XML node representing one metric, eg: + + <metric name="MyMetric" type="int"> + <summary> My metric. </summary> + </metric> + + Calling str(metric) will return a canonically formatted XML string. + """ + + def __init__(self, elem): + util.check_attributes(elem, {'name', 'type'}) + util.check_children(elem, {'summary'}) + + self.name = util.get_attr(elem, 'name', Model.NAME_REGEX) + self.type = util.get_attr(elem, 'type', Model.TYPE_REGEX) + self.summary = util.get_text_child(elem, 'summary') + + def __repr__(self): + summary = wrap(self.summary, indent=' ') + result = tw.dedent("""\ + <metric name="{name}" type="{type}"> + <summary> + {summary} + </summary> + </metric>""") + return result.format(name=self.name, type=self.type, summary=summary)
diff --git a/tools/metrics/structured/model_unittest.py b/tools/metrics/structured/model_unittest.py new file mode 100755 index 0000000..aac8a10 --- /dev/null +++ b/tools/metrics/structured/model_unittest.py
@@ -0,0 +1,299 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +# 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. +"""Tests for model.py. +""" + +# TODO(crbug.com/1148168): Set up these tests to run on the tryjobs. + +import unittest +from model import Model + + +class ModelTest(unittest.TestCase): + """Tests for model.py""" + + def assert_project(self, project, name, id_, summary, owners): + self.assertEqual(project.name, name) + self.assertEqual(project.id, id_) + self.assertEqual(project.summary.strip(), summary) + self.assertEqual(len(project.owners), len(owners)) + for actual, expected in zip(project.owners, owners): + self.assertEqual(actual, expected) + + def assert_event(self, event, name, summary): + self.assertEqual(event.name, name) + self.assertEqual(event.summary.strip(), summary) + + def assert_metric(self, metric, name, type_, summary): + self.assertEqual(metric.name, name) + self.assertEqual(metric.type, type_) + self.assertEqual(metric.summary.strip(), summary) + + def assert_model_raises(self, xml): + raised = False + try: + Model(xml) + except ValueError: + raised = True + self.assertTrue(raised) + + def test_valid_xml(self): + xml = """\ + <structured-metrics> + <project name="ProjectOne"> + <owner>test1@chromium.org</owner> + <owner>test2@chromium.org</owner> + <id>none</id> + <summary> Test project. </summary> + + <event name="EventOne"> + <summary> Test event. </summary> + <metric name="MetricOne" type="int"> + <summary> Test metric. </summary> + </metric> + <metric name="MetricTwo" type="hmac-string"> + <summary> Test metric. </summary> + </metric> + </event> + + <event name="EventTwo"> + <summary> Test event. </summary> + <metric name="MetricThree" type="int"> + <summary> Test metric. </summary> + </metric> + </event> + </project> + + <project name="ProjectTwo"> + <owner>test@chromium.org</owner> + <id>uma</id> + <summary> Test project. </summary> + + <event name="EventThree"> + <summary> Test event. </summary> + <metric name="MetricFour" type="int"> + <summary> Test metric. </summary> + </metric> + </event> + </project> + </structured-metrics>""" + + data = Model(xml) + + self.assertEqual(len(data.projects), 2) + project_one, project_two = data.projects + self.assert_project(project_one, 'ProjectOne', 'none', 'Test project.', + ('test1@chromium.org', 'test2@chromium.org')) + self.assert_project(project_two, 'ProjectTwo', 'uma', 'Test project.', + ('test@chromium.org', )) + + self.assertEqual(len(project_one.events), 2) + self.assertEqual(len(project_two.events), 1) + event_one, event_two = project_one.events + event_three, = project_two.events + self.assert_event(event_one, 'EventOne', 'Test event.') + self.assert_event(event_two, 'EventTwo', 'Test event.') + self.assert_event(event_three, 'EventThree', 'Test event.') + + self.assertEqual(len(event_one.metrics), 2) + self.assertEqual(len(event_two.metrics), 1) + self.assertEqual(len(event_three.metrics), 1) + metric_one, metric_two = event_one.metrics + metric_three, = event_two.metrics + metric_four, = event_three.metrics + self.assert_metric(metric_one, 'MetricOne', 'int', 'Test metric.') + self.assert_metric(metric_two, 'MetricTwo', 'hmac-string', 'Test metric.') + self.assert_metric(metric_three, 'MetricThree', 'int', 'Test metric.') + self.assert_metric(metric_four, 'MetricFour', 'int', 'Test metric.') + + def test_owners_validation(self): + # No owner for project. + self.assert_model_raises("""\ + <structured-metrics> + <project name="project"> + <id>uma</id> + <summary> Test project. </summary> + <event name="EventThree"> + <summary> Test event. </summary> + <metric name="MetricFour" type="int"> + <summary> Test metric. </summary> + </metric> + </event> + </project> + </structured-metrics>""") + + # Owner is username not email. + self.assert_model_raises("""\ + <structured-metrics> + <project name="project"> + <owner>test@</owner> + <id>uma</id> + <summary> Test project. </summary> + <event name="EventThree"> + <summary> Test event. </summary> + <metric name="MetricFour" type="int"> + <summary> Test metric. </summary> + </metric> + </event> + </project> + </structured-metrics>""") + + def test_id_validation(self): + # Missing ID + self.assert_model_raises("""\ + <structured-metrics> + <project name="MyProject"> + <owner>test@chromium.org</owner> + <summary> Test project. </summary> + <event name="MyEvent"> + <summary> Test event. </summary> + <metric name="MyMetric" type="int"> + <summary> Test metric. </summary> + </metric> + </event> + </project> + </structured-metrics>""") + + # Invalid ID + self.assert_model_raises("""\ + <structured-metrics> + <project name="MyProject"> + <owner>test@chromium.org</owner> + <id>invalid value</id> + <summary> Test project. </summary> + <event name="MyEvent"> + <summary> Test event. </summary> + <metric name="MyMetric" type="int"> + <summary> Test metric. </summary> + </metric> + </event> + </project> + </structured-metrics>""") + + def test_type_validation(self): + # Missing type + self.assert_model_raises("""\ + <structured-metrics> + <project name="MyProject"> + <owner>test@chromium.org</owner> + <id>none</id> + <summary> Test project. </summary> + <event name="MyEvent"> + <summary> Test event. </summary> + <metric name="MyMetric"> + <summary> Test metric. </summary> + </metric> + </event> + </project> + </structured-metrics>""") + + # Invalid type + self.assert_model_raises("""\ + <structured-metrics> + <project name="MyProject"> + <owner>test@chromium.org</owner> + <id>none</id> + <summary> Test project. </summary> + <event name="MyEvent"> + <summary> Test event. </summary> + <metric name="MyMetric" type="invalid value"> + <summary> Test metric. </summary> + </metric> + </event> + </project> + </structured-metrics>""") + + def test_duplicate_summaries(self): + self.assert_model_raises("""\ + <structured-metrics> + <project name="MyProject"> + <owner>test@chromium.org</owner> + <id>none</id> + <summary> Test project. </summary> + <summary> Test project. </summary> + <event name="MyEvent"> + <summary> Test event. </summary> + <metric name="MyMetric" type="int"> + <summary> Test metric. </summary> + </metric> + </event> + </project> + </structured-metrics>""") + + def test_duplicate_project_names(self): + # Two projects with name "Duplicate" + self.assert_model_raises("""\ + <structured-metrics> + <project name="Duplicate"> + <owner>test@</owner> + <id>uma</id> + <summary> Test project. </summary> + <event name="MyEvent"> + <summary> Test event. </summary> + <metric name="MyMetric" type="int"> + <summary> Test metric. </summary> + </metric> + </event> + </project> + <project name="Duplicate"> + <owner>test@</owner> + <id>uma</id> + <summary> Test project. </summary> + <event name="MyEvent"> + <summary> Test event. </summary> + <metric name="MyMetric" type="int"> + <summary> Test metric. </summary> + </metric> + </event> + </project> + </structured-metrics>""") + + def test_duplicate_event_names(self): + # Two events with name "Duplicate" + self.assert_model_raises("""\ + <structured-metrics> + <project name="MyProject"> + <owner>test@</owner> + <id>uma</id> + <summary> Test project. </summary> + <event name="Duplicate"> + <summary> Test event. </summary> + <metric name="MyMetric" type="int"> + <summary> Test metric. </summary> + </metric> + </event> + <event name="Duplicate"> + <summary> Test event. </summary> + <metric name="MyMetric" type="int"> + <summary> Test metric. </summary> + </metric> + </event> + </project> + </structured-metrics>""") + + def test_duplicate_metric_names(self): + # Two metrics with name "Duplicate" + self.assert_model_raises("""\ + <structured-metrics> + <project name="MyProject"> + <owner>test@</owner> + <id>uma</id> + <summary> Test project. </summary> + <event name="MyEvent"> + <summary> Test event. </summary> + <metric name="Duplicate" type="int"> + <summary> Test metric. </summary> + </metric> + <metric name="Duplicate" type="int"> + <summary> Test metric. </summary> + </metric> + </event> + </project> + </structured-metrics>""") + + +if __name__ == '__main__': + unittest.main()
diff --git a/tools/metrics/structured/model_util.py b/tools/metrics/structured/model_util.py new file mode 100644 index 0000000..af1afc4 --- /dev/null +++ b/tools/metrics/structured/model_util.py
@@ -0,0 +1,127 @@ +# -*- coding: utf-8 -*- +# 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. +"""Utilities for parsing structured.xml. + +Functions in this module raise an error if constraints on the format of the +structured.xml file are not met. + +Functions use the concept of 'compound' and 'text' XML nodes. + - compound nodes can have attributes and child nodes, but no text + - text nodes can have text, but no attributes or child nodes +""" + +import collections +import re + + +def error(elem, msg): + """Raise a nicely formatted error with some context.""" + name = elem.attrib.get('name', None) + name = name + ' ' if name else '' + msg = 'Structured metrics error, {} node {}{}.'.format(elem.tag, name, msg) + raise ValueError(msg) + + +def get_attr(elem, tag, regex=None): + """Get an attribute. + + Error if it is missing, optionally error if it doesn't match the provided + regex. + """ + attr = elem.attrib.get(tag, None) + if not attr: + error(elem, "missing attribute '{}'".format(tag)) + if regex and not re.match(regex, attr): + error(elem, ("has '{}' attribute '{}' which does " + "not match regex '{}'").format(tag, attr, regex)) + return attr + + +def get_compound_children(elem, tag): + """Get all child nodes of `elem` with tag `tag`. + + Error if none exist, or a child is not a compound node. + """ + children = elem.findall(tag) + if not children: + error(elem, "missing node '{}'".format(tag)) + for child in children: + if child.text and child.text.strip(): + error(child, "contains text, but shouldn't") + return children + + +def get_compound_child(elem, tag): + """Get the child of `elem` with tag `tag`. + + Error if there isn't exactly one matching child, or it isn't compound. + """ + children = elem.findall(tag) + if len(children) != 1: + error(elem, "needs exactly one '{}' node".format(tag)) + return children[0] + + +def get_text_children(elem, tag, regex=None): + """Get the text of all child nodes of `elem` with tag `tag`. + + Error if none exist, or a child is not a text node. Optionally ensure the + text matches `regex`. + """ + children = elem.findall(tag) + if not children: + error(elem, "missing node '{}'".format(tag)) + + result = [] + for child in children: + check_attributes(child, set()) + check_children(child, set()) + text = child.text.strip() + if not text: + error(elem, "missing text in '{}'".format(tag)) + if regex and not re.match(regex, text): + error(elem, ("has '{}' node '{}' which does " + "not match regex '{}'").format(tag, text, regex)) + result.append(text) + return result + + +def get_text_child(elem, tag, regex=None): + """Get the text of the child of `elem` with tag `tag`. + + Error if there isn't exactly one matching child, or it isn't a text node. + Optionally ensure the text matches `regex`. + """ + result = get_text_children(elem, tag, regex) + if len(result) != 1: + error(elem, "needs exactly one '{}' node".format(tag)) + return result[0] + + +def check_attributes(elem, expected_attrs): + """Ensure `elem` has no attributes except those in `expected_attrs`.""" + actual_attrs = set(elem.attrib.keys()) + unexpected_attrs = actual_attrs - set(expected_attrs) + if unexpected_attrs: + attrs = ' '.join(unexpected_attrs) + error(elem, 'has unexpected attributes: ' + attrs) + + +def check_children(elem, expected_children): + """Ensure `elem` has no children without tags in `expected_children`.""" + actual_children = {child.tag for child in elem} + unexpected_children = actual_children - set(expected_children) + if unexpected_children: + children = ' '.join(unexpected_children) + error(elem, 'has unexpected nodes: ' + children) + + +def check_child_names_unique(elem, tag): + """Ensure uniqueness of the 'name' of all children of `elem` with `tag`.""" + names = [child.attrib.get('name', None) for child in elem if child.tag == tag] + name_counts = collections.Counter(names) + has_duplicates = any(c > 1 for c in name_counts.values()) + if has_duplicates: + error(elem, 'has {} nodes with duplicate names'.format(tag))
diff --git a/tools/metrics/structured/pretty_print.py b/tools/metrics/structured/pretty_print.py index 105f6f2..749695f 100755 --- a/tools/metrics/structured/pretty_print.py +++ b/tools/metrics/structured/pretty_print.py
@@ -12,8 +12,11 @@ import presubmit_util def main(argv): - presubmit_util.DoPresubmitMain(argv, 'structured.xml', 'structured.old.xml', - model.PrettifyXML) + dirname = os.path.dirname(os.path.realpath(__file__)) + xml = dirname + '/structured.xml' + old_xml = dirname + '/structured.old.xml' + presubmit_util.DoPresubmitMain(argv, xml, + old_xml, lambda x: repr(model.Model(x))) if '__main__' == __name__:
diff --git a/tools/metrics/structured/structured.xml b/tools/metrics/structured/structured.xml index bf8c45b..db1cd99a 100644 --- a/tools/metrics/structured/structured.xml +++ b/tools/metrics/structured/structured.xml
@@ -1,5 +1,3 @@ -<!-- Structured metrics is under development and isn't available for use yet. --> - <structured-metrics> <project name="Hindsight"> @@ -9,26 +7,27 @@ <summary> Project for recording CrOSActions. </summary> + <event name="CrOSActionEvent.FileOpened"> <summary> Records whenever a file is opened in the File App on ChromeOS. </summary> - <metric name="Filename" kind="hashed-string"> + <metric name="Filename" type="hmac-string"> <summary> The absolute path of the file. </summary> </metric> - <metric name="OpenType" kind="int"> + <metric name="OpenType" type="int"> <summary> - The kind of file open, defined in FileTaskObserver::OpenType. + The type of file open, defined in FileTaskObserver::OpenType. </summary> </metric> - <metric name="SequenceId" kind="int"> + <metric name="SequenceId" type="int"> <summary> Sequence of this action across all CrOSActionEvent. </summary> </metric> - <metric name="TimeSinceLastAction" kind="int"> + <metric name="TimeSinceLastAction" type="int"> <summary> Time in milliseconds since last CrOSActionLogging. </summary> @@ -39,62 +38,66 @@ <summary> Records information about the launch of an item from ChromeOS launcher. </summary> - <metric name="Query" kind="hashed-string"> + <metric name="Query" type="hmac-string"> <summary> The search query associated with this launch. </summary> </metric> - <metric name="ResultType" kind="int"> + <metric name="ResultType" type="int"> <summary> - Which kind of search provider the launched result was created by. + Which type of search provider the launched result was created by. </summary> </metric> - <metric name="SearchResultId" kind="hashed-string"> + <metric name="SearchResultId" type="hmac-string"> <summary> The ID of the launched result result. For example, the app ID for app results, or the URL for omnibox results. </summary> </metric> - <metric name="SequenceId" kind="int"> + <metric name="SequenceId" type="int"> <summary> Sequence of this action across all CrOSActionEvent. </summary> </metric> - <metric name="TimeSinceLastAction" kind="int"/> + <metric name="TimeSinceLastAction" type="int"> + <summary> + Time in milliseconds since last CrOSActionLogging. + </summary> + </metric> </event> <event name="CrOSActionEvent.SettingChanged"> <summary> Records when a setting is changed; only records quick settings for now. </summary> - <metric name="CurrentValue" kind="int"> + <metric name="CurrentValue" type="int"> <summary> Value of the setting after the change. </summary> </metric> - <metric name="PreviousValue" kind="int"> + <metric name="PreviousValue" type="int"> <summary> Value of the setting before the change. </summary> </metric> - <metric name="SequenceId" kind="int"> + <metric name="SequenceId" type="int"> <summary> Sequence of this action across all CrOSActionEvent. </summary> </metric> - <metric name="SettingId" kind="int"> + <metric name="SettingId" type="int"> <summary> The setting id (in ash::ml::UserSettingsEvent::Event::SettingId) that represents the type of the changed setting. </summary> </metric> - <metric name="SettingType" kind="int"> + <metric name="SettingType" type="int"> <summary> Enum that represents where the settings event originated from (in ash::ml::UserSettingsEvent::Event::SettingType). </summary> </metric> - <metric name="TimeSinceLastAction" kind="int"> + <metric name="TimeSinceLastAction" type="int"> <summary> Time in milliseconds since last CrOSActionLogging. </summary> @@ -105,27 +108,27 @@ <summary> Records a tab activity of navigating to a new url. </summary> - <metric name="PageTransition" kind="int"> + <metric name="PageTransition" type="int"> <summary> The types of transition between pages. See more on ui::PageTransition. </summary> </metric> - <metric name="SequenceId" kind="int"> + <metric name="SequenceId" type="int"> <summary> Sequence of this action across all CrOSActionEvent. </summary> </metric> - <metric name="TimeSinceLastAction" kind="int"> + <metric name="TimeSinceLastAction" type="int"> <summary> Time in milliseconds since last CrOSActionLogging. </summary> </metric> - <metric name="URL" kind="hashed-string"> + <metric name="URL" type="hmac-string"> <summary> The URL of the current event. </summary> </metric> - <metric name="Visibility" kind="int"> + <metric name="Visibility" type="int"> <summary> The visibility of this url, see more on content::Visibility. </summary> @@ -136,27 +139,27 @@ <summary> Records a tab activity of opening a new url with ctrl+click. </summary> - <metric name="SequenceId" kind="int"> + <metric name="SequenceId" type="int"> <summary> Sequence of this action across all CrOSActionEvent. </summary> </metric> - <metric name="TimeSinceLastAction" kind="int"> + <metric name="TimeSinceLastAction" type="int"> <summary> Time in milliseconds since last CrOSActionLogging. </summary> </metric> - <metric name="URL" kind="hashed-string"> + <metric name="URL" type="hmac-string"> <summary> The URL of the current event. </summary> </metric> - <metric name="URLOpened" kind="hashed-string"> + <metric name="URLOpened" type="hmac-string"> <summary> The URL that is opened from the current url. </summary> </metric> - <metric name="WindowOpenDisposition" kind="int"> + <metric name="WindowOpenDisposition" type="int"> <summary> Enum that indicates where the new tab is opened, see more on WindowOpenDisposition. @@ -168,23 +171,22 @@ <summary> Records a tab activity of reactivating an existing tab. </summary> - <metric name="SequenceId" kind="int"> + <metric name="SequenceId" type="int"> <summary> Sequence of this action across all CrOSActionEvent. </summary> </metric> - <metric name="TimeSinceLastAction" kind="int"> + <metric name="TimeSinceLastAction" type="int"> <summary> Time in milliseconds since last CrOSActionLogging. </summary> </metric> - <metric name="URL" kind="hashed-string"> + <metric name="URL" type="hmac-string"> <summary> The URL of the current event. </summary> </metric> </event> - </project> <project name="LauncherUsage"> @@ -193,6 +195,7 @@ <summary> See event summary. </summary> + <event name="LauncherUsage"> <summary> Records information about the launch of an item (such as an app or a file) @@ -200,48 +203,47 @@ originating from any launcher UI component, and this is the only circumstance that records events. </summary> - <metric name="App" kind="hashed-string"> + <metric name="App" type="hmac-string"> <summary> - App ID of the most-recently-opened app when this launch occured. This - can be an app ID of a Chrome app, Arc++ app, or PWA. + App ID of the most-recently-opened app when this launch occured. This can be + an app ID of a Chrome app, Arc++ app, or PWA. </summary> </metric> - <metric name="Domain" kind="hashed-string"> + <metric name="Domain" type="hmac-string"> <summary> The most-recently-visited domain when this launch ocurred. </summary> </metric> - <metric name="Hour" kind="int"> + <metric name="Hour" type="int"> <summary> The hour of launch. This is the user's local time rounded to the nearest hour, 0 to 23 inclusive. </summary> </metric> - <metric name="ProviderType" kind="int"> + <metric name="ProviderType" type="int"> <summary> - Which kind of search provider the launched result was created by. This - comes from the RankingItemType enum. + Which type of search provider the launched result was created by. This comes + from the RankingItemType enum. </summary> </metric> - <metric name="SearchQuery" kind="hashed-string"> + <metric name="SearchQuery" type="hmac-string"> <summary> - The search query associated with this launch. Before hashing, the query - is the empty string if there was no search query. + The search query associated with this launch. Before hashing, the query is + the empty string if there was no search query. </summary> </metric> - <metric name="SearchQueryLength" kind="int"> + <metric name="SearchQueryLength" type="int"> <summary> - String length of the search query associated with this launch. If there - was no query, this is zero. + String length of the search query associated with this launch. If there was + no query, this is zero. </summary> </metric> - <metric name="Target" kind="hashed-string"> + <metric name="Target" type="hmac-string"> <summary> The target item of this launch, eg. an app ID, filepath, or omnibox URL. </summary> </metric> </event> - </project> <project name="TestProjectOne"> @@ -250,22 +252,22 @@ <summary> Project for unit testing, do not use. </summary> + <event name="TestEventOne"> <summary> Event for unit testing, do not use. </summary> - <metric name="TestMetricOne" kind="hashed-string"> + <metric name="TestMetricOne" type="hmac-string"> <summary> A per-user keyed hashed value. </summary> </metric> - <metric name="TestMetricTwo" kind="int"> + <metric name="TestMetricTwo" type="int"> <summary> An unhashed value, recorded as-is. </summary> </metric> </event> - </project> <project name="TestProjectTwo"> @@ -274,11 +276,12 @@ <summary> Project for unit testing, do not use. </summary> + <event name="TestEventThree"> <summary> Event for unit testing, do not use. </summary> - <metric name="TestMetricFour" kind="hashed-string"> + <metric name="TestMetricFour" type="hmac-string"> <summary> A per-user keyed hashed value. </summary> @@ -289,13 +292,12 @@ <summary> Event for unit testing, do not use. </summary> - <metric name="TestMetricThree" kind="hashed-string"> + <metric name="TestMetricThree" type="hmac-string"> <summary> A per-user keyed hashed value. </summary> </metric> </event> - </project> -</structured-metrics> +</structured-metrics> \ No newline at end of file
diff --git a/tools/metrics/structured/events_template.py b/tools/metrics/structured/templates.py similarity index 67% rename from tools/metrics/structured/events_template.py rename to tools/metrics/structured/templates.py index d1d35c1..0b18e35de 100644 --- a/tools/metrics/structured/events_template.py +++ b/tools/metrics/structured/templates.py
@@ -1,15 +1,9 @@ -# Copyright 2019 The Chromium Authors. All rights reserved. +# -*- coding: utf-8 -*- +# Copyright 2020 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. - """Templates for generating event classes for structured metrics.""" -import codegen - -######## -# HEADER -######## - HEADER_FILE_TEMPLATE = """\ // Generated from gen_events.py. DO NOT EDIT! // source: structured.xml @@ -26,7 +20,7 @@ namespace structured {{ namespace events {{ -constexpr uint64_t kProjectNameHashes[] = {project_name_hashes}; +constexpr uint64_t kProjectNameHashes[] = {project_hashes}; {project_code} @@ -66,21 +60,12 @@ """ -HEADER = codegen.Template(basename="structured_events.h", - file_template=HEADER_FILE_TEMPLATE, - project_template=HEADER_PROJECT_TEMPLATE, - event_template=HEADER_EVENT_TEMPLATE, - metric_template=HEADER_METRIC_TEMPLATE) - -###### -# IMPL -###### - IMPL_FILE_TEMPLATE = """\ // Generated from gen_events.py. DO NOT EDIT! // source: structured.xml -#include "{file.dir_path}/structured_events.h" +// #include "{file.dirname}/structured_events.h" +#include "components/metrics/structured/structured_events.h" namespace metrics {{ namespace structured {{ @@ -113,14 +98,3 @@ }} """ - -IMPL = codegen.Template(basename="structured_events.cc", - file_template=IMPL_FILE_TEMPLATE, - project_template=IMPL_PROJECT_TEMPLATE, - event_template=IMPL_EVENT_TEMPLATE, - metric_template=IMPL_METRIC_TEMPLATE) - - -def WriteFiles(outdir, relpath, data): - HEADER.WriteFile(outdir, relpath, data) - IMPL.WriteFile(outdir, relpath, data)
diff --git a/tools/metrics/structured/validate_format.py b/tools/metrics/structured/validate_format.py deleted file mode 100755 index 1bb39c89..0000000 --- a/tools/metrics/structured/validate_format.py +++ /dev/null
@@ -1,78 +0,0 @@ -#!/usr/bin/env python -# Copyright 2019 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. -"""Verifies that the structured.xml file is well-formatted.""" - -import os -import re -import sys -from xml.dom import minidom - -sys.path.append(os.path.join(os.path.dirname(__file__), '..', 'common')) -import path_util - -STRUCTURED_XML = path_util.GetInputFile(('tools/metrics/structured/' - 'structured.xml')) - - -def checkElementOwners(config, element_tag): - """Check that every element with the given tag has at least one owner.""" - errors = [] - - for node in config.getElementsByTagName(element_tag): - name = node.getAttribute('name') - owner_nodes = node.getElementsByTagName('owner') - - # Check <owner> tag is present for each element. - if not owner_nodes: - errors.append( - "<owner> tag is required for %s '%s'." % (element_tag, name)) - continue - - for owner_node in owner_nodes: - # Check <owner> tag actually has some content. - if not owner_node.childNodes: - errors.append("<owner> tag for '%s' should not be empty." % name) - for email in owner_node.childNodes: - # Check <owner> tag's content is an email address, not a username. - if not re.match('^.+@(chromium\.org|google\.com)$', email.data): - errors.append("<owner> tag for %s '%s' expects a Chromium or " - "Google email address, instead found '%s'." % - (element_tag, name, email.data.strip())) - - return errors - - -def checkElementsNotDuplicated(config, element_tag): - errors = [] - elements = set() - - for node in config.getElementsByTagName(element_tag): - name = node.getAttribute('name') - # Check for duplicate names. - if name in elements: - errors.append("duplicate %s name '%s'" % (element_tag, name)) - elements.add(name) - - return errors - - -def main(): - with open(STRUCTURED_XML, 'r') as config_file: - document = minidom.parse(config_file) - [config] = document.getElementsByTagName('structured-metrics') - errors = [] - - errors.extend(checkElementOwners(config, 'project')) - errors.extend(checkElementsNotDuplicated(config, 'project')) - for project in document.getElementsByTagName('project'): - errors.extend(checkElementsNotDuplicated(project, 'event')) - for event in project.getElementsByTagName('event'): - errors.extend(checkElementsNotDuplicated(event, 'metric')) - - if errors: - return 'ERRORS:' + ''.join('\n ' + e for e in errors) - -if __name__ == '__main__': - sys.exit(main())
diff --git a/tools/perf/core/shard_maps/timing_data/android-pixel2-perf_timing.json b/tools/perf/core/shard_maps/timing_data/android-pixel2-perf_timing.json index 645bc2a..ffd5b60e 100644 --- a/tools/perf/core/shard_maps/timing_data/android-pixel2-perf_timing.json +++ b/tools/perf/core/shard_maps/timing_data/android-pixel2-perf_timing.json
@@ -900,14 +900,6 @@ "name": "blink_perf.owp_storage/idb-load-docs.html" }, { - "duration": "27.0", - "name": "blink_perf.owp_storage/idb-put-all.html" - }, - { - "duration": "33.0", - "name": "blink_perf.owp_storage/idb-put.html" - }, - { "duration": "18.0", "name": "blink_perf.paint/appending-text.html" },
diff --git a/tools/perf/core/shard_maps/timing_data/android-pixel2_webview-perf_timing.json b/tools/perf/core/shard_maps/timing_data/android-pixel2_webview-perf_timing.json index 586ee29..c0210291 100644 --- a/tools/perf/core/shard_maps/timing_data/android-pixel2_webview-perf_timing.json +++ b/tools/perf/core/shard_maps/timing_data/android-pixel2_webview-perf_timing.json
@@ -900,14 +900,6 @@ "name": "blink_perf.owp_storage/idb-load-docs.html" }, { - "duration": "25.0", - "name": "blink_perf.owp_storage/idb-put-all.html" - }, - { - "duration": "30.0", - "name": "blink_perf.owp_storage/idb-put.html" - }, - { "duration": "13.0", "name": "blink_perf.paint/appending-text.html" },
diff --git a/tools/perf/core/shard_maps/timing_data/android_nexus5x_webview_perf_timing.json b/tools/perf/core/shard_maps/timing_data/android_nexus5x_webview_perf_timing.json index c2b9874..fabd982 100644 --- a/tools/perf/core/shard_maps/timing_data/android_nexus5x_webview_perf_timing.json +++ b/tools/perf/core/shard_maps/timing_data/android_nexus5x_webview_perf_timing.json
@@ -900,14 +900,6 @@ "name": "blink_perf.owp_storage/idb-load-docs.html" }, { - "duration": "50.0", - "name": "blink_perf.owp_storage/idb-put-all.html" - }, - { - "duration": "56.0", - "name": "blink_perf.owp_storage/idb-put.html" - }, - { "duration": "0.0", "name": "blink_perf.paint/appending-text.html" },
diff --git a/tools/perf/core/shard_maps/timing_data/linux-perf_timing.json b/tools/perf/core/shard_maps/timing_data/linux-perf_timing.json index 896dee5..c16167d 100644 --- a/tools/perf/core/shard_maps/timing_data/linux-perf_timing.json +++ b/tools/perf/core/shard_maps/timing_data/linux-perf_timing.json
@@ -900,14 +900,6 @@ "name": "blink_perf.owp_storage/idb-load-docs.html" }, { - "duration": "10.0", - "name": "blink_perf.owp_storage/idb-put-all.html" - }, - { - "duration": "12.0", - "name": "blink_perf.owp_storage/idb-put.html" - }, - { "duration": "9.0", "name": "blink_perf.paint/appending-text.html" },
diff --git a/tools/perf/core/shard_maps/timing_data/mac-10_12_laptop_low_end-perf_timing.json b/tools/perf/core/shard_maps/timing_data/mac-10_12_laptop_low_end-perf_timing.json index 0b7725c..5aad3fd 100644 --- a/tools/perf/core/shard_maps/timing_data/mac-10_12_laptop_low_end-perf_timing.json +++ b/tools/perf/core/shard_maps/timing_data/mac-10_12_laptop_low_end-perf_timing.json
@@ -940,14 +940,6 @@ "name": "blink_perf.owp_storage/idb-load-docs.html" }, { - "duration": "35.0", - "name": "blink_perf.owp_storage/idb-put-all.html" - }, - { - "duration": "38.0", - "name": "blink_perf.owp_storage/idb-put.html" - }, - { "duration": "15.0", "name": "blink_perf.paint/appending-text.html" },
diff --git a/tools/perf/core/shard_maps/timing_data/mac-10_13_laptop_high_end-perf_timing.json b/tools/perf/core/shard_maps/timing_data/mac-10_13_laptop_high_end-perf_timing.json index e293fa3..0cfcc17 100644 --- a/tools/perf/core/shard_maps/timing_data/mac-10_13_laptop_high_end-perf_timing.json +++ b/tools/perf/core/shard_maps/timing_data/mac-10_13_laptop_high_end-perf_timing.json
@@ -900,14 +900,6 @@ "name": "blink_perf.owp_storage/idb-load-docs.html" }, { - "duration": "23.0", - "name": "blink_perf.owp_storage/idb-put-all.html" - }, - { - "duration": "26.0", - "name": "blink_perf.owp_storage/idb-put.html" - }, - { "duration": "11.0", "name": "blink_perf.paint/appending-text.html" },
diff --git a/tools/perf/core/shard_maps/timing_data/mac-arm_dtk_arm-perf_timing.json b/tools/perf/core/shard_maps/timing_data/mac-arm_dtk_arm-perf_timing.json index 881dfa08..13a8391b 100644 --- a/tools/perf/core/shard_maps/timing_data/mac-arm_dtk_arm-perf_timing.json +++ b/tools/perf/core/shard_maps/timing_data/mac-arm_dtk_arm-perf_timing.json
@@ -900,14 +900,6 @@ "name": "blink_perf.owp_storage/idb-load-docs.html" }, { - "duration": "56.0", - "name": "blink_perf.owp_storage/idb-put-all.html" - }, - { - "duration": "59.0", - "name": "blink_perf.owp_storage/idb-put.html" - }, - { "duration": "14.0", "name": "blink_perf.paint/appending-text.html" },
diff --git a/tools/perf/core/shard_maps/timing_data/win-10-perf_timing.json b/tools/perf/core/shard_maps/timing_data/win-10-perf_timing.json index 1d6f3379..5f4e453 100644 --- a/tools/perf/core/shard_maps/timing_data/win-10-perf_timing.json +++ b/tools/perf/core/shard_maps/timing_data/win-10-perf_timing.json
@@ -900,14 +900,6 @@ "name": "blink_perf.owp_storage/idb-load-docs.html" }, { - "duration": "128.0", - "name": "blink_perf.owp_storage/idb-put-all.html" - }, - { - "duration": "121.0", - "name": "blink_perf.owp_storage/idb-put.html" - }, - { "duration": "11.0", "name": "blink_perf.paint/appending-text.html" },
diff --git a/tools/perf/core/shard_maps/timing_data/win-10_laptop_low_end-perf_timing.json b/tools/perf/core/shard_maps/timing_data/win-10_laptop_low_end-perf_timing.json index 115558e..fb11c38 100644 --- a/tools/perf/core/shard_maps/timing_data/win-10_laptop_low_end-perf_timing.json +++ b/tools/perf/core/shard_maps/timing_data/win-10_laptop_low_end-perf_timing.json
@@ -900,14 +900,6 @@ "name": "blink_perf.owp_storage/idb-load-docs.html" }, { - "duration": "43.0", - "name": "blink_perf.owp_storage/idb-put-all.html" - }, - { - "duration": "50.0", - "name": "blink_perf.owp_storage/idb-put.html" - }, - { "duration": "25.0", "name": "blink_perf.paint/appending-text.html" },
diff --git a/tools/perf/expectations.config b/tools/perf/expectations.config index b4ed1176..a5359d94 100644 --- a/tools/perf/expectations.config +++ b/tools/perf/expectations.config
@@ -362,7 +362,6 @@ crbug.com/1147969 [ fuchsia ] system_health.memory_desktop/browse:media:youtubetv:2019 [ Skip ] crbug.com/1147969 [ fuchsia ] system_health.memory_desktop/browse:news:cnn:2020 [ Skip ] crbug.com/1147969 [ fuchsia ] system_health.memory_desktop/browse:news:reddit:2020 [ Skip ] -crbug.com/1147969 [ linux ] system_health.memory_desktop/browse:news:reddit:2020 [ Skip ] crbug.com/1147969 [ fuchsia ] system_health.memory_desktop/browse:search:google_india:2018 [ Skip ] crbug.com/1147969 [ fuchsia ] system_health.memory_desktop/browse:social:facebook_infinite_scroll:2018 [ Skip ] crbug.com/1147969 [ fuchsia ] system_health.memory_desktop/browse:social:twitter:2018 [ Skip ]
diff --git a/tools/style_variable_generator/colors_test_expected.protojson b/tools/style_variable_generator/colors_test_expected.protojson index f965eef..b605cd6 100644 --- a/tools/style_variable_generator/colors_test_expected.protojson +++ b/tools/style_variable_generator/colors_test_expected.protojson
@@ -1,25 +1,36 @@ -/* This file is generated from: - * additional_colors_test.json5 - * colors_test_palette.json5 - * colors_test.json5 - */ -palette_colors: { - google_grey_900: { - light_value: 0xFF202124, - dark_value: 0xFF202124 +# This file is generated from: +# additional_colors_test.json5 +# colors_test_palette.json5 +# colors_test.json5 +palette_colors: [ + { + key: "google_grey_900", + value: { + light_value: 0xFF202124, + dark_value: 0xFF202124 + } } -} -test_colors: { - text_color_primary: { - light_value: 0xFF202124, - dark_value: 0xFFFFFFFF +] +test_colors: [ + { + key: "text_color_primary", + value: { + light_value: 0xFF202124, + dark_value: 0xFFFFFFFF + } }, - toggle_color: { - light_value: 0x19202124, - dark_value: 0x19FFFFFF + { + key: "toggle_color", + value: { + light_value: 0x19202124, + dark_value: 0x19FFFFFF + } }, - text_color: { - light_value: 0xFF000000, - dark_value: 0xFFFFFFFF + { + key: "text_color", + value: { + light_value: 0xFF000000, + dark_value: 0xFFFFFFFF + } } -} +]
diff --git a/tools/style_variable_generator/proto_json_generator.tmpl b/tools/style_variable_generator/proto_json_generator.tmpl index a115534..784f6b8 100644 --- a/tools/style_variable_generator/proto_json_generator.tmpl +++ b/tools/style_variable_generator/proto_json_generator.tmpl
@@ -1,15 +1,17 @@ -/* This file is generated from: +# This file is generated from: {%- for path in in_files %} - * {{path}} +# {{path}} {%- endfor %} - */ {% for field in fields -%} -{{field.name}}: { -{%- for obj in field['values'] %} - {{obj.name}}: { - light_value: {{obj.mode_values[Modes.LIGHT] | proto_color}}, - dark_value: {{obj.mode_values[Modes.DARK] | proto_color}} +{{field.name}}: [ + {%- for obj in field['values'] %} + { + key: "{{obj.name}}", + value: { + light_value: {{obj.mode_values[Modes.LIGHT] | proto_color}}, + dark_value: {{obj.mode_values[Modes.DARK] | proto_color}} + } }{{ "," if not loop.last }} -{%- endfor %} -} + {%- endfor %} +] {% endfor -%}
diff --git a/ui/accessibility/ax_node_position.cc b/ui/accessibility/ax_node_position.cc index 3a853b1..17ac632 100644 --- a/ui/accessibility/ax_node_position.cc +++ b/ui/accessibility/ax_node_position.cc
@@ -49,6 +49,124 @@ return AXPositionInstance(new AXNodePosition(*this)); } +base::string16 AXNodePosition::GetText() const { + if (IsNullPosition()) + return base::string16(); + + // Special case, if a node has only ignored descendants, i.e., it appears to + // be empty to assistive software, on some platforms we need to still treat it + // as a character and a word boundary. We achieve this by adding an embedded + // object character in the text representation used by this class, but we + // don't expose that character to assistive software that tries to retrieve + // the node's inner text. + if (IsEmptyObjectReplacedByCharacter()) + return AXNode::kEmbeddedCharacter; + + const AXNode* anchor = GetAnchor(); + DCHECK(anchor); + switch (g_ax_embedded_object_behavior) { + case AXEmbeddedObjectBehavior::kSuppressCharacter: + return base::UTF8ToUTF16(anchor->GetInnerText()); + case AXEmbeddedObjectBehavior::kExposeCharacter: + return anchor->GetHypertext(); + } +} + +bool AXNodePosition::IsInLineBreak() const { + if (IsNullPosition()) + return false; + DCHECK(GetAnchor()); + return GetAnchor()->IsLineBreak(); +} + +bool AXNodePosition::IsInTextObject() const { + if (IsNullPosition()) + return false; + DCHECK(GetAnchor()); + return GetAnchor()->IsText(); +} + +bool AXNodePosition::IsInWhiteSpace() const { + if (IsNullPosition()) + return false; + DCHECK(GetAnchor()); + return GetAnchor()->IsLineBreak() || + base::ContainsOnlyChars(GetText(), base::kWhitespaceUTF16); +} + +// This override is an optimized version AXPosition::MaxTextOffset. Instead of +// concatenating the strings in GetText() to then get their text length, we sum +// the lengths of the individual strings. This is faster than concatenating the +// strings first and then taking their length, especially when the process +// is recursive. +int AXNodePosition::MaxTextOffset() const { + if (IsNullPosition()) + return INVALID_OFFSET; + + if (IsEmptyObjectReplacedByCharacter()) + return 1; + + const AXNode* anchor = GetAnchor(); + DCHECK(anchor); + // TODO(nektar): Replace with PlatformChildCount when AXNodePosition and + // BrowserAccessibilityPosition will be merged. + if (!AnchorChildCount() || anchor->IsText()) + return base::UTF8ToUTF16(anchor->GetInnerText()).length(); + + int text_length = 0; + // This is an optimization over retrieving the text of the whole subtree and + // then finding its length. It saves time by adding lengths instead of + // concatenating strings. + for (int i = 0; i < AnchorChildCount(); ++i) + text_length += CreateChildPositionAt(i)->MaxTextOffset(); + + return text_length; +} + +bool AXNodePosition::IsEmbeddedObjectInParent() const { + switch (g_ax_embedded_object_behavior) { + case AXEmbeddedObjectBehavior::kSuppressCharacter: + return false; + case AXEmbeddedObjectBehavior::kExposeCharacter: + // We expose an "object replacement character" for all nodes except + // textual nodes as well as nodes that are invisible to platform APIs, AKA + // nodes that are descendants of platform leaves. In the former case, + // textual nodes are represented by their actual text in the text of their + // parent nodes, in order to maintain compatibility with how Firefox + // exposes text in IAccessibleText. For the latter case, an example of a + // platform leaf is a plain text field because all of the accessibility + // subtree inside the text field is not visible to platform APIs. + // + // Please note that for navigational purposes, we need to expose an + // "object replacement character" in empty controls, such as in an empty + // text field. The presence or the absence of accessible content inside a + // control might alter whether an "object replacement character" would be + // exposed in that control, in contrast to ordinary text such as in the + // case of a non-empty simple text field which should only have textual + // nodes inside it. This is because empty controls need to act as a word + // and character boundary. See + // "AXPosition::IsEmptyObjectReplacedByCharacter()" for more information. + return !IsNullPosition() && !GetAnchor()->IsText() && + !GetAnchor()->IsChildOfLeaf(); + } +} + +bool AXNodePosition::IsInLineBreakingObject() const { + if (IsNullPosition()) + return false; + DCHECK(GetAnchor()); + return GetAnchor()->data().GetBoolAttribute( + ax::mojom::BoolAttribute::kIsLineBreakingObject) && + !GetAnchor()->IsInListMarker(); +} + +ax::mojom::Role AXNodePosition::GetAnchorRole() const { + if (IsNullPosition()) + return ax::mojom::Role::kNone; + DCHECK(GetAnchor()); + return GetRole(GetAnchor()); +} + void AXNodePosition::AnchorChild(int child_index, AXTreeID* tree_id, AXNodeID* child_id) const { @@ -178,124 +296,6 @@ return node->tree()->GetAXTreeID(); } -base::string16 AXNodePosition::GetText() const { - if (IsNullPosition()) - return base::string16(); - - // Special case, if a node has only ignored descendants, i.e., it appears to - // be empty to assistive software, on some platforms we need to still treat it - // as a character and a word boundary. We achieve this by adding an embedded - // object character in the text representation used by this class, but we - // don't expose that character to assistive software that tries to retrieve - // the node's inner text. - if (IsEmptyObjectReplacedByCharacter()) - return AXNode::kEmbeddedCharacter; - - const AXNode* anchor = GetAnchor(); - DCHECK(anchor); - switch (g_ax_embedded_object_behavior) { - case AXEmbeddedObjectBehavior::kSuppressCharacter: - return base::UTF8ToUTF16(anchor->GetInnerText()); - case AXEmbeddedObjectBehavior::kExposeCharacter: - return anchor->GetHypertext(); - } -} - -bool AXNodePosition::IsInLineBreak() const { - if (IsNullPosition()) - return false; - DCHECK(GetAnchor()); - return GetAnchor()->IsLineBreak(); -} - -bool AXNodePosition::IsInTextObject() const { - if (IsNullPosition()) - return false; - DCHECK(GetAnchor()); - return GetAnchor()->IsText(); -} - -bool AXNodePosition::IsInWhiteSpace() const { - if (IsNullPosition()) - return false; - DCHECK(GetAnchor()); - return GetAnchor()->IsLineBreak() || - base::ContainsOnlyChars(GetText(), base::kWhitespaceUTF16); -} - -// This override is an optimized version AXPosition::MaxTextOffset. Instead of -// concatenating the strings in GetText() to then get their text length, we sum -// the lengths of the individual strings. This is faster than concatenating the -// strings first and then taking their length, especially when the process -// is recursive. -int AXNodePosition::MaxTextOffset() const { - if (IsNullPosition()) - return INVALID_OFFSET; - - if (IsEmptyObjectReplacedByCharacter()) - return 1; - - const AXNode* anchor = GetAnchor(); - DCHECK(anchor); - // TODO(nektar): Replace with PlatformChildCount when AXNodePosition and - // BrowserAccessibilityPosition will be merged. - if (!AnchorChildCount() || anchor->IsText()) - return base::UTF8ToUTF16(anchor->GetInnerText()).length(); - - int text_length = 0; - // This is an optimization over retrieving the text of the whole subtree and - // then finding its length. It saves time by adding lengths instead of - // concatenating strings. - for (int i = 0; i < AnchorChildCount(); ++i) - text_length += CreateChildPositionAt(i)->MaxTextOffset(); - - return text_length; -} - -bool AXNodePosition::IsEmbeddedObjectInParent() const { - switch (g_ax_embedded_object_behavior) { - case AXEmbeddedObjectBehavior::kSuppressCharacter: - return false; - case AXEmbeddedObjectBehavior::kExposeCharacter: - // We expose an "object replacement character" for all nodes except - // textual nodes as well as nodes that are invisible to platform APIs, AKA - // nodes that are descendants of platform leaves. In the former case, - // textual nodes are represented by their actual text in the text of their - // parent nodes, in order to maintain compatibility with how Firefox - // exposes text in IAccessibleText. For the latter case, an example of a - // platform leaf is a plain text field because all of the accessibility - // subtree inside the text field is not visible to platform APIs. - // - // Please note that for navigational purposes, we need to expose an - // "object replacement character" in empty controls, such as in an empty - // text field. The presence or the absence of accessible content inside a - // control might alter whether an "object replacement character" would be - // exposed in that control, in contrast to ordinary text such as in the - // case of a non-empty simple text field which should only have textual - // nodes inside it. This is because empty controls need to act as a word - // and character boundary. See - // "AXPosition::IsEmptyObjectReplacedByCharacter()" for more information. - return !IsNullPosition() && !GetAnchor()->IsText() && - !GetAnchor()->IsChildOfLeaf(); - } -} - -bool AXNodePosition::IsInLineBreakingObject() const { - if (IsNullPosition()) - return false; - DCHECK(GetAnchor()); - return GetAnchor()->data().GetBoolAttribute( - ax::mojom::BoolAttribute::kIsLineBreakingObject) && - !GetAnchor()->IsInListMarker(); -} - -ax::mojom::Role AXNodePosition::GetAnchorRole() const { - if (IsNullPosition()) - return ax::mojom::Role::kNone; - DCHECK(GetAnchor()); - return GetRole(GetAnchor()); -} - ax::mojom::Role AXNodePosition::GetRole(AXNode* node) const { return node->data().role; }
diff --git a/ui/chromeos/translations/ui_chromeos_strings_en-GB.xtb b/ui/chromeos/translations/ui_chromeos_strings_en-GB.xtb index 1b0d620..da6b1f2 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_en-GB.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_en-GB.xtb
@@ -186,6 +186,7 @@ <translation id="299638574917407533">French (Canada)</translation> <translation id="3003633581067744647">Switch to thumbnail view</translation> <translation id="3007214526293698309">Fix ratio</translation> +<translation id="3029114385395636667">Enable Google Docs Offline to make Docs, Sheets and Slides available offline.</translation> <translation id="303198083543495566">Geography</translation> <translation id="3047197340186497470">Chinese Dayi</translation> <translation id="3057861065630527966">Backup your photos and videos</translation> @@ -280,6 +281,7 @@ <translation id="4124935795427217608">Unicorn</translation> <translation id="4158739975813877944">Open play list</translation> <translation id="4159731583141908892"><ph name="FILE_NAME" /> moved.</translation> +<translation id="4186579485882418952">Enable offline</translation> <translation id="4193154014135846272">Google document</translation> <translation id="4197674956721858839">Zip selection</translation> <translation id="4202378258276439759">Spanish (Latin America)</translation>
diff --git a/ui/file_manager/file_manager/BUILD.gn b/ui/file_manager/file_manager/BUILD.gn index adaee11..371191e 100644 --- a/ui/file_manager/file_manager/BUILD.gn +++ b/ui/file_manager/file_manager/BUILD.gn
@@ -101,6 +101,7 @@ "foreground/images/files/ui/quick_view/filetype_video.png", "foreground/images/files/ui/quick_view/2x/filetype_video.png", "foreground/images/files/ui/refresh.svg", + "foreground/images/files/ui/restore.svg", "foreground/images/files/ui/search.png", "foreground/images/files/ui/search.svg", "foreground/images/files/ui/search_clear_filled.svg",
diff --git a/ui/file_manager/file_manager/common/js/util.js b/ui/file_manager/file_manager/common/js/util.js index d576f20..6e535d5 100644 --- a/ui/file_manager/file_manager/common/js/util.js +++ b/ui/file_manager/file_manager/common/js/util.js
@@ -53,50 +53,37 @@ }; /** + * Mapping table of file error name to i18n localized error name. + * + * @const @enum {string} + */ +util.FileErrorLocalizedName = { + 'InvalidModificationError': 'FILE_ERROR_INVALID_MODIFICATION', + 'InvalidStateError': 'FILE_ERROR_INVALID_STATE', + 'NoModificationAllowedError': 'FILE_ERROR_NO_MODIFICATION_ALLOWED', + 'NotFoundError': 'FILE_ERROR_NOT_FOUND', + 'NotReadableError': 'FILE_ERROR_NOT_READABLE', + 'PathExistsError': 'FILE_ERROR_PATH_EXISTS', + 'QuotaExceededError': 'FILE_ERROR_QUOTA_EXCEEDED', + 'SecurityError': 'FILE_ERROR_SECURITY', +}; +Object.freeze(util.FileErrorLocalizedName); + +/** + * Returns i18n localized error name for file error |name|. + * * @param {?string|undefined} name File error name. * @return {string} Translated file error string. */ util.getFileErrorString = name => { - let errorString; - - switch (name) { - case 'NotFoundError': - errorString = 'FILE_ERROR_NOT_FOUND'; - break; - case 'SecurityError': - errorString = 'FILE_ERROR_SECURITY'; - break; - case 'NotReadableError': - errorString = 'FILE_ERROR_NOT_READABLE'; - break; - case 'NoModificationAllowedError': - errorString = 'FILE_ERROR_NO_MODIFICATION_ALLOWED'; - break; - case 'InvalidStateError': - errorString = 'FILE_ERROR_INVALID_STATE'; - break; - case 'InvalidModificationError': - errorString = 'FILE_ERROR_INVALID_MODIFICATION'; - break; - case 'PathExistsError': - errorString = 'FILE_ERROR_PATH_EXISTS'; - break; - case 'QuotaExceededError': - errorString = 'FILE_ERROR_QUOTA_EXCEEDED'; - break; - default: - errorString = 'FILE_ERROR_GENERIC'; - break; - } - - return loadTimeData.getString(errorString); + const error = util.FileErrorLocalizedName[name] || 'FILE_ERROR_GENERIC'; + return loadTimeData.getString(error); }; /** * Mapping table for FileError.code style enum to DOMError.name string. * - * @enum {string} - * @const + * @const @enum {string} */ util.FileError = { ABORT_ERR: 'AbortError',
diff --git a/ui/file_manager/file_manager/common/js/util_unittest.m.js b/ui/file_manager/file_manager/common/js/util_unittest.m.js index f1534b8..c879dd0 100644 --- a/ui/file_manager/file_manager/common/js/util_unittest.m.js +++ b/ui/file_manager/file_manager/common/js/util_unittest.m.js
@@ -317,3 +317,30 @@ assertEquals(util.bytesToString(2 * PB + 647 * TB, 3), '2.632 PB'); assertEquals(util.bytesToString(200 * PB + 647 * TB, 1), '200.63 PB'); } + +/** + * Tests the util.getFileErrorString helper for undefined, null, or empty + * string error name input, which should output an i18n FILE_ERROR_GENERIC + * error name. + * + * Also tests pre-defined error names ('NotFoundError' and 'PathExistsError' + * here), which should output their associated i18n error names. + */ +export function testGetFileErrorString() { + let i18nErrorName; + + i18nErrorName = util.getFileErrorString(undefined); + assertEquals(i18nErrorName, 'FILE_ERROR_GENERIC'); + + i18nErrorName = util.getFileErrorString(null); + assertEquals(i18nErrorName, 'FILE_ERROR_GENERIC'); + + i18nErrorName = util.getFileErrorString(''); + assertEquals(i18nErrorName, 'FILE_ERROR_GENERIC'); + + i18nErrorName = util.getFileErrorString('NotFoundError'); + assertEquals(i18nErrorName, 'FILE_ERROR_NOT_FOUND'); + + i18nErrorName = util.getFileErrorString('PathExistsError'); + assertEquals(i18nErrorName, 'FILE_ERROR_PATH_EXISTS'); +}
diff --git a/ui/file_manager/file_manager/foreground/js/directory_model.js b/ui/file_manager/file_manager/foreground/js/directory_model.js index ea4c2be..1432c167 100644 --- a/ui/file_manager/file_manager/foreground/js/directory_model.js +++ b/ui/file_manager/file_manager/foreground/js/directory_model.js
@@ -71,6 +71,13 @@ this.ignoreCurrentDirectoryDeletion_ = false; this.directoryChangeQueue_ = new AsyncUtil.Queue(); + + /** + * Number of running directory change trackers. + * @private {number} + */ + this.numChangeTrackerRunning_ = 0; + this.rescanAggregator_ = new AsyncUtil.Aggregator(this.rescanSoon.bind(this, true), 500); @@ -1166,6 +1173,7 @@ start: function() { if (!this.active_) { + this.dm_.numChangeTrackerRunning_++; this.dm_.addEventListener( 'directory-changed', this.onDirectoryChange_); this.active_ = true; @@ -1175,6 +1183,7 @@ stop: function() { if (this.active_) { + this.dm_.numChangeTrackerRunning_--; this.dm_.removeEventListener( 'directory-changed', this.onDirectoryChange_); this.active_ = false; @@ -1292,8 +1301,11 @@ // asynchronous call. event.added[0].resolveDisplayRoot().then((displayRoot) => { // Only change directory if "currentDir" hasn't changed during the - // display root resolution. - if (currentDir === this.getCurrentDirEntry()) { + // display root resolution and if there isn't a directory change in + // progress, because other part of the system will eventually change the + // directory. + if (currentDir === this.getCurrentDirEntry() && + this.numChangeTrackerRunning_ === 0) { this.changeDirectoryEntry(event.added[0].displayRoot); } });