diff --git a/DEPS b/DEPS
index d8ecf8d..061d226 100644
--- a/DEPS
+++ b/DEPS
@@ -40,11 +40,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': 'b5e4842543318e1eac827433855c9a37cdb7f26a',
+  'skia_revision': '1919dc4c052418b14651e39be3a94e160b23c7a7',
   # 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': '2e13db8d39d701f1b4dc3d351babf7b8fb7643f9',
+  'v8_revision': '40e1b24ffde7bd50e0c9cd00c8cc63065c3669fa',
   # 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.
@@ -96,7 +96,7 @@
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling catapult
   # and whatever else without interference from each other.
-  'catapult_revision': '29612b077d93e63d1c79645fdece5b04c9724682',
+  'catapult_revision': '24245dde6fc83c8881775a3d2556797f5bba287b',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling libFuzzer
   # and whatever else without interference from each other.
diff --git a/ash/BUILD.gn b/ash/BUILD.gn
index fef3b67..0f948df 100644
--- a/ash/BUILD.gn
+++ b/ash/BUILD.gn
@@ -261,7 +261,6 @@
     "session/session_controller.h",
     "session/session_observer.cc",
     "session/session_observer.h",
-    "session/session_state_delegate.h",
     "shared/immersive_context.cc",
     "shared/immersive_context.h",
     "shared/immersive_focus_watcher.h",
@@ -901,6 +900,7 @@
     "//ui/vector_icons",
     "//ui/views",
     "//ui/wm",
+    "//ui/wm/public",
     "//url",
   ]
 
@@ -1138,6 +1138,7 @@
     "//ui/views:test_support",
     "//ui/views/controls/webview:test_support",
     "//ui/web_dialogs:test_support",
+    "//ui/wm/public",
   ]
 
   data_deps = [
@@ -1317,6 +1318,7 @@
     "//ui/views:test_support",
     "//ui/wm",
     "//ui/wm:test_support",
+    "//ui/wm/public",
   ]
   public_deps = [
     "//ash/test:test_support_without_content",
@@ -1487,6 +1489,7 @@
     "//ui/views",
     "//ui/views:test_support",
     "//ui/wm",
+    "//ui/wm/public",
     "//url",
   ]
 
diff --git a/ash/ash_touch_exploration_manager_chromeos.cc b/ash/ash_touch_exploration_manager_chromeos.cc
index 58cda1d..3b56eef 100644
--- a/ash/ash_touch_exploration_manager_chromeos.cc
+++ b/ash/ash_touch_exploration_manager_chromeos.cc
@@ -133,7 +133,7 @@
 }
 
 void AshTouchExplorationManager::OnWindowActivated(
-    aura::client::ActivationChangeObserver::ActivationReason reason,
+    ::wm::ActivationChangeObserver::ActivationReason reason,
     aura::Window* gained_active,
     aura::Window* lost_active) {
   UpdateTouchExplorationState();
diff --git a/ash/ash_touch_exploration_manager_chromeos.h b/ash/ash_touch_exploration_manager_chromeos.h
index 9a66a264..a6ef09f 100644
--- a/ash/ash_touch_exploration_manager_chromeos.h
+++ b/ash/ash_touch_exploration_manager_chromeos.h
@@ -38,7 +38,7 @@
       public ui::TouchExplorationControllerDelegate,
       public ui::TouchAccessibilityEnablerDelegate,
       public display::DisplayObserver,
-      public aura::client::ActivationChangeObserver,
+      public ::wm::ActivationChangeObserver,
       public keyboard::KeyboardControllerObserver,
       public ShellObserver {
  public:
@@ -69,9 +69,9 @@
   void PlaySpokenFeedbackToggleCountdown(int tick_count) override;
   void ToggleSpokenFeedback() override;
 
-  // aura::client::ActivationChangeObserver overrides:
+  // wm::ActivationChangeObserver overrides:
   void OnWindowActivated(
-      aura::client::ActivationChangeObserver::ActivationReason reason,
+      ::wm::ActivationChangeObserver::ActivationReason reason,
       aura::Window* gained_active,
       aura::Window* lost_active) override;
 
diff --git a/ash/aura/shell_port_classic.cc b/ash/aura/shell_port_classic.cc
index c42a9f4..4603cb5 100644
--- a/ash/aura/shell_port_classic.cc
+++ b/ash/aura/shell_port_classic.cc
@@ -18,7 +18,6 @@
 #include "ash/magnifier/partial_magnification_controller.h"
 #include "ash/metrics/task_switch_metrics_recorder.h"
 #include "ash/public/cpp/config.h"
-#include "ash/session/session_state_delegate.h"
 #include "ash/shared/immersive_fullscreen_controller.h"
 #include "ash/shell.h"
 #include "ash/shell_delegate.h"
@@ -48,7 +47,6 @@
 
 #if defined(USE_OZONE)
 #include "ash/wm/maximize_mode/scoped_disable_internal_mouse_and_keyboard_ozone.h"
-#include "ui/display/types/native_display_delegate.h"
 #include "ui/ozone/public/ozone_platform.h"
 #endif
 
@@ -218,10 +216,6 @@
   return base::MakeUnique<KeyEventWatcherAura>();
 }
 
-SessionStateDelegate* ShellPortClassic::GetSessionStateDelegate() {
-  return Shell::Get()->session_state_delegate();
-}
-
 void ShellPortClassic::AddDisplayObserver(WmDisplayObserver* observer) {
   if (!added_display_observer_) {
     added_display_observer_ = true;
diff --git a/ash/aura/shell_port_classic.h b/ash/aura/shell_port_classic.h
index a9843982..e63ae5bf 100644
--- a/ash/aura/shell_port_classic.h
+++ b/ash/aura/shell_port_classic.h
@@ -6,6 +6,7 @@
 #define ASH_AURA_SHELL_PORT_CLASSIC_H_
 
 #include <memory>
+#include <vector>
 
 #include "ash/ash_export.h"
 #include "ash/display/window_tree_host_manager.h"
@@ -72,7 +73,6 @@
   CreateImmersiveFullscreenController() override;
   std::unique_ptr<KeyboardUI> CreateKeyboardUI() override;
   std::unique_ptr<KeyEventWatcher> CreateKeyEventWatcher() override;
-  SessionStateDelegate* GetSessionStateDelegate() override;
   void AddDisplayObserver(WmDisplayObserver* observer) override;
   void RemoveDisplayObserver(WmDisplayObserver* observer) override;
   void AddPointerWatcher(views::PointerWatcher* watcher,
diff --git a/ash/content/display/screen_orientation_controller_chromeos_unittest.cc b/ash/content/display/screen_orientation_controller_chromeos_unittest.cc
index 90df6ec7..7aa3ab70 100644
--- a/ash/content/display/screen_orientation_controller_chromeos_unittest.cc
+++ b/ash/content/display/screen_orientation_controller_chromeos_unittest.cc
@@ -282,8 +282,7 @@
   delegate()->Lock(content.get(), blink::kWebScreenOrientationLockLandscape);
   ASSERT_TRUE(RotationLocked());
 
-  aura::client::ActivationClient* activation_client =
-      Shell::Get()->activation_client();
+  ::wm::ActivationClient* activation_client = Shell::Get()->activation_client();
   activation_client->ActivateWindow(focus_window2.get());
   EXPECT_FALSE(RotationLocked());
 
@@ -305,8 +304,7 @@
   delegate()->Lock(content2.get(), blink::kWebScreenOrientationLockPortrait);
   EXPECT_EQ(display::Display::ROTATE_0, GetCurrentInternalDisplayRotation());
 
-  aura::client::ActivationClient* activation_client =
-      Shell::Get()->activation_client();
+  ::wm::ActivationClient* activation_client = Shell::Get()->activation_client();
   activation_client->ActivateWindow(focus_window2.get());
   EXPECT_TRUE(RotationLocked());
   EXPECT_EQ(display::Display::ROTATE_90, GetCurrentInternalDisplayRotation());
@@ -348,8 +346,7 @@
   content.reset();
   EXPECT_FALSE(RotationLocked());
 
-  aura::client::ActivationClient* activation_client =
-      Shell::Get()->activation_client();
+  ::wm::ActivationClient* activation_client = Shell::Get()->activation_client();
   activation_client->ActivateWindow(focus_window2.get());
   EXPECT_FALSE(RotationLocked());
 
@@ -770,8 +767,7 @@
 
   EXPECT_EQ(display::Display::ROTATE_90, GetCurrentInternalDisplayRotation());
 
-  aura::client::ActivationClient* activation_client =
-      Shell::Get()->activation_client();
+  ::wm::ActivationClient* activation_client = Shell::Get()->activation_client();
   // Activating any will switch to the natural orientation.
   activation_client->ActivateWindow(focus_window2.get());
   EXPECT_EQ(display::Display::ROTATE_0, GetCurrentInternalDisplayRotation());
diff --git a/ash/display/screen_orientation_controller_chromeos.cc b/ash/display/screen_orientation_controller_chromeos.cc
index facaac0..5c43768 100644
--- a/ash/display/screen_orientation_controller_chromeos.cc
+++ b/ash/display/screen_orientation_controller_chromeos.cc
@@ -243,9 +243,10 @@
   SetLockToOrientation(RotationToOrientation(rotation));
 }
 
-void ScreenOrientationController::OnWindowActivated(ActivationReason reason,
-                                                    aura::Window* gained_active,
-                                                    aura::Window* lost_active) {
+void ScreenOrientationController::OnWindowActivated(
+    ::wm::ActivationChangeObserver::ActivationReason reason,
+    aura::Window* gained_active,
+    aura::Window* lost_active) {
   ApplyLockForActiveWindow();
 }
 
diff --git a/ash/display/screen_orientation_controller_chromeos.h b/ash/display/screen_orientation_controller_chromeos.h
index b64d4c1..7685f17 100644
--- a/ash/display/screen_orientation_controller_chromeos.h
+++ b/ash/display/screen_orientation_controller_chromeos.h
@@ -30,7 +30,7 @@
 
 // Implements ChromeOS specific functionality for ScreenOrientationProvider.
 class ASH_EXPORT ScreenOrientationController
-    : public aura::client::ActivationChangeObserver,
+    : public ::wm::ActivationChangeObserver,
       public aura::WindowObserver,
       public chromeos::AccelerometerReader::Observer,
       public WmDisplayObserver,
@@ -99,10 +99,11 @@
   // Set locked to the given |rotation| and save it.
   void SetLockToRotation(display::Display::Rotation rotation);
 
-  // aura::client::ActivationChangeObserver:
-  void OnWindowActivated(ActivationReason reason,
-                         aura::Window* gained_active,
-                         aura::Window* lost_active) override;
+  // wm::ActivationChangeObserver:
+  void OnWindowActivated(
+      ::wm::ActivationChangeObserver::ActivationReason reason,
+      aura::Window* gained_active,
+      aura::Window* lost_active) override;
 
   // aura::WindowObserver:
   void OnWindowDestroying(aura::Window* window) override;
diff --git a/ash/display/window_tree_host_manager.cc b/ash/display/window_tree_host_manager.cc
index 4a1629e..85f3b12 100644
--- a/ash/display/window_tree_host_manager.cc
+++ b/ash/display/window_tree_host_manager.cc
@@ -177,7 +177,7 @@
   void Store(bool clear_focus) {
     if (!activation_client_) {
       aura::Window* root = Shell::GetPrimaryRootWindow();
-      activation_client_ = aura::client::GetActivationClient(root);
+      activation_client_ = ::wm::GetActivationClient(root);
       capture_client_ = aura::client::GetCaptureClient(root);
       focus_client_ = aura::client::GetFocusClient(root);
     }
@@ -218,7 +218,7 @@
   }
 
  private:
-  aura::client::ActivationClient* activation_client_;
+  ::wm::ActivationClient* activation_client_;
   aura::client::CaptureClient* capture_client_;
   aura::client::FocusClient* focus_client_;
   aura::WindowTracker tracker_;
diff --git a/ash/display/window_tree_host_manager_unittest.cc b/ash/display/window_tree_host_manager_unittest.cc
index 776e390..fc4db30d 100644
--- a/ash/display/window_tree_host_manager_unittest.cc
+++ b/ash/display/window_tree_host_manager_unittest.cc
@@ -62,7 +62,7 @@
 class TestObserver : public WindowTreeHostManager::Observer,
                      public display::DisplayObserver,
                      public aura::client::FocusChangeObserver,
-                     public aura::client::ActivationChangeObserver {
+                     public ::wm::ActivationChangeObserver {
  public:
   TestObserver()
       : changing_count_(0),
@@ -78,8 +78,7 @@
     display::Screen::GetScreen()->AddObserver(this);
     aura::client::GetFocusClient(Shell::GetPrimaryRootWindow())
         ->AddObserver(this);
-    aura::client::GetActivationClient(Shell::GetPrimaryRootWindow())
-        ->AddObserver(this);
+    ::wm::GetActivationClient(Shell::GetPrimaryRootWindow())->AddObserver(this);
   }
 
   ~TestObserver() override {
@@ -87,7 +86,7 @@
     display::Screen::GetScreen()->RemoveObserver(this);
     aura::client::GetFocusClient(Shell::GetPrimaryRootWindow())
         ->RemoveObserver(this);
-    aura::client::GetActivationClient(Shell::GetPrimaryRootWindow())
+    ::wm::GetActivationClient(Shell::GetPrimaryRootWindow())
         ->RemoveObserver(this);
   }
 
@@ -117,9 +116,9 @@
     focus_changed_count_++;
   }
 
-  // Overridden from aura::client::ActivationChangeObserver
+  // Overridden from wm::ActivationChangeObserver
   void OnWindowActivated(
-      aura::client::ActivationChangeObserver::ActivationReason reason,
+      ::wm::ActivationChangeObserver::ActivationReason reason,
       aura::Window* gained_active,
       aura::Window* lost_active) override {
     activation_changed_count_++;
diff --git a/ash/drag_drop/drag_drop_tracker.cc b/ash/drag_drop/drag_drop_tracker.cc
index 80bd99a..5a311233 100644
--- a/ash/drag_drop/drag_drop_tracker.cc
+++ b/ash/drag_drop/drag_drop_tracker.cc
@@ -19,13 +19,12 @@
 namespace {
 
 // An activation delegate which disables activating the drag and drop window.
-class CaptureWindowActivationDelegate
-    : public aura::client::ActivationDelegate {
+class CaptureWindowActivationDelegate : public ::wm::ActivationDelegate {
  public:
   CaptureWindowActivationDelegate() {}
   ~CaptureWindowActivationDelegate() override {}
 
-  // aura::client::ActivationDelegate overrides:
+  // wm::ActivationDelegate overrides:
   bool ShouldActivate() const override { return false; }
 
  private:
@@ -44,7 +43,7 @@
   window->SetType(aura::client::WINDOW_TYPE_POPUP);
   window->Init(ui::LAYER_NOT_DRAWN);
   aura::client::ParentWindowWithContext(window, context_root, gfx::Rect());
-  aura::client::SetActivationDelegate(window, activation_delegate_instance);
+  ::wm::SetActivationDelegate(window, activation_delegate_instance);
   window->Show();
   DCHECK(window->bounds().size().IsEmpty());
   return window;
diff --git a/ash/extended_desktop_unittest.cc b/ash/extended_desktop_unittest.cc
index ea9f9e2..324584e 100644
--- a/ash/extended_desktop_unittest.cc
+++ b/ash/extended_desktop_unittest.cc
@@ -179,8 +179,8 @@
   // Make sure root windows share the same controllers.
   EXPECT_EQ(aura::client::GetFocusClient(root_windows[0]),
             aura::client::GetFocusClient(root_windows[1]));
-  EXPECT_EQ(aura::client::GetActivationClient(root_windows[0]),
-            aura::client::GetActivationClient(root_windows[1]));
+  EXPECT_EQ(::wm::GetActivationClient(root_windows[0]),
+            ::wm::GetActivationClient(root_windows[1]));
   EXPECT_EQ(aura::client::GetCaptureClient(root_windows[0]),
             aura::client::GetCaptureClient(root_windows[1]));
 }
diff --git a/ash/frame/custom_frame_view_ash.cc b/ash/frame/custom_frame_view_ash.cc
index a236c12..46c581c 100644
--- a/ash/frame/custom_frame_view_ash.cc
+++ b/ash/frame/custom_frame_view_ash.cc
@@ -17,12 +17,14 @@
 #include "ash/wm/window_state_delegate.h"
 #include "ash/wm/window_state_observer.h"
 #include "ash/wm_window.h"
+#include "base/memory/ptr_util.h"
 #include "ui/aura/client/aura_constants.h"
 #include "ui/aura/window.h"
 #include "ui/aura/window_observer.h"
 #include "ui/gfx/geometry/rect.h"
 #include "ui/gfx/geometry/rect_conversions.h"
 #include "ui/gfx/geometry/size.h"
+#include "ui/gfx/image/image_skia.h"
 #include "ui/views/view.h"
 #include "ui/views/view_targeter.h"
 #include "ui/views/widget/widget.h"
@@ -88,12 +90,14 @@
     }
     return true;
   }
+
   // Overridden from aura::WindowObserver:
   void OnWindowDestroying(aura::Window* window) override {
     window_state_->RemoveObserver(this);
     window->RemoveObserver(this);
     window_state_ = nullptr;
   }
+
   // Overridden from wm::WindowStateObserver:
   void OnPostWindowStateTypeChange(wm::WindowState* window_state,
                                    wm::WindowStateType old_type) override {
@@ -118,6 +122,48 @@
 bool CustomFrameViewAsh::use_empty_minimum_size_for_test_ = false;
 
 ///////////////////////////////////////////////////////////////////////////////
+// CustomFrameViewAsh::AvatarObserver
+
+// AvatarObserver watches the frame window's avatar icon property and updates
+// HeaderView with it.
+class CustomFrameViewAsh::AvatarObserver : public aura::WindowObserver {
+ public:
+  AvatarObserver(views::Widget* frame, HeaderView* header_view)
+      : frame_window_(frame->GetNativeWindow()), header_view_(header_view) {
+    frame_window_->AddObserver(this);
+  }
+
+  ~AvatarObserver() override {
+    if (frame_window_)
+      frame_window_->RemoveObserver(this);
+  }
+
+  // aura::WindowObserver:
+  void OnWindowPropertyChanged(aura::Window* window,
+                               const void* key,
+                               intptr_t old) override {
+    DCHECK_EQ(frame_window_, window);
+    if (key != aura::client::kAvatarIconKey)
+      return;
+
+    gfx::ImageSkia* const avatar_icon =
+        frame_window_->GetProperty(aura::client::kAvatarIconKey);
+    header_view_->SetAvatarIcon(avatar_icon ? *avatar_icon : gfx::ImageSkia());
+  }
+
+  void OnWindowDestroyed(aura::Window* window) override {
+    DCHECK_EQ(frame_window_, window);
+    frame_window_ = nullptr;
+  }
+
+ private:
+  aura::Window* frame_window_;
+  HeaderView* const header_view_;
+
+  DISALLOW_COPY_AND_ASSIGN(AvatarObserver);
+};
+
+///////////////////////////////////////////////////////////////////////////////
 // CustomFrameViewAsh::OverlayView
 
 // View which takes up the entire widget and contains the HeaderView. HeaderView
@@ -213,7 +259,8 @@
       header_view_(new HeaderView(frame, window_style)),
       overlay_view_(new OverlayView(header_view_)),
       immersive_delegate_(immersive_delegate ? immersive_delegate
-                                             : header_view_) {
+                                             : header_view_),
+      avatar_observer_(base::MakeUnique<AvatarObserver>(frame_, header_view_)) {
   WmWindow* frame_window = WmWindow::Get(frame->GetNativeWindow());
   frame_window->InstallResizeHandleWindowTargeter(nullptr);
   // |header_view_| is set as the non client view's overlay view so that it can
@@ -252,7 +299,7 @@
   overlay_view_->SetHeaderHeight(height);
 }
 
-views::View* CustomFrameViewAsh::header_view() {
+views::View* CustomFrameViewAsh::GetHeaderView() {
   return header_view_;
 }
 
@@ -359,16 +406,6 @@
   }
 }
 
-void CustomFrameViewAsh::VisibilityChanged(views::View* starting_from,
-                                           bool is_visible) {
-  if (is_visible)
-    header_view_->UpdateAvatarIcon();
-}
-
-views::View* CustomFrameViewAsh::GetHeaderView() {
-  return header_view_;
-}
-
 const views::View* CustomFrameViewAsh::GetAvatarIconViewForTest() const {
   return header_view_->avatar_icon();
 }
diff --git a/ash/frame/custom_frame_view_ash.h b/ash/frame/custom_frame_view_ash.h
index 26337a2..6bacbd1 100644
--- a/ash/frame/custom_frame_view_ash.h
+++ b/ash/frame/custom_frame_view_ash.h
@@ -64,7 +64,8 @@
   // preferred height is used.
   void SetHeaderHeight(base::Optional<int> height);
 
-  views::View* header_view();
+  // Get the view of the header.
+  views::View* GetHeaderView();
 
   // views::NonClientFrameView:
   gfx::Rect GetBoundsForClientView() const override;
@@ -85,14 +86,11 @@
   gfx::Size GetMinimumSize() const override;
   gfx::Size GetMaximumSize() const override;
   void SchedulePaintInRect(const gfx::Rect& r) override;
-  void VisibilityChanged(views::View* starting_from, bool is_visible) override;
-
-  // Get the view of the header.
-  views::View* GetHeaderView();
 
   const views::View* GetAvatarIconViewForTest() const;
 
  private:
+  class AvatarObserver;
   class OverlayView;
   friend class TestWidgetConstraintsDelegate;
   friend class CustomFrameViewAshSizeLock;
@@ -118,6 +116,9 @@
 
   ImmersiveFullscreenControllerDelegate* immersive_delegate_;
 
+  // Observes avatar icon change and updates |header_view_|.
+  std::unique_ptr<AvatarObserver> avatar_observer_;
+
   static bool use_empty_minimum_size_for_test_;
 
   DISALLOW_COPY_AND_ASSIGN(CustomFrameViewAsh);
diff --git a/ash/frame/custom_frame_view_ash_unittest.cc b/ash/frame/custom_frame_view_ash_unittest.cc
index 0d797e7..b524b63 100644
--- a/ash/frame/custom_frame_view_ash_unittest.cc
+++ b/ash/frame/custom_frame_view_ash_unittest.cc
@@ -12,8 +12,8 @@
 #include "ash/shell.h"
 #include "ash/shell_port.h"
 #include "ash/test/ash_test_base.h"
-#include "ash/test/test_session_state_delegate.h"
 #include "ash/wm/maximize_mode/maximize_mode_controller.h"
+#include "ui/aura/client/aura_constants.h"
 #include "ui/gfx/geometry/rect.h"
 #include "ui/gfx/image/image_skia.h"
 #include "ui/gfx/image/image_unittest_util.h"
@@ -108,11 +108,6 @@
     return widget;
   }
 
-  test::TestSessionStateDelegate* GetTestSessionStateDelegate() {
-    return static_cast<test::TestSessionStateDelegate*>(
-        ShellPort::Get()->GetSessionStateDelegate());
-  }
-
  private:
   DISALLOW_COPY_AND_ASSIGN(CustomFrameViewAshTest);
 };
@@ -179,7 +174,7 @@
 }
 
 // Verify that CustomFrameViewAsh updates the avatar icon based on the
-// state of the SessionStateDelegate after visibility change.
+// avatar icon window property.
 TEST_F(CustomFrameViewAshTest, AvatarIcon) {
   TestWidgetConstraintsDelegate* delegate = new TestWidgetConstraintsDelegate;
   std::unique_ptr<views::Widget> widget(CreateWidget(delegate));
@@ -188,17 +183,14 @@
   EXPECT_FALSE(custom_frame_view->GetAvatarIconViewForTest());
 
   // Avatar image becomes available.
-  GetTestSessionStateDelegate()->SetUserImage(
-      gfx::test::CreateImage(27, 27).AsImageSkia());
-  widget->Hide();
-  widget->Show();
+  widget->GetNativeWindow()->SetProperty(
+      aura::client::kAvatarIconKey,
+      new gfx::ImageSkia(gfx::test::CreateImage(27, 27).AsImageSkia()));
   EXPECT_TRUE(custom_frame_view->GetAvatarIconViewForTest());
 
   // Avatar image is gone; the ImageView for the avatar icon should be
   // removed.
-  GetTestSessionStateDelegate()->SetUserImage(gfx::ImageSkia());
-  widget->Hide();
-  widget->Show();
+  widget->GetNativeWindow()->ClearProperty(aura::client::kAvatarIconKey);
   EXPECT_FALSE(custom_frame_view->GetAvatarIconViewForTest());
 }
 
diff --git a/ash/frame/header_view.cc b/ash/frame/header_view.cc
index c59c577..85d0537 100644
--- a/ash/frame/header_view.cc
+++ b/ash/frame/header_view.cc
@@ -6,11 +6,8 @@
 
 #include "ash/frame/caption_buttons/frame_caption_button_container_view.h"
 #include "ash/frame/default_header_painter.h"
-#include "ash/session/session_state_delegate.h"
 #include "ash/shell.h"
-#include "ash/shell_port.h"
 #include "ash/wm_window.h"
-#include "ui/gfx/canvas.h"
 #include "ui/views/controls/image_view.h"
 #include "ui/views/widget/widget.h"
 
@@ -29,7 +26,6 @@
   AddChildView(caption_button_container_);
 
   header_painter_->Init(target_widget_, this, caption_button_container_);
-  UpdateAvatarIcon();
 
   Shell::Get()->AddShellObserver(this);
 }
@@ -65,23 +61,20 @@
   return header_painter_->GetMinimumHeaderWidth();
 }
 
-void HeaderView::UpdateAvatarIcon() {
-  SessionStateDelegate* delegate = ShellPort::Get()->GetSessionStateDelegate();
-  WmWindow* window = WmWindow::Get(target_widget_->GetNativeWindow());
-  bool show = delegate->ShouldShowAvatar(window);
+void HeaderView::SetAvatarIcon(const gfx::ImageSkia& avatar) {
+  const bool show = !avatar.isNull();
   if (!show) {
     if (!avatar_icon_)
       return;
     delete avatar_icon_;
     avatar_icon_ = nullptr;
   } else {
-    gfx::ImageSkia image = delegate->GetAvatarImageForWindow(window);
-    DCHECK_EQ(image.width(), image.height());
+    DCHECK_EQ(avatar.width(), avatar.height());
     if (!avatar_icon_) {
       avatar_icon_ = new views::ImageView();
       AddChildView(avatar_icon_);
     }
-    avatar_icon_->SetImage(image);
+    avatar_icon_->SetImage(avatar);
   }
   header_painter_->UpdateLeftHeaderView(avatar_icon_);
   Layout();
diff --git a/ash/frame/header_view.h b/ash/frame/header_view.h
index 4d59fedc..584ef7c 100644
--- a/ash/frame/header_view.h
+++ b/ash/frame/header_view.h
@@ -15,6 +15,10 @@
 #include "third_party/skia/include/core/SkColor.h"
 #include "ui/views/view.h"
 
+namespace gfx {
+class ImageSkia;
+}
+
 namespace views {
 class ImageView;
 class Widget;
@@ -58,7 +62,8 @@
   // Returns the view's minimum width.
   int GetMinimumWidth() const;
 
-  void UpdateAvatarIcon();
+  // Sets the avatar icon to be displayed on the frame header.
+  void SetAvatarIcon(const gfx::ImageSkia& avatar);
 
   void SizeConstraintsChanged();
 
diff --git a/ash/metrics/desktop_task_switch_metric_recorder.cc b/ash/metrics/desktop_task_switch_metric_recorder.cc
index b967868..e93f51e 100644
--- a/ash/metrics/desktop_task_switch_metric_recorder.cc
+++ b/ash/metrics/desktop_task_switch_metric_recorder.cc
@@ -21,13 +21,13 @@
 }
 
 void DesktopTaskSwitchMetricRecorder::OnWindowActivated(
-    aura::client::ActivationChangeObserver::ActivationReason reason,
+    ::wm::ActivationChangeObserver::ActivationReason reason,
     aura::Window* gained_active,
     aura::Window* lost_active) {
   if (gained_active && wm::IsWindowUserPositionable(gained_active)) {
     if (last_active_task_window_ != gained_active &&
-        reason == aura::client::ActivationChangeObserver::ActivationReason::
-                      INPUT_EVENT) {
+        reason ==
+            ::wm::ActivationChangeObserver::ActivationReason::INPUT_EVENT) {
       ShellPort::Get()->RecordUserMetricsAction(UMA_DESKTOP_SWITCH_TASK);
     }
     last_active_task_window_ = gained_active;
diff --git a/ash/metrics/desktop_task_switch_metric_recorder.h b/ash/metrics/desktop_task_switch_metric_recorder.h
index 4be1e90..dd86c88 100644
--- a/ash/metrics/desktop_task_switch_metric_recorder.h
+++ b/ash/metrics/desktop_task_switch_metric_recorder.h
@@ -14,14 +14,14 @@
 // Tracks metrics for task switches caused by the user activating a task window
 // by clicking or tapping on it.
 class ASH_EXPORT DesktopTaskSwitchMetricRecorder
-    : public aura::client::ActivationChangeObserver {
+    : public ::wm::ActivationChangeObserver {
  public:
   explicit DesktopTaskSwitchMetricRecorder();
   ~DesktopTaskSwitchMetricRecorder() override;
 
-  // aura::client::ActivationChangeObserver:
+  // wm::ActivationChangeObserver:
   void OnWindowActivated(
-      aura::client::ActivationChangeObserver::ActivationReason reason,
+      ::wm::ActivationChangeObserver::ActivationReason reason,
       aura::Window* gained_active,
       aura::Window* lost_active) override;
 
diff --git a/ash/metrics/desktop_task_switch_metric_recorder_unittest.cc b/ash/metrics/desktop_task_switch_metric_recorder_unittest.cc
index 3c7b775..9a6b674ea 100644
--- a/ash/metrics/desktop_task_switch_metric_recorder_unittest.cc
+++ b/ash/metrics/desktop_task_switch_metric_recorder_unittest.cc
@@ -17,7 +17,7 @@
 #include "ui/events/test/event_generator.h"
 #include "ui/wm/public/activation_client.h"
 
-using aura::client::ActivationChangeObserver;
+using wm::ActivationChangeObserver;
 
 namespace ash {
 namespace {
diff --git a/ash/metrics/user_metrics_recorder.cc b/ash/metrics/user_metrics_recorder.cc
index aa04f364..a25e505 100644
--- a/ash/metrics/user_metrics_recorder.cc
+++ b/ash/metrics/user_metrics_recorder.cc
@@ -9,7 +9,6 @@
 #include "ash/public/cpp/shelf_item.h"
 #include "ash/public/cpp/shell_window_ids.h"
 #include "ash/session/session_controller.h"
-#include "ash/session/session_state_delegate.h"
 #include "ash/shelf/shelf.h"
 #include "ash/shelf/shelf_model.h"
 #include "ash/shelf/shelf_view.h"
diff --git a/ash/mus/BUILD.gn b/ash/mus/BUILD.gn
index 96714f3ee..11a20e39 100644
--- a/ash/mus/BUILD.gn
+++ b/ash/mus/BUILD.gn
@@ -85,6 +85,7 @@
     "//ui/keyboard",
     "//ui/keyboard:mojom",
     "//ui/message_center",
+    "//ui/wm/public",
   ]
 
   public_deps = [
diff --git a/ash/mus/bridge/shell_port_mash.cc b/ash/mus/bridge/shell_port_mash.cc
index 191ad69..40cc6d9 100644
--- a/ash/mus/bridge/shell_port_mash.cc
+++ b/ash/mus/bridge/shell_port_mash.cc
@@ -30,7 +30,6 @@
 #include "ash/public/cpp/shell_window_ids.h"
 #include "ash/root_window_controller.h"
 #include "ash/root_window_settings.h"
-#include "ash/session/session_state_delegate.h"
 #include "ash/shared/immersive_fullscreen_controller.h"
 #include "ash/shell.h"
 #include "ash/shell_delegate.h"
@@ -76,36 +75,6 @@
 namespace ash {
 namespace mus {
 
-namespace {
-
-// TODO(jamescook): After ShellDelegate is ported to ash/common use
-// ShellDelegate::CreateSessionStateDelegate() to construct the mus version
-// of SessionStateDelegate.
-class SessionStateDelegateStub : public SessionStateDelegate {
- public:
-  SessionStateDelegateStub() : user_info_(new user_manager::UserInfoImpl()) {}
-
-  ~SessionStateDelegateStub() override {}
-
-  // SessionStateDelegate:
-  bool ShouldShowAvatar(WmWindow* window) const override {
-    NOTIMPLEMENTED();
-    return !user_info_->GetImage().isNull();
-  }
-  gfx::ImageSkia GetAvatarImageForWindow(WmWindow* window) const override {
-    NOTIMPLEMENTED();
-    return gfx::ImageSkia();
-  }
-
- private:
-  // A pseudo user info.
-  std::unique_ptr<user_manager::UserInfo> user_info_;
-
-  DISALLOW_COPY_AND_ASSIGN(SessionStateDelegateStub);
-};
-
-}  // namespace
-
 ShellPortMash::MashSpecificState::MashSpecificState() = default;
 
 ShellPortMash::MashSpecificState::~MashSpecificState() = default;
@@ -117,13 +86,9 @@
 ShellPortMash::ShellPortMash(
     aura::Window* primary_root_window,
     WindowManager* window_manager,
-    views::PointerWatcherEventRouter* pointer_watcher_event_router,
-    bool create_session_state_delegate_stub)
+    views::PointerWatcherEventRouter* pointer_watcher_event_router)
     : window_manager_(window_manager),
       primary_root_window_(primary_root_window) {
-  if (create_session_state_delegate_stub)
-    session_state_delegate_ = base::MakeUnique<SessionStateDelegateStub>();
-
   if (GetAshConfig() == Config::MASH) {
     mash_state_ = base::MakeUnique<MashSpecificState>();
     mash_state_->pointer_watcher_event_router = pointer_watcher_event_router;
@@ -429,11 +394,6 @@
   return std::unique_ptr<KeyEventWatcher>();
 }
 
-SessionStateDelegate* ShellPortMash::GetSessionStateDelegate() {
-  return session_state_delegate_ ? session_state_delegate_.get()
-                                 : Shell::Get()->session_state_delegate();
-}
-
 void ShellPortMash::AddDisplayObserver(WmDisplayObserver* observer) {
   // TODO(sky): mash should use the same code as mus/classic and
   // WmDisplayObserver should be removed; http://crbug.com/718860.
diff --git a/ash/mus/bridge/shell_port_mash.h b/ash/mus/bridge/shell_port_mash.h
index a6b7b2f..99d1b65 100644
--- a/ash/mus/bridge/shell_port_mash.h
+++ b/ash/mus/bridge/shell_port_mash.h
@@ -40,12 +40,9 @@
 // ShellPort implementation for mash/mus. See ash/README.md for more.
 class ShellPortMash : public ShellPort, public WindowTreeHostManager::Observer {
  public:
-  // If |create_session_state_delegate_stub| is true SessionStateDelegateStub is
-  // created. If false, the SessionStateDelegate from Shell is used.
   ShellPortMash(aura::Window* primary_root_window,
                 WindowManager* window_manager,
-                views::PointerWatcherEventRouter* pointer_watcher_event_router,
-                bool create_session_state_delegate_stub);
+                views::PointerWatcherEventRouter* pointer_watcher_event_router);
   ~ShellPortMash() override;
 
   static ShellPortMash* Get();
@@ -100,7 +97,6 @@
   CreateImmersiveFullscreenController() override;
   std::unique_ptr<KeyboardUI> CreateKeyboardUI() override;
   std::unique_ptr<KeyEventWatcher> CreateKeyEventWatcher() override;
-  SessionStateDelegate* GetSessionStateDelegate() override;
   void AddDisplayObserver(WmDisplayObserver* observer) override;
   void RemoveDisplayObserver(WmDisplayObserver* observer) override;
   void AddPointerWatcher(views::PointerWatcher* watcher,
@@ -159,8 +155,6 @@
   std::unique_ptr<MashSpecificState> mash_state_;
   std::unique_ptr<MusSpecificState> mus_state_;
 
-  std::unique_ptr<SessionStateDelegate> session_state_delegate_;
-
   std::unique_ptr<DisplaySynchronizer> display_synchronizer_;
 
   bool added_display_observer_ = false;
diff --git a/ash/mus/move_event_handler.cc b/ash/mus/move_event_handler.cc
index 17375bd..7096bd1f 100644
--- a/ash/mus/move_event_handler.cc
+++ b/ash/mus/move_event_handler.cc
@@ -83,7 +83,7 @@
 void MoveEventHandler::AttemptToStartDrag(
     const gfx::Point& point_in_parent,
     int window_component,
-    aura::client::WindowMoveSource source,
+    ::wm::WindowMoveSource source,
     const base::Callback<void(bool success)>& end_closure) {
   toplevel_window_event_handler_.AttemptToStartDrag(
       window_, point_in_parent, window_component, source,
diff --git a/ash/mus/move_event_handler.h b/ash/mus/move_event_handler.h
index db76a5e..14346f7 100644
--- a/ash/mus/move_event_handler.h
+++ b/ash/mus/move_event_handler.h
@@ -48,7 +48,7 @@
   void AttemptToStartDrag(
       const gfx::Point& point_in_parent,
       int window_component,
-      aura::client::WindowMoveSource source,
+      ::wm::WindowMoveSource source,
       const base::Callback<void(bool success)>& end_closure);
 
   // Returns whether we're in a drag.
diff --git a/ash/mus/non_client_frame_controller.cc b/ash/mus/non_client_frame_controller.cc
index 3e9d184..4c90f6c61 100644
--- a/ash/mus/non_client_frame_controller.cc
+++ b/ash/mus/non_client_frame_controller.cc
@@ -213,7 +213,7 @@
     // marked as transparent content (see below in NonClientFrameController()
     // ctor). So, it is necessary to provide a texture-layer for the header
     // view.
-    views::View* header_view = custom_frame_view_->header_view();
+    views::View* header_view = custom_frame_view_->GetHeaderView();
     header_view->SetPaintToLayer(ui::LAYER_TEXTURED);
     header_view->layer()->SetFillsBoundsOpaquely(false);
 
diff --git a/ash/mus/shell_delegate_mus.cc b/ash/mus/shell_delegate_mus.cc
index b068bc9..744ec66 100644
--- a/ash/mus/shell_delegate_mus.cc
+++ b/ash/mus/shell_delegate_mus.cc
@@ -12,7 +12,6 @@
 #include "ash/mus/system_tray_delegate_mus.h"
 #include "ash/mus/wallpaper_delegate_mus.h"
 #include "ash/palette_delegate.h"
-#include "ash/session/session_state_delegate.h"
 #include "base/memory/ptr_util.h"
 #include "base/strings/string16.h"
 #include "base/strings/string_util.h"
@@ -20,32 +19,6 @@
 #include "ui/gfx/image/image.h"
 
 namespace ash {
-namespace {
-
-class SessionStateDelegateStub : public SessionStateDelegate {
- public:
-  SessionStateDelegateStub() : user_info_(new user_manager::UserInfoImpl()) {}
-
-  ~SessionStateDelegateStub() override {}
-
-  // SessionStateDelegate:
-  bool ShouldShowAvatar(WmWindow* window) const override {
-    NOTIMPLEMENTED();
-    return !user_info_->GetImage().isNull();
-  }
-  gfx::ImageSkia GetAvatarImageForWindow(WmWindow* window) const override {
-    NOTIMPLEMENTED();
-    return gfx::ImageSkia();
-  }
-
- private:
-  // A pseudo user info.
-  std::unique_ptr<user_manager::UserInfo> user_info_;
-
-  DISALLOW_COPY_AND_ASSIGN(SessionStateDelegateStub);
-};
-
-}  // namespace
 
 ShellDelegateMus::ShellDelegateMus(service_manager::Connector* connector)
     : connector_(connector) {}
@@ -118,12 +91,6 @@
   return base::MakeUnique<WallpaperDelegateMus>();
 }
 
-SessionStateDelegate* ShellDelegateMus::CreateSessionStateDelegate() {
-  // TODO: http://crbug.com/647416.
-  NOTIMPLEMENTED() << " Using a stub SessionStateDeleagte implementation";
-  return new SessionStateDelegateStub;
-}
-
 AccessibilityDelegate* ShellDelegateMus::CreateAccessibilityDelegate() {
   return new AccessibilityDelegateMus(connector_);
 }
diff --git a/ash/mus/shell_delegate_mus.h b/ash/mus/shell_delegate_mus.h
index 514db36..7736d37 100644
--- a/ash/mus/shell_delegate_mus.h
+++ b/ash/mus/shell_delegate_mus.h
@@ -37,7 +37,6 @@
   void ShelfShutdown() override;
   SystemTrayDelegate* CreateSystemTrayDelegate() override;
   std::unique_ptr<WallpaperDelegate> CreateWallpaperDelegate() override;
-  SessionStateDelegate* CreateSessionStateDelegate() override;
   AccessibilityDelegate* CreateAccessibilityDelegate() override;
   std::unique_ptr<PaletteDelegate> CreatePaletteDelegate() override;
   ui::MenuModel* CreateContextMenu(Shelf* shelf,
diff --git a/ash/mus/window_manager.cc b/ash/mus/window_manager.cc
index 08d115ca..32a5fcfd 100644
--- a/ash/mus/window_manager.cc
+++ b/ash/mus/window_manager.cc
@@ -6,6 +6,7 @@
 
 #include <stdint.h>
 
+#include <limits>
 #include <utility>
 
 #include "ash/drag_drop/drag_image_view.h"
@@ -229,8 +230,7 @@
   ShellInitParams init_params;
   ShellPortMash* shell_port =
       new ShellPortMash(window_tree_host ? window_tree_host->window() : nullptr,
-                        this, pointer_watcher_event_router_.get(),
-                        create_session_state_delegate_stub_for_test_);
+                        this, pointer_watcher_event_router_.get());
   // Shell::CreateInstance() takes ownership of ShellDelegate.
   init_params.delegate = shell_delegate_ ? shell_delegate_.release()
                                          : new ShellDelegateMus(connector_);
@@ -539,10 +539,10 @@
   }
 
   DCHECK(!handler->IsDragInProgress());
-  aura::client::WindowMoveSource aura_source =
+  ::wm::WindowMoveSource aura_source =
       source == ui::mojom::MoveLoopSource::MOUSE
-          ? aura::client::WINDOW_MOVE_SOURCE_MOUSE
-          : aura::client::WINDOW_MOVE_SOURCE_TOUCH;
+          ? ::wm::WINDOW_MOVE_SOURCE_MOUSE
+          : ::wm::WINDOW_MOVE_SOURCE_TOUCH;
   handler->AttemptToStartDrag(cursor_location, HTCAPTION, aura_source, on_done);
 }
 
diff --git a/ash/mus/window_manager.h b/ash/mus/window_manager.h
index 35a7f89b..ab1c560 100644
--- a/ash/mus/window_manager.h
+++ b/ash/mus/window_manager.h
@@ -7,8 +7,11 @@
 
 #include <stdint.h>
 
+#include <map>
 #include <memory>
 #include <set>
+#include <string>
+#include <vector>
 
 #include "ash/root_window_controller.h"
 #include "ash/shell_delegate.h"
@@ -234,9 +237,6 @@
   // ShellDelegateMus is used.
   std::unique_ptr<ShellDelegate> shell_delegate_;
 
-  // See ShellPortMash's constructor for details. Tests may set to false.
-  bool create_session_state_delegate_stub_for_test_ = true;
-
   // State that is only valid during a drag.
   struct DragState;
   std::unique_ptr<DragState> drag_state_;
diff --git a/ash/root_window_controller.cc b/ash/root_window_controller.cc
index b1dc346..70ca0ef2 100644
--- a/ash/root_window_controller.cc
+++ b/ash/root_window_controller.cc
@@ -595,7 +595,7 @@
   shelf_->DestroyShelfWidget();
 
   aura::client::SetDragDropClient(GetRootWindow(), nullptr);
-  aura::client::SetTooltipClient(GetRootWindow(), nullptr);
+  ::wm::SetTooltipClient(GetRootWindow(), nullptr);
 }
 
 void RootWindowController::MoveWindowsTo(aura::Window* dst) {
diff --git a/ash/session/session_state_delegate.h b/ash/session/session_state_delegate.h
deleted file mode 100644
index de5a9cb..0000000
--- a/ash/session/session_state_delegate.h
+++ /dev/null
@@ -1,34 +0,0 @@
-// Copyright 2015 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef ASH_SESSION_SESSION_STATE_DELEGATE_H_
-#define ASH_SESSION_SESSION_STATE_DELEGATE_H_
-
-#include "ash/ash_export.h"
-
-namespace gfx {
-class ImageSkia;
-}
-
-namespace ash {
-
-class WmWindow;
-
-// Delegate for checking and modifying the session state.
-// DEPRECATED in favor of SessionController/SessionControllerClient for mash.
-// TODO(xiyuan): Remove this when SessionController etc are ready.
-class ASH_EXPORT SessionStateDelegate {
- public:
-  virtual ~SessionStateDelegate() {}
-
-  // Whether or not the window's title should show the avatar.
-  virtual bool ShouldShowAvatar(WmWindow* window) const = 0;
-
-  // Returns the avatar image for the specified window.
-  virtual gfx::ImageSkia GetAvatarImageForWindow(WmWindow* window) const = 0;
-};
-
-}  // namespace ash
-
-#endif  // ASH_SESSION_SESSION_STATE_DELEGATE_H_
diff --git a/ash/shelf/shelf_layout_manager.h b/ash/shelf/shelf_layout_manager.h
index 1bce22e..b7e68fa 100644
--- a/ash/shelf/shelf_layout_manager.h
+++ b/ash/shelf/shelf_layout_manager.h
@@ -51,7 +51,7 @@
 // On mus, widget bounds management is handled by the window manager.
 class ASH_EXPORT ShelfLayoutManager
     : public ShellObserver,
-      public aura::client::ActivationChangeObserver,
+      public ::wm::ActivationChangeObserver,
       public keyboard::KeyboardControllerObserver,
       public LockStateObserver,
       public wm::WmSnapToPixelLayoutManager,
@@ -139,7 +139,7 @@
   void OnVirtualKeyboardStateChanged(bool activated,
                                      aura::Window* root_window) override;
 
-  // Overridden from aura::client::ActivationChangeObserver:
+  // Overridden from wm::ActivationChangeObserver:
   void OnWindowActivated(ActivationReason reason,
                          aura::Window* gained_active,
                          aura::Window* lost_active) override;
diff --git a/ash/shelf/shelf_locking_manager_unittest.cc b/ash/shelf/shelf_locking_manager_unittest.cc
index c2cba2d..27c49dd 100644
--- a/ash/shelf/shelf_locking_manager_unittest.cc
+++ b/ash/shelf/shelf_locking_manager_unittest.cc
@@ -4,7 +4,6 @@
 
 #include "ash/shelf/shelf_locking_manager.h"
 
-#include "ash/session/session_state_delegate.h"
 #include "ash/shelf/shelf.h"
 #include "ash/test/ash_test_base.h"
 
diff --git a/ash/shelf/shelf_window_watcher.h b/ash/shelf/shelf_window_watcher.h
index 31c18f2..701b3e97 100644
--- a/ash/shelf/shelf_window_watcher.h
+++ b/ash/shelf/shelf_window_watcher.h
@@ -23,7 +23,7 @@
 // the ShelfItem when the window is added to the default container and maintains
 // it until the window is closed, even if the window is transiently reparented
 // (e.g. during a drag).
-class ShelfWindowWatcher : public aura::client::ActivationChangeObserver,
+class ShelfWindowWatcher : public ::wm::ActivationChangeObserver,
                            public display::DisplayObserver {
  public:
   explicit ShelfWindowWatcher(ShelfModel* model);
@@ -89,7 +89,7 @@
   // Removes the shelf item when a window closes.
   void OnUserWindowDestroying(aura::Window* window);
 
-  // aura::client::ActivationChangeObserver:
+  // wm::ActivationChangeObserver:
   void OnWindowActivated(ActivationReason reason,
                          aura::Window* gained_active,
                          aura::Window* lost_active) override;
diff --git a/ash/shelf/shelf_window_watcher_unittest.cc b/ash/shelf/shelf_window_watcher_unittest.cc
index 1da5df1..836a06e 100644
--- a/ash/shelf/shelf_window_watcher_unittest.cc
+++ b/ash/shelf/shelf_window_watcher_unittest.cc
@@ -243,7 +243,7 @@
   // Simulate dragging of the window and check its item is not changed.
   std::unique_ptr<WindowResizer> resizer(
       CreateWindowResizer(widget->GetNativeWindow(), gfx::Point(), HTCAPTION,
-                          aura::client::WINDOW_MOVE_SOURCE_MOUSE));
+                          ::wm::WINDOW_MOVE_SOURCE_MOUSE));
   ASSERT_TRUE(resizer.get());
   resizer->Drag(gfx::Point(50, 50), 0);
   resizer->CompleteDrag();
diff --git a/ash/shell.cc b/ash/shell.cc
index 6d2fa4f8..c12b790b 100644
--- a/ash/shell.cc
+++ b/ash/shell.cc
@@ -54,7 +54,6 @@
 #include "ash/public/cpp/shell_window_ids.h"
 #include "ash/root_window_controller.h"
 #include "ash/session/session_controller.h"
-#include "ash/session/session_state_delegate.h"
 #include "ash/shelf/shelf.h"
 #include "ash/shelf/shelf_controller.h"
 #include "ash/shelf/shelf_model.h"
@@ -382,7 +381,7 @@
   return shelf_controller_->model();
 }
 
-aura::client::ActivationClient* Shell::activation_client() {
+::wm::ActivationClient* Shell::activation_client() {
   return focus_controller_.get();
 }
 
@@ -1041,7 +1040,6 @@
 
   event_client_.reset(new EventClientImpl);
 
-  session_state_delegate_.reset(shell_delegate_->CreateSessionStateDelegate());
   // Must occur after Shell has installed its early pre-target handlers (for
   // example, WindowModalityController).
   shell_port_->CreatePointerWatcherAdapter();
@@ -1135,18 +1133,17 @@
   DCHECK(drag_drop_controller_.get());
 
   aura::client::SetFocusClient(root_window, focus_controller_.get());
-  aura::client::SetActivationClient(root_window, focus_controller_.get());
+  ::wm::SetActivationClient(root_window, focus_controller_.get());
   root_window->AddPreTargetHandler(focus_controller_.get());
   aura::client::SetVisibilityClient(root_window, visibility_controller_.get());
   aura::client::SetDragDropClient(root_window, drag_drop_controller_.get());
   aura::client::SetScreenPositionClient(root_window,
                                         screen_position_controller_.get());
   aura::client::SetCursorClient(root_window, cursor_manager_.get());
-  aura::client::SetTooltipClient(root_window, tooltip_controller_.get());
+  ::wm::SetTooltipClient(root_window, tooltip_controller_.get());
   aura::client::SetEventClient(root_window, event_client_.get());
 
-  aura::client::SetWindowMoveClient(root_window,
-                                    toplevel_window_event_handler_.get());
+  ::wm::SetWindowMoveClient(root_window, toplevel_window_event_handler_.get());
   root_window->AddPreTargetHandler(toplevel_window_event_handler_.get());
   root_window->AddPostTargetHandler(toplevel_window_event_handler_.get());
 }
@@ -1214,7 +1211,7 @@
 }
 
 void Shell::OnWindowActivated(
-    aura::client::ActivationChangeObserver::ActivationReason reason,
+    ::wm::ActivationChangeObserver::ActivationReason reason,
     aura::Window* gained_active,
     aura::Window* lost_active) {
   if (gained_active)
diff --git a/ash/shell.h b/ash/shell.h
index da3e7d69..f4aa13a9 100644
--- a/ash/shell.h
+++ b/ash/shell.h
@@ -37,9 +37,6 @@
 class Window;
 class WindowManagerClient;
 class WindowTreeClient;
-namespace client {
-class ActivationClient;
-}
 }
 
 namespace base {
@@ -82,6 +79,7 @@
 
 namespace wm {
 class AcceleratorFilter;
+class ActivationClient;
 class CompoundEventFilter;
 class FocusController;
 class ShadowController;
@@ -143,7 +141,6 @@
 class ScreenPinningController;
 class ScreenPositionController;
 class SessionController;
-class SessionStateDelegate;
 class ShelfController;
 class ShelfModel;
 class ShelfWindowWatcher;
@@ -196,7 +193,7 @@
 class ASH_EXPORT Shell : public SessionObserver,
                          public SystemModalContainerEventFilterDelegate,
                          public ui::EventTarget,
-                         public aura::client::ActivationChangeObserver {
+                         public ::wm::ActivationChangeObserver {
  public:
   typedef std::vector<RootWindowController*> RootWindowControllerList;
 
@@ -416,10 +413,6 @@
   }
   ::wm::CursorManager* cursor_manager() { return cursor_manager_.get(); }
 
-  SessionStateDelegate* session_state_delegate() {
-    return session_state_delegate_.get();
-  }
-
   HighContrastController* high_contrast_controller() {
     return high_contrast_controller_.get();
   }
@@ -434,7 +427,7 @@
 
   ToastManager* toast_manager() { return toast_manager_.get(); }
 
-  aura::client::ActivationClient* activation_client();
+  ::wm::ActivationClient* activation_client();
 
   // Force the shelf to query for it's current visibility state.
   // TODO(jamescook): Move to Shelf.
@@ -649,7 +642,7 @@
   std::unique_ptr<ui::EventTargetIterator> GetChildIterator() const override;
   ui::EventTargeter* GetEventTargeter() override;
 
-  // aura::client::ActivationChangeObserver:
+  // wm::ActivationChangeObserver:
   void OnWindowActivated(ActivationReason reason,
                          aura::Window* gained_active,
                          aura::Window* lost_active) override;
@@ -682,7 +675,6 @@
   std::unique_ptr<::wm::CompoundEventFilter> env_filter_;
 
   std::unique_ptr<UserMetricsRecorder> user_metrics_recorder_;
-  std::unique_ptr<SessionStateDelegate> session_state_delegate_;
   std::unique_ptr<WindowPositioner> window_positioner_;
 
   std::unique_ptr<AcceleratorController> accelerator_controller_;
diff --git a/ash/shell/shell_delegate_impl.cc b/ash/shell/shell_delegate_impl.cc
index e9112ba..6958fe8 100644
--- a/ash/shell/shell_delegate_impl.cc
+++ b/ash/shell/shell_delegate_impl.cc
@@ -10,7 +10,6 @@
 #include "ash/gpu_support_stub.h"
 #include "ash/palette_delegate.h"
 #include "ash/public/cpp/shell_window_ids.h"
-#include "ash/session/session_state_delegate.h"
 #include "ash/shell.h"
 #include "ash/shell/context_menu.h"
 #include "ash/shell/example_factory.h"
@@ -59,27 +58,6 @@
   DISALLOW_COPY_AND_ASSIGN(PaletteDelegateImpl);
 };
 
-class SessionStateDelegateImpl : public SessionStateDelegate {
- public:
-  SessionStateDelegateImpl() : user_info_(new user_manager::UserInfoImpl()) {}
-
-  ~SessionStateDelegateImpl() override {}
-
-  // SessionStateDelegate:
-  bool ShouldShowAvatar(WmWindow* window) const override {
-    return !user_info_->GetImage().isNull();
-  }
-  gfx::ImageSkia GetAvatarImageForWindow(WmWindow* window) const override {
-    return gfx::ImageSkia();
-  }
-
- private:
-  // A pseudo user info.
-  std::unique_ptr<user_manager::UserInfo> user_info_;
-
-  DISALLOW_COPY_AND_ASSIGN(SessionStateDelegateImpl);
-};
-
 }  // namespace
 
 ShellDelegateImpl::ShellDelegateImpl() {}
@@ -137,10 +115,6 @@
   return base::MakeUnique<DefaultWallpaperDelegate>();
 }
 
-SessionStateDelegate* ShellDelegateImpl::CreateSessionStateDelegate() {
-  return new SessionStateDelegateImpl;
-}
-
 AccessibilityDelegate* ShellDelegateImpl::CreateAccessibilityDelegate() {
   return new DefaultAccessibilityDelegate;
 }
diff --git a/ash/shell/shell_delegate_impl.h b/ash/shell/shell_delegate_impl.h
index f768cea..0074e50c 100644
--- a/ash/shell/shell_delegate_impl.h
+++ b/ash/shell/shell_delegate_impl.h
@@ -39,7 +39,6 @@
   void ShelfShutdown() override;
   SystemTrayDelegate* CreateSystemTrayDelegate() override;
   std::unique_ptr<WallpaperDelegate> CreateWallpaperDelegate() override;
-  SessionStateDelegate* CreateSessionStateDelegate() override;
   AccessibilityDelegate* CreateAccessibilityDelegate() override;
   std::unique_ptr<PaletteDelegate> CreatePaletteDelegate() override;
   ui::MenuModel* CreateContextMenu(Shelf* shelf,
diff --git a/ash/shell_delegate.h b/ash/shell_delegate.h
index 3022a58..8aba5529 100644
--- a/ash/shell_delegate.h
+++ b/ash/shell_delegate.h
@@ -40,7 +40,6 @@
 class AccessibilityDelegate;
 class GPUSupport;
 class PaletteDelegate;
-class SessionStateDelegate;
 class Shelf;
 struct ShelfItem;
 class SystemTrayDelegate;
@@ -102,9 +101,6 @@
   // Creates a wallpaper delegate. Shell takes ownership of the delegate.
   virtual std::unique_ptr<WallpaperDelegate> CreateWallpaperDelegate() = 0;
 
-  // Creates a session state delegate. Shell takes ownership of the delegate.
-  virtual SessionStateDelegate* CreateSessionStateDelegate() = 0;
-
   // Creates a accessibility delegate. Shell takes ownership of the delegate.
   virtual AccessibilityDelegate* CreateAccessibilityDelegate() = 0;
 
diff --git a/ash/shell_port.cc b/ash/shell_port.cc
index fac68e8..f6463630 100644
--- a/ash/shell_port.cc
+++ b/ash/shell_port.cc
@@ -10,7 +10,6 @@
 #include "ash/public/cpp/shell_window_ids.h"
 #include "ash/root_window_controller.h"
 #include "ash/session/session_controller.h"
-#include "ash/session/session_state_delegate.h"
 #include "ash/shelf/app_list_shelf_item_delegate.h"
 #include "ash/shell.h"
 #include "ash/shell_delegate.h"
diff --git a/ash/shell_port.h b/ash/shell_port.h
index a7ade800..23c8c7d 100644
--- a/ash/shell_port.h
+++ b/ash/shell_port.h
@@ -48,7 +48,6 @@
 class KeyboardUI;
 class RootWindowController;
 class ScopedDisableInternalMouseAndKeyboard;
-class SessionStateDelegate;
 struct ShellInitParams;
 class WindowCycleEventFilter;
 class WindowResizer;
@@ -184,8 +183,6 @@
 
   virtual std::unique_ptr<KeyEventWatcher> CreateKeyEventWatcher() = 0;
 
-  virtual SessionStateDelegate* GetSessionStateDelegate() = 0;
-
   virtual void AddDisplayObserver(WmDisplayObserver* observer) = 0;
   virtual void RemoveDisplayObserver(WmDisplayObserver* observer) = 0;
 
diff --git a/ash/system/bluetooth/tray_bluetooth.cc b/ash/system/bluetooth/tray_bluetooth.cc
index ffc8b2642..c5a70d2 100644
--- a/ash/system/bluetooth/tray_bluetooth.cc
+++ b/ash/system/bluetooth/tray_bluetooth.cc
@@ -4,9 +4,13 @@
 
 #include "ash/system/bluetooth/tray_bluetooth.h"
 
+#include <map>
+#include <memory>
+#include <set>
+#include <string>
+
 #include "ash/resources/grit/ash_resources.h"
 #include "ash/resources/vector_icons/vector_icons.h"
-#include "ash/session/session_state_delegate.h"
 #include "ash/shell.h"
 #include "ash/shell_port.h"
 #include "ash/strings/grit/ash_strings.h"
diff --git a/ash/system/ime/tray_ime_chromeos.cc b/ash/system/ime/tray_ime_chromeos.cc
index 67b9afc..0b3d22c 100644
--- a/ash/system/ime/tray_ime_chromeos.cc
+++ b/ash/system/ime/tray_ime_chromeos.cc
@@ -4,10 +4,10 @@
 
 #include "ash/system/ime/tray_ime_chromeos.h"
 
+#include <memory>
 #include <vector>
 
 #include "ash/resources/vector_icons/vector_icons.h"
-#include "ash/session/session_state_delegate.h"
 #include "ash/shell.h"
 #include "ash/shell_port.h"
 #include "ash/strings/grit/ash_strings.h"
diff --git a/ash/system/tray/system_tray.cc b/ash/system/tray/system_tray.cc
index b952d76a..75c9c11 100644
--- a/ash/system/tray/system_tray.cc
+++ b/ash/system/tray/system_tray.cc
@@ -151,8 +151,7 @@
 
 // An activation observer to close the bubble if the window other
 // than system bubble nor popup notification is activated.
-class SystemTray::ActivationObserver
-    : public aura::client::ActivationChangeObserver {
+class SystemTray::ActivationObserver : public ::wm::ActivationChangeObserver {
  public:
   explicit ActivationObserver(SystemTray* tray) : tray_(tray) {
     DCHECK(tray_);
diff --git a/ash/system/tray_accessibility.cc b/ash/system/tray_accessibility.cc
index 23b3bfa..8f714d0 100644
--- a/ash/system/tray_accessibility.cc
+++ b/ash/system/tray_accessibility.cc
@@ -4,11 +4,13 @@
 
 #include "ash/system/tray_accessibility.h"
 
+#include <memory>
+#include <utility>
+
 #include "ash/accessibility_delegate.h"
 #include "ash/accessibility_types.h"
 #include "ash/resources/vector_icons/vector_icons.h"
 #include "ash/session/session_controller.h"
-#include "ash/session/session_state_delegate.h"
 #include "ash/shell.h"
 #include "ash/shell_port.h"
 #include "ash/strings/grit/ash_strings.h"
diff --git a/ash/test/BUILD.gn b/ash/test/BUILD.gn
index caa015f..a2d2780 100644
--- a/ash/test/BUILD.gn
+++ b/ash/test/BUILD.gn
@@ -111,8 +111,6 @@
     "test_session_controller_client.h",
     "test_session_state_animator.cc",
     "test_session_state_animator.h",
-    "test_session_state_delegate.cc",
-    "test_session_state_delegate.h",
     "test_shell_delegate.cc",
     "test_shell_delegate.h",
     "test_system_tray_delegate.cc",
@@ -179,6 +177,7 @@
     "//ui/views",
     "//ui/views:test_support",
     "//ui/wm",
+    "//ui/wm/public",
   ]
 
   if (use_x11) {
diff --git a/ash/test/ash_test_helper.cc b/ash/test/ash_test_helper.cc
index 5bc6bd00..913251e 100644
--- a/ash/test/ash_test_helper.cc
+++ b/ash/test/ash_test_helper.cc
@@ -4,6 +4,9 @@
 
 #include "ash/test/ash_test_helper.h"
 
+#include <algorithm>
+#include <set>
+
 #include "ash/accelerators/accelerator_controller_delegate_aura.h"
 #include "ash/ash_switches.h"
 #include "ash/aura/shell_port_classic.h"
@@ -20,7 +23,6 @@
 #include "ash/test/ash_test_views_delegate.h"
 #include "ash/test/display_configuration_controller_test_api.h"
 #include "ash/test/test_screenshot_delegate.h"
-#include "ash/test/test_session_state_delegate.h"
 #include "ash/test/test_shell_delegate.h"
 #include "ash/test/test_system_tray_delegate.h"
 #include "ash/wm_window.h"
@@ -266,13 +268,6 @@
   run_loop.RunUntilIdle();
 }
 
-// static
-TestSessionStateDelegate* AshTestHelper::GetTestSessionStateDelegate() {
-  CHECK(ShellPort::HasInstance());
-  return static_cast<TestSessionStateDelegate*>(
-      ShellPort::Get()->GetSessionStateDelegate());
-}
-
 aura::Window* AshTestHelper::CurrentContext() {
   aura::Window* root_window = Shell::GetRootWindowForNewWindows();
   if (!root_window)
@@ -332,8 +327,6 @@
       new mus::WindowManager(nullptr, config_, show_primary_root_on_connect));
   window_manager_app_->window_manager()->shell_delegate_.reset(
       test_shell_delegate_);
-  window_manager_app_->window_manager()
-      ->create_session_state_delegate_stub_for_test_ = false;
 
   window_tree_client_setup_.InitForWindowManager(
       window_manager_app_->window_manager_.get(),
diff --git a/ash/test/ash_test_helper.h b/ash/test/ash_test_helper.h
index 2aac0792..3ee2bb3 100644
--- a/ash/test/ash_test_helper.h
+++ b/ash/test/ash_test_helper.h
@@ -8,6 +8,7 @@
 #include <stdint.h>
 
 #include <memory>
+#include <string>
 #include <utility>
 #include <vector>
 
@@ -58,7 +59,6 @@
 class TestScreenshotDelegate;
 class TestShellDelegate;
 class TestSessionControllerClient;
-class TestSessionStateDelegate;
 
 // A helper class that does common initialization required for Ash. Creates a
 // root window and an ash::Shell instance with a test delegate.
@@ -85,8 +85,6 @@
 
   void RunAllPendingInMessageLoop();
 
-  static TestSessionStateDelegate* GetTestSessionStateDelegate();
-
   TestShellDelegate* test_shell_delegate() { return test_shell_delegate_; }
   void set_test_shell_delegate(TestShellDelegate* test_shell_delegate) {
     test_shell_delegate_ = test_shell_delegate;
diff --git a/ash/test/shell_test_api.cc b/ash/test/shell_test_api.cc
index a60db9e..ca93869 100644
--- a/ash/test/shell_test_api.cc
+++ b/ash/test/shell_test_api.cc
@@ -4,9 +4,10 @@
 
 #include "ash/test/shell_test_api.h"
 
+#include <utility>
+
 #include "ash/palette_delegate.h"
 #include "ash/root_window_controller.h"
-#include "ash/session/session_state_delegate.h"
 #include "ash/shell.h"
 
 namespace ash {
@@ -41,10 +42,5 @@
   shell_->palette_delegate_ = std::move(palette_delegate);
 }
 
-void ShellTestApi::SetSessionStateDelegate(
-    SessionStateDelegate* session_state_delegate) {
-  shell_->session_state_delegate_.reset(session_state_delegate);
-}
-
 }  // namespace test
 }  // namespace ash
diff --git a/ash/test/shell_test_api.h b/ash/test/shell_test_api.h
index f1eb5d4..27f9060f 100644
--- a/ash/test/shell_test_api.h
+++ b/ash/test/shell_test_api.h
@@ -14,7 +14,6 @@
 class DragDropController;
 class MaximizeModeWindowManager;
 class PaletteDelegate;
-class SessionStateDelegate;
 class ScreenPositionController;
 class Shell;
 class SystemGestureEventFilter;
@@ -36,7 +35,6 @@
   MaximizeModeWindowManager* maximize_mode_window_manager();
 
   void SetPaletteDelegate(std::unique_ptr<PaletteDelegate> palette_delegate);
-  void SetSessionStateDelegate(SessionStateDelegate* session_state_delegate);
 
  private:
   Shell* shell_;  // not owned
diff --git a/ash/test/test_activation_delegate.cc b/ash/test/test_activation_delegate.cc
index 8d118a7..daab400 100644
--- a/ash/test/test_activation_delegate.cc
+++ b/ash/test/test_activation_delegate.cc
@@ -33,8 +33,8 @@
 
 void TestActivationDelegate::SetWindow(aura::Window* window) {
   window_ = window;
-  aura::client::SetActivationDelegate(window, this);
-  aura::client::SetActivationChangeObserver(window, this);
+  ::wm::SetActivationDelegate(window, this);
+  ::wm::SetActivationChangeObserver(window, this);
 }
 
 bool TestActivationDelegate::ShouldActivate() const {
@@ -43,7 +43,7 @@
 }
 
 void TestActivationDelegate::OnWindowActivated(
-    aura::client::ActivationChangeObserver::ActivationReason reason,
+    ::wm::ActivationChangeObserver::ActivationReason reason,
     aura::Window* gained_active,
     aura::Window* lost_active) {
   DCHECK(window_ == gained_active || window_ == lost_active);
diff --git a/ash/test/test_activation_delegate.h b/ash/test/test_activation_delegate.h
index ca9c7f1..8a3d233 100644
--- a/ash/test/test_activation_delegate.h
+++ b/ash/test/test_activation_delegate.h
@@ -21,8 +21,8 @@
 
 // A test ActivationDelegate that can be used to track activation changes for
 // an aura::Window.
-class TestActivationDelegate : public aura::client::ActivationDelegate,
-                               public aura::client::ActivationChangeObserver {
+class TestActivationDelegate : public ::wm::ActivationDelegate,
+                               public ::wm::ActivationChangeObserver {
  public:
   TestActivationDelegate();
   explicit TestActivationDelegate(bool activate);
@@ -40,13 +40,13 @@
     window_was_active_ = false;
   }
 
-  // Overridden from aura::client::ActivationDelegate:
+  // Overridden from wm::ActivationDelegate:
   bool ShouldActivate() const override;
 
  private:
-  // Overridden from aura::client::ActivationChangeObserver:
+  // Overridden from wm:ActivationChangeObserver:
   void OnWindowActivated(
-      aura::client::ActivationChangeObserver::ActivationReason reason,
+      ::wm::ActivationChangeObserver::ActivationReason reason,
       aura::Window* gained_active,
       aura::Window* lost_active) override;
 
diff --git a/ash/test/test_session_state_delegate.cc b/ash/test/test_session_state_delegate.cc
deleted file mode 100644
index f59eb51..0000000
--- a/ash/test/test_session_state_delegate.cc
+++ /dev/null
@@ -1,27 +0,0 @@
-// Copyright (c) 2013 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "ash/test/test_session_state_delegate.h"
-
-namespace ash {
-namespace test {
-
-TestSessionStateDelegate::TestSessionStateDelegate() = default;
-TestSessionStateDelegate::~TestSessionStateDelegate() = default;
-
-void TestSessionStateDelegate::SetUserImage(const gfx::ImageSkia& user_image) {
-  user_image_ = user_image;
-}
-
-bool TestSessionStateDelegate::ShouldShowAvatar(WmWindow* window) const {
-  return !user_image_.isNull();
-}
-
-gfx::ImageSkia TestSessionStateDelegate::GetAvatarImageForWindow(
-    WmWindow* window) const {
-  return gfx::ImageSkia();
-}
-
-}  // namespace test
-}  // namespace ash
diff --git a/ash/test/test_session_state_delegate.h b/ash/test/test_session_state_delegate.h
deleted file mode 100644
index f478ec3..0000000
--- a/ash/test/test_session_state_delegate.h
+++ /dev/null
@@ -1,36 +0,0 @@
-// Copyright (c) 2013 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef ASH_TEST_TEST_SESSION_STATE_DELEGATE_H_
-#define ASH_TEST_TEST_SESSION_STATE_DELEGATE_H_
-
-#include "ash/session/session_state_delegate.h"
-#include "base/macros.h"
-#include "ui/gfx/image/image_skia.h"
-
-namespace ash {
-namespace test {
-
-class TestSessionStateDelegate : public SessionStateDelegate {
- public:
-  TestSessionStateDelegate();
-  ~TestSessionStateDelegate() override;
-
-  // SessionStateDelegate:
-  bool ShouldShowAvatar(WmWindow* window) const override;
-  gfx::ImageSkia GetAvatarImageForWindow(WmWindow* window) const override;
-
-  // Setting non NULL image enables avatar icon.
-  void SetUserImage(const gfx::ImageSkia& user_image);
-
- private:
-  gfx::ImageSkia user_image_;
-
-  DISALLOW_COPY_AND_ASSIGN(TestSessionStateDelegate);
-};
-
-}  // namespace test
-}  // namespace ash
-
-#endif  // ASH_TEST_TEST_SESSION_STATE_DELEGATE_H_
diff --git a/ash/test/test_shell_delegate.cc b/ash/test/test_shell_delegate.cc
index 235267c5..39dd23ef 100644
--- a/ash/test/test_shell_delegate.cc
+++ b/ash/test/test_shell_delegate.cc
@@ -10,14 +10,12 @@
 #include "ash/palette_delegate.h"
 #include "ash/public/cpp/shell_window_ids.h"
 #include "ash/root_window_controller.h"
-#include "ash/session/session_state_delegate.h"
 #include "ash/shelf/shelf.h"
 #include "ash/shell.h"
 #include "ash/shell_observer.h"
 #include "ash/system/tray/system_tray_notifier.h"
 #include "ash/test/test_accessibility_delegate.h"
 #include "ash/test/test_keyboard_ui.h"
-#include "ash/test/test_session_state_delegate.h"
 #include "ash/test/test_system_tray_delegate.h"
 #include "ash/test/test_wallpaper_delegate.h"
 #include "ash/wm/window_state.h"
@@ -118,10 +116,6 @@
   return base::MakeUnique<TestWallpaperDelegate>();
 }
 
-TestSessionStateDelegate* TestShellDelegate::CreateSessionStateDelegate() {
-  return new TestSessionStateDelegate();
-}
-
 AccessibilityDelegate* TestShellDelegate::CreateAccessibilityDelegate() {
   return new TestAccessibilityDelegate();
 }
diff --git a/ash/test/test_shell_delegate.h b/ash/test/test_shell_delegate.h
index 23cadccbc..fcf01c7a 100644
--- a/ash/test/test_shell_delegate.h
+++ b/ash/test/test_shell_delegate.h
@@ -9,7 +9,6 @@
 #include <string>
 
 #include "ash/shell_delegate.h"
-#include "ash/test/test_session_state_delegate.h"
 #include "base/macros.h"
 
 class PrefService;
@@ -52,7 +51,6 @@
   void OpenUrlFromArc(const GURL& url) override;
   SystemTrayDelegate* CreateSystemTrayDelegate() override;
   std::unique_ptr<WallpaperDelegate> CreateWallpaperDelegate() override;
-  TestSessionStateDelegate* CreateSessionStateDelegate() override;
   AccessibilityDelegate* CreateAccessibilityDelegate() override;
   std::unique_ptr<PaletteDelegate> CreatePaletteDelegate() override;
   ui::MenuModel* CreateContextMenu(Shelf* shelf,
diff --git a/ash/tooltips/tooltip_controller_unittest.cc b/ash/tooltips/tooltip_controller_unittest.cc
index bd2f864..f95d74c 100644
--- a/ash/tooltips/tooltip_controller_unittest.cc
+++ b/ash/tooltips/tooltip_controller_unittest.cc
@@ -68,7 +68,7 @@
 
 TooltipController* GetController() {
   return static_cast<TooltipController*>(
-      aura::client::GetTooltipClient(Shell::GetPrimaryRootWindow()));
+      ::wm::GetTooltipClient(Shell::GetPrimaryRootWindow()));
 }
 
 }  // namespace
@@ -91,8 +91,7 @@
 };
 
 TEST_F(TooltipControllerTest, NonNullTooltipClient) {
-  EXPECT_TRUE(aura::client::GetTooltipClient(Shell::GetPrimaryRootWindow()) !=
-              NULL);
+  EXPECT_TRUE(::wm::GetTooltipClient(Shell::GetPrimaryRootWindow()) != NULL);
   EXPECT_EQ(base::string16(), helper_->GetTooltipText());
   EXPECT_EQ(NULL, helper_->GetTooltipWindow());
   EXPECT_FALSE(helper_->IsTooltipVisible());
diff --git a/ash/wm/drag_details.cc b/ash/wm/drag_details.cc
index c5de58a..ee93ae8 100644
--- a/ash/wm/drag_details.cc
+++ b/ash/wm/drag_details.cc
@@ -46,7 +46,7 @@
 DragDetails::DragDetails(aura::Window* window,
                          const gfx::Point& location,
                          int window_component,
-                         aura::client::WindowMoveSource source)
+                         ::wm::WindowMoveSource source)
     : initial_state_type(wm::GetWindowState(window)->GetStateType()),
       initial_bounds_in_parent(window->bounds()),
       initial_location_in_parent(location),
diff --git a/ash/wm/drag_details.h b/ash/wm/drag_details.h
index 89e1129..77cb36c 100644
--- a/ash/wm/drag_details.h
+++ b/ash/wm/drag_details.h
@@ -21,7 +21,7 @@
               const gfx::Point& location,
               int window_component,
               // TODO(sky): make wm type.
-              aura::client::WindowMoveSource source);
+              ::wm::WindowMoveSource source);
   ~DragDetails();
 
   ash::wm::WindowStateType initial_state_type;
@@ -55,7 +55,7 @@
   const bool is_resizable;
 
   // Source of the event initiating the drag.
-  const aura::client::WindowMoveSource source;
+  const ::wm::WindowMoveSource source;
 
   // True if the window should attach to the shelf after releasing.
   bool should_attach_to_shelf;
diff --git a/ash/wm/drag_window_resizer_unittest.cc b/ash/wm/drag_window_resizer_unittest.cc
index 5801456..0f6176c 100644
--- a/ash/wm/drag_window_resizer_unittest.cc
+++ b/ash/wm/drag_window_resizer_unittest.cc
@@ -140,7 +140,7 @@
       const gfx::Point& point_in_parent,
       int window_component) {
     return CreateWindowResizer(window, point_in_parent, window_component,
-                               aura::client::WINDOW_MOVE_SOURCE_MOUSE)
+                               ::wm::WINDOW_MOVE_SOURCE_MOUSE)
         .release();
   }
 
diff --git a/ash/wm/immersive_focus_watcher_aura.cc b/ash/wm/immersive_focus_watcher_aura.cc
index 202e9bc..f4ffaad 100644
--- a/ash/wm/immersive_focus_watcher_aura.cc
+++ b/ash/wm/immersive_focus_watcher_aura.cc
@@ -184,7 +184,7 @@
   } else {
     aura::Window* native_window = widget->GetNativeWindow();
     aura::Window* active_window =
-        aura::client::GetActivationClient(native_window->GetRootWindow())
+        ::wm::GetActivationClient(native_window->GetRootWindow())
             ->GetActiveWindow();
     if (GetAnchorView(active_window)) {
       // BubbleObserver will already have locked the top-of-window views if the
diff --git a/ash/wm/maximize_mode/maximize_mode_window_manager.cc b/ash/wm/maximize_mode/maximize_mode_window_manager.cc
index 32dd2eba..41cd8ad 100644
--- a/ash/wm/maximize_mode/maximize_mode_window_manager.cc
+++ b/ash/wm/maximize_mode/maximize_mode_window_manager.cc
@@ -7,7 +7,6 @@
 #include "ash/ash_switches.h"
 #include "ash/public/cpp/shell_window_ids.h"
 #include "ash/root_window_controller.h"
-#include "ash/session/session_state_delegate.h"
 #include "ash/shell.h"
 #include "ash/shell_port.h"
 #include "ash/wm/maximize_mode/maximize_mode_backdrop_delegate_impl.h"
diff --git a/ash/wm/mru_window_tracker.h b/ash/wm/mru_window_tracker.h
index f6cfabe5..c90da432 100644
--- a/ash/wm/mru_window_tracker.h
+++ b/ash/wm/mru_window_tracker.h
@@ -17,9 +17,8 @@
 
 // Maintains a most recently used list of windows. This is used for window
 // cycling using Alt+Tab and overview mode.
-class ASH_EXPORT MruWindowTracker
-    : public aura::client::ActivationChangeObserver,
-      public aura::WindowObserver {
+class ASH_EXPORT MruWindowTracker : public ::wm::ActivationChangeObserver,
+                                    public aura::WindowObserver {
  public:
   using WindowList = std::vector<aura::Window*>;
 
@@ -46,7 +45,7 @@
   // front.
   void SetActiveWindow(aura::Window* active_window);
 
-  // Overridden from aura::client::ActivationChangeObserver:
+  // Overridden from wm::ActivationChangeObserver:
   void OnWindowActivated(ActivationReason reason,
                          aura::Window* gained_active,
                          aura::Window* lost_active) override;
diff --git a/ash/wm/mru_window_tracker_unittest.cc b/ash/wm/mru_window_tracker_unittest.cc
index 3d6f305..b0e69da2 100644
--- a/ash/wm/mru_window_tracker_unittest.cc
+++ b/ash/wm/mru_window_tracker_unittest.cc
@@ -87,7 +87,7 @@
 
   // Start dragging the window.
   wm::GetWindowState(w1.get())->CreateDragDetails(
-      gfx::Point(), HTRIGHT, aura::client::WINDOW_MOVE_SOURCE_TOUCH);
+      gfx::Point(), HTRIGHT, ::wm::WINDOW_MOVE_SOURCE_TOUCH);
 
   // The dragged window should only be in the list once.
   MruWindowTracker::WindowList window_list =
diff --git a/ash/wm/overview/window_selector.h b/ash/wm/overview/window_selector.h
index 16e41da..72913ff 100644
--- a/ash/wm/overview/window_selector.h
+++ b/ash/wm/overview/window_selector.h
@@ -36,7 +36,7 @@
 // one by clicking or tapping on it.
 class ASH_EXPORT WindowSelector : public display::DisplayObserver,
                                   public aura::WindowObserver,
-                                  public aura::client::ActivationChangeObserver,
+                                  public ::wm::ActivationChangeObserver,
                                   public views::TextfieldController {
  public:
   // Returns true if the window can be selected in overview mode.
@@ -95,7 +95,7 @@
   void OnWindowHierarchyChanged(const HierarchyChangeParams& params) override;
   void OnWindowDestroying(aura::Window* window) override;
 
-  // aura::client::ActivationChangeObserver:
+  // wm::ActivationChangeObserver:
   void OnWindowActivated(ActivationReason reason,
                          aura::Window* gained_active,
                          aura::Window* lost_active) override;
diff --git a/ash/wm/overview/window_selector_unittest.cc b/ash/wm/overview/window_selector_unittest.cc
index ee95662..1b68e02 100644
--- a/ash/wm/overview/window_selector_unittest.cc
+++ b/ash/wm/overview/window_selector_unittest.cc
@@ -63,8 +63,7 @@
 const char kActiveWindowChangedFromOverview[] =
     "WindowSelector_ActiveWindowChanged";
 
-class NonActivatableActivationDelegate
-    : public aura::client::ActivationDelegate {
+class NonActivatableActivationDelegate : public ::wm::ActivationDelegate {
  public:
   bool ShouldActivate() const override { return false; }
 };
@@ -117,8 +116,7 @@
   }
   aura::Window* CreateNonActivatableWindow(const gfx::Rect& bounds) {
     aura::Window* window = CreateWindow(bounds);
-    aura::client::SetActivationDelegate(window,
-                                        &non_activatable_activation_delegate_);
+    ::wm::SetActivationDelegate(window, &non_activatable_activation_delegate_);
     EXPECT_FALSE(wm::CanActivateWindow(window));
     return window;
   }
@@ -1843,9 +1841,8 @@
 TEST_F(WindowSelectorTest, OverviewWhileDragging) {
   const gfx::Rect bounds(10, 10, 100, 100);
   std::unique_ptr<aura::Window> window(CreateWindow(bounds));
-  std::unique_ptr<WindowResizer> resizer(
-      CreateWindowResizer(window.get(), gfx::Point(), HTCAPTION,
-                          aura::client::WINDOW_MOVE_SOURCE_MOUSE));
+  std::unique_ptr<WindowResizer> resizer(CreateWindowResizer(
+      window.get(), gfx::Point(), HTCAPTION, ::wm::WINDOW_MOVE_SOURCE_MOUSE));
   ASSERT_TRUE(resizer.get());
   gfx::Point location = resizer->GetInitialLocation();
   location.Offset(20, 20);
diff --git a/ash/wm/panels/panel_layout_manager.cc b/ash/wm/panels/panel_layout_manager.cc
index c0eecb1..b57ab56 100644
--- a/ash/wm/panels/panel_layout_manager.cc
+++ b/ash/wm/panels/panel_layout_manager.cc
@@ -501,7 +501,7 @@
 }
 
 ////////////////////////////////////////////////////////////////////////////////
-// PanelLayoutManager, aura::client::ActivationChangeObserver implementation:
+// PanelLayoutManager, wm::ActivationChangeObserver implementation:
 
 void PanelLayoutManager::OnWindowActivated(ActivationReason reason,
                                            Window* gained_active,
diff --git a/ash/wm/panels/panel_layout_manager.h b/ash/wm/panels/panel_layout_manager.h
index fc063d34..477d00e 100644
--- a/ash/wm/panels/panel_layout_manager.h
+++ b/ash/wm/panels/panel_layout_manager.h
@@ -53,7 +53,7 @@
 class ASH_EXPORT PanelLayoutManager
     : public aura::LayoutManager,
       public wm::WindowStateObserver,
-      public aura::client::ActivationChangeObserver,
+      public ::wm::ActivationChangeObserver,
       public WmDisplayObserver,
       public ShellObserver,
       public aura::WindowObserver,
@@ -109,10 +109,11 @@
   void OnPostWindowStateTypeChange(wm::WindowState* window_state,
                                    wm::WindowStateType old_type) override;
 
-  // aura::client::ActivationChangeObserver:
-  void OnWindowActivated(ActivationReason reason,
-                         aura::Window* gained_active,
-                         aura::Window* lost_active) override;
+  // wm::ActivationChangeObserver:
+  void OnWindowActivated(
+      ::wm::ActivationChangeObserver::ActivationReason reason,
+      aura::Window* gained_active,
+      aura::Window* lost_active) override;
 
   // WindowTreeHostManager::Observer:
   void OnDisplayConfigurationChanged() override;
diff --git a/ash/wm/panels/panel_window_resizer_unittest.cc b/ash/wm/panels/panel_window_resizer_unittest.cc
index 2cfa05eb..750f8fb 100644
--- a/ash/wm/panels/panel_window_resizer_unittest.cc
+++ b/ash/wm/panels/panel_window_resizer_unittest.cc
@@ -71,7 +71,7 @@
 
   void DragStart(aura::Window* window) {
     resizer_ = CreateWindowResizer(window, window->bounds().origin(), HTCAPTION,
-                                   aura::client::WINDOW_MOVE_SOURCE_MOUSE);
+                                   ::wm::WINDOW_MOVE_SOURCE_MOUSE);
   }
 
   void DragMove(int dx, int dy) {
diff --git a/ash/wm/system_modal_container_layout_manager_unittest.cc b/ash/wm/system_modal_container_layout_manager_unittest.cc
index 19d167d8..ba2a592 100644
--- a/ash/wm/system_modal_container_layout_manager_unittest.cc
+++ b/ash/wm/system_modal_container_layout_manager_unittest.cc
@@ -9,7 +9,6 @@
 #include "ash/public/cpp/config.h"
 #include "ash/public/cpp/shell_window_ids.h"
 #include "ash/root_window_controller.h"
-#include "ash/session/session_state_delegate.h"
 #include "ash/shell.h"
 #include "ash/shell_port.h"
 #include "ash/test/ash_test_base.h"
diff --git a/ash/wm/toplevel_window_event_handler.cc b/ash/wm/toplevel_window_event_handler.cc
index e8399ee8..adaa9f6 100644
--- a/ash/wm/toplevel_window_event_handler.cc
+++ b/ash/wm/toplevel_window_event_handler.cc
@@ -41,15 +41,15 @@
   wm_toplevel_window_event_handler_.OnGestureEvent(event, target);
 }
 
-aura::client::WindowMoveResult ToplevelWindowEventHandler::RunMoveLoop(
+::wm::WindowMoveResult ToplevelWindowEventHandler::RunMoveLoop(
     aura::Window* source,
     const gfx::Vector2d& drag_offset,
-    aura::client::WindowMoveSource move_source) {
+    ::wm::WindowMoveSource move_source) {
   DCHECK(!in_move_loop_);  // Can only handle one nested loop at a time.
   aura::Window* root_window = source->GetRootWindow();
   DCHECK(root_window);
   gfx::Point drag_location;
-  if (move_source == aura::client::WINDOW_MOVE_SOURCE_TOUCH &&
+  if (move_source == ::wm::WINDOW_MOVE_SOURCE_TOUCH &&
       aura::Env::GetInstance()->is_touch_down()) {
     gfx::PointF drag_location_f;
     bool has_point = ui::GestureRecognizer::Get()->GetLastTouchPointForTarget(
@@ -77,7 +77,7 @@
           source, drag_location, HTCAPTION, move_source,
           base::Bind(&ToplevelWindowEventHandler::OnDragCompleted,
                      weak_factory_.GetWeakPtr(), &result, &run_loop))) {
-    return aura::client::MOVE_CANCELED;
+    return ::wm::MOVE_CANCELED;
   }
 
   in_move_loop_ = true;
@@ -96,7 +96,7 @@
   run_loop.Run();
 
   if (!weak_ptr)
-    return aura::client::MOVE_CANCELED;
+    return ::wm::MOVE_CANCELED;
 
   // Make sure the window hasn't been deleted.
   if (tracker.Contains(source))
@@ -104,8 +104,8 @@
 
   in_move_loop_ = false;
   return result == wm::WmToplevelWindowEventHandler::DragResult::SUCCESS
-             ? aura::client::MOVE_SUCCESSFUL
-             : aura::client::MOVE_CANCELED;
+             ? ::wm::MOVE_SUCCESSFUL
+             : ::wm::MOVE_CANCELED;
 }
 
 void ToplevelWindowEventHandler::EndMoveLoop() {
diff --git a/ash/wm/toplevel_window_event_handler.h b/ash/wm/toplevel_window_event_handler.h
index eae45c3..76ab2e3 100644
--- a/ash/wm/toplevel_window_event_handler.h
+++ b/ash/wm/toplevel_window_event_handler.h
@@ -23,9 +23,8 @@
 
 namespace ash {
 
-class ASH_EXPORT ToplevelWindowEventHandler
-    : public ui::EventHandler,
-      public aura::client::WindowMoveClient {
+class ASH_EXPORT ToplevelWindowEventHandler : public ui::EventHandler,
+                                              public ::wm::WindowMoveClient {
  public:
   ToplevelWindowEventHandler();
   ~ToplevelWindowEventHandler() override;
@@ -35,11 +34,11 @@
   void OnMouseEvent(ui::MouseEvent* event) override;
   void OnGestureEvent(ui::GestureEvent* event) override;
 
-  // Overridden form aura::client::WindowMoveClient:
-  aura::client::WindowMoveResult RunMoveLoop(
+  // Overridden form wm::WindowMoveClient:
+  ::wm::WindowMoveResult RunMoveLoop(
       aura::Window* source,
       const gfx::Vector2d& drag_offset,
-      aura::client::WindowMoveSource move_source) override;
+      ::wm::WindowMoveSource move_source) override;
   void EndMoveLoop() override;
 
  private:
diff --git a/ash/wm/toplevel_window_event_handler_unittest.cc b/ash/wm/toplevel_window_event_handler_unittest.cc
index 9f3c675..4739631 100644
--- a/ash/wm/toplevel_window_event_handler_unittest.cc
+++ b/ash/wm/toplevel_window_event_handler_unittest.cc
@@ -132,15 +132,15 @@
   // restored after drag completes.
   window_state->set_window_position_managed(true);
   generator.PressLeftButton();
-  aura::client::WindowMoveClient* move_client =
-      aura::client::GetWindowMoveClient(w1->GetRootWindow());
+  ::wm::WindowMoveClient* move_client =
+      ::wm::GetWindowMoveClient(w1->GetRootWindow());
   base::ThreadTaskRunnerHandle::Get()->PostTask(
       FROM_HERE,
       base::Bind(&ContinueAndCompleteDrag, base::Unretained(&generator),
                  base::Unretained(window_state), base::Unretained(w1.get())));
-  EXPECT_EQ(aura::client::MOVE_SUCCESSFUL,
+  EXPECT_EQ(::wm::MOVE_SUCCESSFUL,
             move_client->RunMoveLoop(w1.get(), gfx::Vector2d(100, 100),
-                                     aura::client::WINDOW_MOVE_SOURCE_MOUSE));
+                                     ::wm::WINDOW_MOVE_SOURCE_MOUSE));
   // Window position auto manage property should be restored to true.
   EXPECT_TRUE(window_state->window_position_managed());
   // Position should have been offset by 100,100.
@@ -156,9 +156,9 @@
       FROM_HERE,
       base::Bind(&ContinueAndCompleteDrag, base::Unretained(&generator),
                  base::Unretained(window_state), base::Unretained(w1.get())));
-  EXPECT_EQ(aura::client::MOVE_SUCCESSFUL,
+  EXPECT_EQ(::wm::MOVE_SUCCESSFUL,
             move_client->RunMoveLoop(w1.get(), gfx::Vector2d(100, 100),
-                                     aura::client::WINDOW_MOVE_SOURCE_MOUSE));
+                                     ::wm::WINDOW_MOVE_SOURCE_MOUSE));
   // Window position auto manage property should be restored to true.
   EXPECT_FALSE(window_state->window_position_managed());
   // Position should have been offset by 100,100.
@@ -700,7 +700,7 @@
 }
 
 // Verifies that a drag cannot be started via
-// aura::client::WindowMoveClient::RunMoveLoop() while another drag is already
+// wm::WindowMoveClient::RunMoveLoop() while another drag is already
 // in progress.
 TEST_F(ToplevelWindowEventHandlerTest, RunMoveLoopFailsDuringInProgressDrag) {
   std::unique_ptr<aura::Window> window1(CreateWindow(HTCAPTION));
@@ -714,11 +714,11 @@
   generator.MoveMouseBy(10, 11);
   EXPECT_EQ("10,11 100x100", window1->bounds().ToString());
 
-  aura::client::WindowMoveClient* move_client =
-      aura::client::GetWindowMoveClient(window2->GetRootWindow());
-  EXPECT_EQ(aura::client::MOVE_CANCELED,
+  ::wm::WindowMoveClient* move_client =
+      ::wm::GetWindowMoveClient(window2->GetRootWindow());
+  EXPECT_EQ(::wm::MOVE_CANCELED,
             move_client->RunMoveLoop(window2.get(), gfx::Vector2d(),
-                                     aura::client::WINDOW_MOVE_SOURCE_MOUSE));
+                                     ::wm::WINDOW_MOVE_SOURCE_MOUSE));
 
   generator.ReleaseLeftButton();
   EXPECT_EQ("10,11 100x100", window1->bounds().ToString());
@@ -743,15 +743,15 @@
   generator.PressLeftButton();
   window->SetCapture();
 
-  aura::client::WindowMoveClient* move_client =
-      aura::client::GetWindowMoveClient(window->GetRootWindow());
+  ::wm::WindowMoveClient* move_client =
+      ::wm::GetWindowMoveClient(window->GetRootWindow());
   base::ThreadTaskRunnerHandle::Get()->PostTask(
       FROM_HERE,
       base::Bind(&SendMouseReleaseAndReleaseCapture,
                  base::Unretained(&generator), base::Unretained(window.get())));
-  EXPECT_EQ(aura::client::MOVE_SUCCESSFUL,
+  EXPECT_EQ(::wm::MOVE_SUCCESSFUL,
             move_client->RunMoveLoop(window.get(), gfx::Vector2d(),
-                                     aura::client::WINDOW_MOVE_SOURCE_MOUSE));
+                                     ::wm::WINDOW_MOVE_SOURCE_MOUSE));
 }
 
 namespace {
@@ -770,14 +770,14 @@
   ui::test::EventGenerator generator(Shell::GetPrimaryRootWindow(),
                                      window.get());
 
-  aura::client::WindowMoveClient* move_client =
-      aura::client::GetWindowMoveClient(window->GetRootWindow());
+  ::wm::WindowMoveClient* move_client =
+      ::wm::GetWindowMoveClient(window->GetRootWindow());
   base::ThreadTaskRunnerHandle::Get()->PostTask(
       FROM_HERE, base::Bind(&CheckHasCaptureAndReleaseCapture,
                             base::Unretained(window.get())));
-  EXPECT_EQ(aura::client::MOVE_SUCCESSFUL,
+  EXPECT_EQ(::wm::MOVE_SUCCESSFUL,
             move_client->RunMoveLoop(window.get(), gfx::Vector2d(),
-                                     aura::client::WINDOW_MOVE_SOURCE_TOUCH));
+                                     ::wm::WINDOW_MOVE_SOURCE_TOUCH));
 }
 
 // Tests that dragging a snapped window to another display updates the window's
diff --git a/ash/wm/window_manager_unittest.cc b/ash/wm/window_manager_unittest.cc
index 8961a96..9d164a5b 100644
--- a/ash/wm/window_manager_unittest.cc
+++ b/ash/wm/window_manager_unittest.cc
@@ -203,7 +203,7 @@
   w123->Focus();
   EXPECT_EQ(w123.get(),
             aura::client::GetFocusClient(w12.get())->GetFocusedWindow());
-  aura::client::SetActivationDelegate(w1.get(), &activation_delegate);
+  ::wm::SetActivationDelegate(w1.get(), &activation_delegate);
 
   // Hiding the focused window will set the focus to NULL because
   // parent window is not focusable.
@@ -216,12 +216,12 @@
   EXPECT_FALSE(keyev.handled() || details.dispatcher_destroyed);
 
   // Set the focus back to w123
-  aura::client::SetActivationDelegate(w1.get(), NULL);
+  ::wm::SetActivationDelegate(w1.get(), NULL);
   w123->Show();
   w123->Focus();
   EXPECT_EQ(w123.get(),
             aura::client::GetFocusClient(w12.get())->GetFocusedWindow());
-  aura::client::SetActivationDelegate(w1.get(), &activation_delegate);
+  ::wm::SetActivationDelegate(w1.get(), &activation_delegate);
 
   // Removing the focused window will set the focus to NULL because
   // parent window is not focusable.
@@ -233,7 +233,7 @@
 
   // Must set to NULL since the activation delegate will be destroyed before
   // the windows.
-  aura::client::SetActivationDelegate(w1.get(), NULL);
+  ::wm::SetActivationDelegate(w1.get(), NULL);
 }
 
 // Various assertion testing for activating windows.
diff --git a/ash/wm/window_resizer.cc b/ash/wm/window_resizer.cc
index 778d671..62976d9 100644
--- a/ash/wm/window_resizer.cc
+++ b/ash/wm/window_resizer.cc
@@ -220,7 +220,7 @@
 }
 
 void WindowResizer::AdjustDeltaForTouchResize(int* delta_x, int* delta_y) {
-  if (details().source != aura::client::WINDOW_MOVE_SOURCE_TOUCH ||
+  if (details().source != ::wm::WINDOW_MOVE_SOURCE_TOUCH ||
       !(details().bounds_change & kBoundsChange_Resizes))
     return;
 
diff --git a/ash/wm/window_resizer.h b/ash/wm/window_resizer.h
index 4ae6bdd30..2ae3197d 100644
--- a/ash/wm/window_resizer.h
+++ b/ash/wm/window_resizer.h
@@ -104,7 +104,7 @@
     aura::Window* window,
     const gfx::Point& point_in_parent,
     int window_component,
-    aura::client::WindowMoveSource source);
+    ::wm::WindowMoveSource source);
 
 }  // namespace ash
 
diff --git a/ash/wm/window_state.cc b/ash/wm/window_state.cc
index 317e5a0..c3f33ef 100644
--- a/ash/wm/window_state.cc
+++ b/ash/wm/window_state.cc
@@ -337,7 +337,7 @@
 
 void WindowState::CreateDragDetails(const gfx::Point& point_in_parent,
                                     int window_component,
-                                    aura::client::WindowMoveSource source) {
+                                    ::wm::WindowMoveSource source) {
   drag_details_ = base::MakeUnique<DragDetails>(window_, point_in_parent,
                                                 window_component, source);
 }
diff --git a/ash/wm/window_state.h b/ash/wm/window_state.h
index a1dcbfb8..398fe01 100644
--- a/ash/wm/window_state.h
+++ b/ash/wm/window_state.h
@@ -310,7 +310,7 @@
   // active. This should be done before a resizer gets created.
   void CreateDragDetails(const gfx::Point& point_in_parent,
                          int window_component,
-                         aura::client::WindowMoveSource source);
+                         ::wm::WindowMoveSource source);
 
   // Deletes and clears a pointer to DragDetails. This should be done when the
   // resizer gets destroyed.
diff --git a/ash/wm/window_util.cc b/ash/wm/window_util.cc
index b1bba1c..87091ace 100644
--- a/ash/wm/window_util.cc
+++ b/ash/wm/window_util.cc
@@ -69,7 +69,7 @@
 }
 
 aura::Window* GetActiveWindow() {
-  return aura::client::GetActivationClient(Shell::GetPrimaryRootWindow())
+  return ::wm::GetActivationClient(Shell::GetPrimaryRootWindow())
       ->GetActiveWindow();
 }
 
diff --git a/ash/wm/wm_toplevel_window_event_handler.cc b/ash/wm/wm_toplevel_window_event_handler.cc
index 4e062fb..e400861 100644
--- a/ash/wm/wm_toplevel_window_event_handler.cc
+++ b/ash/wm/wm_toplevel_window_event_handler.cc
@@ -278,8 +278,7 @@
           gfx::Point location_in_parent =
               event->details().bounding_box().CenterPoint();
           AttemptToStartDrag(target, location_in_parent, HTCAPTION,
-                             aura::client::WINDOW_MOVE_SOURCE_TOUCH,
-                             EndClosure());
+                             ::wm::WINDOW_MOVE_SOURCE_TOUCH, EndClosure());
           event->StopPropagation();
         }
       }
@@ -300,7 +299,7 @@
       aura::Window::ConvertPointToTarget(target, target->parent(),
                                          &location_in_parent);
       AttemptToStartDrag(target, location_in_parent, component,
-                         aura::client::WINDOW_MOVE_SOURCE_TOUCH, EndClosure());
+                         ::wm::WINDOW_MOVE_SOURCE_TOUCH, EndClosure());
       event->StopPropagation();
       return;
     }
@@ -383,7 +382,7 @@
     aura::Window* window,
     const gfx::Point& point_in_parent,
     int window_component,
-    aura::client::WindowMoveSource source,
+    ::wm::WindowMoveSource source,
     const EndClosure& end_closure) {
   if (window_resizer_.get())
     return false;
@@ -396,7 +395,7 @@
   window_resizer_.reset(new ScopedWindowResizer(this, std::move(resizer)));
 
   pre_drag_window_bounds_ = window->bounds();
-  in_gesture_drag_ = (source == aura::client::WINDOW_MOVE_SOURCE_TOUCH);
+  in_gesture_drag_ = (source == ::wm::WINDOW_MOVE_SOURCE_TOUCH);
   return true;
 }
 
@@ -449,7 +448,7 @@
     aura::Window::ConvertPointToTarget(target, target->parent(),
                                        &location_in_parent);
     AttemptToStartDrag(target, location_in_parent, component,
-                       aura::client::WINDOW_MOVE_SOURCE_MOUSE, EndClosure());
+                       ::wm::WINDOW_MOVE_SOURCE_MOUSE, EndClosure());
     // Set as handled so that other event handlers do no act upon the event
     // but still receive it so that they receive both parts of each pressed/
     // released pair.
diff --git a/ash/wm/wm_toplevel_window_event_handler.h b/ash/wm/wm_toplevel_window_event_handler.h
index da1aa64..7394283f 100644
--- a/ash/wm/wm_toplevel_window_event_handler.h
+++ b/ash/wm/wm_toplevel_window_event_handler.h
@@ -59,7 +59,7 @@
   bool AttemptToStartDrag(aura::Window* window,
                           const gfx::Point& point_in_parent,
                           int window_component,
-                          aura::client::WindowMoveSource source,
+                          ::wm::WindowMoveSource source,
                           const EndClosure& end_closure);
 
   // If there is a drag in progress it is reverted, otherwise does nothing.
diff --git a/ash/wm/workspace/multi_window_resize_controller.cc b/ash/wm/workspace/multi_window_resize_controller.cc
index 6bfdde0..17dfbf92 100644
--- a/ash/wm/workspace/multi_window_resize_controller.cc
+++ b/ash/wm/workspace/multi_window_resize_controller.cc
@@ -474,7 +474,7 @@
   int component = windows_.direction == LEFT_RIGHT ? HTRIGHT : HTBOTTOM;
   wm::WindowState* window_state = wm::GetWindowState(windows_.window1);
   window_state->CreateDragDetails(location_in_parent, component,
-                                  aura::client::WINDOW_MOVE_SOURCE_MOUSE);
+                                  ::wm::WINDOW_MOVE_SOURCE_MOUSE);
   window_resizer_.reset(WorkspaceWindowResizer::Create(window_state, windows));
 
   // Do not hide the resize widget while a drag is active.
diff --git a/ash/wm/workspace/workspace_event_handler_unittest.cc b/ash/wm/workspace/workspace_event_handler_unittest.cc
index eff5968cc..c9238312 100644
--- a/ash/wm/workspace/workspace_event_handler_unittest.cc
+++ b/ash/wm/workspace/workspace_event_handler_unittest.cc
@@ -463,11 +463,11 @@
   std::unique_ptr<aura::Window> window(CreateTestWindow(&delegate, bounds));
   delegate.set_window_component(HTCAPTION);
 
-  ASSERT_TRUE(aura::client::GetWindowMoveClient(window->GetRootWindow()));
+  ASSERT_TRUE(::wm::GetWindowMoveClient(window->GetRootWindow()));
   base::ThreadTaskRunnerHandle::Get()->DeleteSoon(FROM_HERE, window.get());
-  aura::client::GetWindowMoveClient(window->GetRootWindow())
+  ::wm::GetWindowMoveClient(window->GetRootWindow())
       ->RunMoveLoop(window.release(), gfx::Vector2d(),
-                    aura::client::WINDOW_MOVE_SOURCE_MOUSE);
+                    ::wm::WINDOW_MOVE_SOURCE_MOUSE);
 }
 
 // Verifies that double clicking in the header does not maximize if the target
diff --git a/ash/wm/workspace/workspace_layout_manager.cc b/ash/wm/workspace/workspace_layout_manager.cc
index fc67e50..517619a 100644
--- a/ash/wm/workspace/workspace_layout_manager.cc
+++ b/ash/wm/workspace/workspace_layout_manager.cc
@@ -248,8 +248,7 @@
 }
 
 //////////////////////////////////////////////////////////////////////////////
-// WorkspaceLayoutManager,
-// aura::client::ActivationChangeObserver implementation:
+// WorkspaceLayoutManager, wm::ActivationChangeObserver implementation:
 
 void WorkspaceLayoutManager::OnWindowActivated(ActivationReason reason,
                                                aura::Window* gained_active,
diff --git a/ash/wm/workspace/workspace_layout_manager.h b/ash/wm/workspace/workspace_layout_manager.h
index f5bf1a24..3941f95 100644
--- a/ash/wm/workspace/workspace_layout_manager.h
+++ b/ash/wm/workspace/workspace_layout_manager.h
@@ -43,7 +43,7 @@
 class ASH_EXPORT WorkspaceLayoutManager
     : public aura::LayoutManager,
       public aura::WindowObserver,
-      public aura::client::ActivationChangeObserver,
+      public ::wm::ActivationChangeObserver,
       public keyboard::KeyboardControllerObserver,
       public display::DisplayObserver,
       public ShellObserver,
@@ -79,10 +79,11 @@
                              const gfx::Rect& old_bounds,
                              const gfx::Rect& new_bounds) override;
 
-  // aura::client::ActivationChangeObserver overrides:
-  void OnWindowActivated(ActivationReason reason,
-                         aura::Window* gained_active,
-                         aura::Window* lost_active) override;
+  // wm::ActivationChangeObserver overrides:
+  void OnWindowActivated(
+      ::wm::ActivationChangeObserver::ActivationReason reason,
+      aura::Window* gained_active,
+      aura::Window* lost_active) override;
 
   // keyboard::KeyboardControllerObserver overrides:
   void OnKeyboardBoundsChanging(const gfx::Rect& new_bounds) override;
diff --git a/ash/wm/workspace/workspace_layout_manager_keyboard_unittest.cc b/ash/wm/workspace/workspace_layout_manager_keyboard_unittest.cc
index dcdaaac..1b5bea2 100644
--- a/ash/wm/workspace/workspace_layout_manager_keyboard_unittest.cc
+++ b/ash/wm/workspace/workspace_layout_manager_keyboard_unittest.cc
@@ -9,7 +9,6 @@
 
 #include "ash/public/cpp/shell_window_ids.h"
 #include "ash/root_window_controller.h"
-#include "ash/session/session_state_delegate.h"
 #include "ash/shelf/shelf.h"
 #include "ash/shelf/shelf_constants.h"
 #include "ash/shelf/shelf_layout_manager.h"
diff --git a/ash/wm/workspace/workspace_window_resizer.cc b/ash/wm/workspace/workspace_window_resizer.cc
index bfaa88ac..477d15ae 100644
--- a/ash/wm/workspace/workspace_window_resizer.cc
+++ b/ash/wm/workspace/workspace_window_resizer.cc
@@ -40,7 +40,7 @@
     aura::Window* window,
     const gfx::Point& point_in_parent,
     int window_component,
-    aura::client::WindowMoveSource source) {
+    ::wm::WindowMoveSource source) {
   DCHECK(window);
   wm::WindowState* window_state = wm::GetWindowState(window);
   // No need to return a resizer when the window cannot get resized or when a
@@ -328,7 +328,7 @@
   if (event_flags & ui::EF_CONTROL_DOWN) {
     sticky_size = 0;
   } else if ((details().bounds_change & kBoundsChange_Resizes) &&
-             details().source == aura::client::WINDOW_MOVE_SOURCE_TOUCH) {
+             details().source == ::wm::WINDOW_MOVE_SOURCE_TOUCH) {
     sticky_size = kScreenEdgeInsetForTouchDrag;
   } else {
     sticky_size = kScreenEdgeInset;
@@ -488,7 +488,7 @@
 
   // A mousemove should still show the cursor even if the window is
   // being moved or resized with touch, so do not lock the cursor.
-  if (details().source != aura::client::WINDOW_MOVE_SOURCE_TOUCH) {
+  if (details().source != ::wm::WINDOW_MOVE_SOURCE_TOUCH) {
     ShellPort::Get()->LockCursor();
     did_lock_cursor_ = true;
   }
@@ -935,7 +935,7 @@
   // TODO: this likely only wants total display area, not the area of a single
   // display.
   gfx::Rect area(ScreenUtil::GetDisplayWorkAreaBoundsInParent(GetTarget()));
-  if (details().source == aura::client::WINDOW_MOVE_SOURCE_TOUCH) {
+  if (details().source == ::wm::WINDOW_MOVE_SOURCE_TOUCH) {
     // Increase tolerance for touch-snapping near the screen edges. This is only
     // necessary when the work area left or right edge is same as screen edge.
     gfx::Rect display_bounds(ScreenUtil::GetDisplayBoundsInParent(GetTarget()));
diff --git a/ash/wm/workspace/workspace_window_resizer_unittest.cc b/ash/wm/workspace/workspace_window_resizer_unittest.cc
index c3cc31a3..3b75840b 100644
--- a/ash/wm/workspace/workspace_window_resizer_unittest.cc
+++ b/ash/wm/workspace/workspace_window_resizer_unittest.cc
@@ -136,7 +136,7 @@
                                       int window_component) {
     WindowResizer* resizer =
         CreateWindowResizer(window, point_in_parent, window_component,
-                            aura::client::WINDOW_MOVE_SOURCE_MOUSE)
+                            ::wm::WINDOW_MOVE_SOURCE_MOUSE)
             .release();
     workspace_resizer_ = WorkspaceWindowResizer::GetInstanceForTest();
     return resizer;
@@ -145,7 +145,7 @@
       aura::Window* window,
       const gfx::Point& point_in_parent,
       int window_component,
-      aura::client::WindowMoveSource source,
+      ::wm::WindowMoveSource source,
       const std::vector<aura::Window*>& attached_windows) {
     wm::WindowState* window_state = wm::GetWindowState(window);
     window_state->CreateDragDetails(point_in_parent, window_component, source);
@@ -200,9 +200,9 @@
 
   std::vector<aura::Window*> windows;
   windows.push_back(window2_.get());
-  std::unique_ptr<WorkspaceWindowResizer> resizer(CreateWorkspaceResizerForTest(
-      window_.get(), gfx::Point(), HTRIGHT,
-      aura::client::WINDOW_MOVE_SOURCE_MOUSE, windows));
+  std::unique_ptr<WorkspaceWindowResizer> resizer(
+      CreateWorkspaceResizerForTest(window_.get(), gfx::Point(), HTRIGHT,
+                                    ::wm::WINDOW_MOVE_SOURCE_MOUSE, windows));
   ASSERT_TRUE(resizer.get());
   // Move it 100 to the right, which should expand w1 and push w2.
   resizer->Drag(CalculateDragPoint(*resizer, 100, 10), 0);
@@ -234,9 +234,9 @@
 
   std::vector<aura::Window*> windows;
   windows.push_back(window2_.get());
-  std::unique_ptr<WorkspaceWindowResizer> resizer(CreateWorkspaceResizerForTest(
-      window_.get(), gfx::Point(), HTRIGHT,
-      aura::client::WINDOW_MOVE_SOURCE_MOUSE, windows));
+  std::unique_ptr<WorkspaceWindowResizer> resizer(
+      CreateWorkspaceResizerForTest(window_.get(), gfx::Point(), HTRIGHT,
+                                    ::wm::WINDOW_MOVE_SOURCE_MOUSE, windows));
   ASSERT_TRUE(resizer.get());
   // Move it 100 to the left, which should expand w2 and collapse w1.
   resizer->Drag(CalculateDragPoint(*resizer, -100, 10), 0);
@@ -277,9 +277,9 @@
   std::vector<aura::Window*> windows;
   windows.push_back(window2_.get());
   windows.push_back(window3_.get());
-  std::unique_ptr<WorkspaceWindowResizer> resizer(CreateWorkspaceResizerForTest(
-      window_.get(), gfx::Point(), HTRIGHT,
-      aura::client::WINDOW_MOVE_SOURCE_MOUSE, windows));
+  std::unique_ptr<WorkspaceWindowResizer> resizer(
+      CreateWorkspaceResizerForTest(window_.get(), gfx::Point(), HTRIGHT,
+                                    ::wm::WINDOW_MOVE_SOURCE_MOUSE, windows));
   ASSERT_TRUE(resizer.get());
   // Move it 100 to the right, which should expand w1 and push w2 and w3.
   resizer->Drag(CalculateDragPoint(*resizer, 100, -10), 0);
@@ -318,9 +318,9 @@
   std::vector<aura::Window*> windows;
   windows.push_back(window2_.get());
   windows.push_back(window3_.get());
-  std::unique_ptr<WorkspaceWindowResizer> resizer(CreateWorkspaceResizerForTest(
-      window_.get(), gfx::Point(), HTRIGHT,
-      aura::client::WINDOW_MOVE_SOURCE_MOUSE, windows));
+  std::unique_ptr<WorkspaceWindowResizer> resizer(
+      CreateWorkspaceResizerForTest(window_.get(), gfx::Point(), HTRIGHT,
+                                    ::wm::WINDOW_MOVE_SOURCE_MOUSE, windows));
   ASSERT_TRUE(resizer.get());
   // Move it -100 to the right, which should collapse w1 and expand w2 and w3.
   resizer->Drag(CalculateDragPoint(*resizer, -100, -10), 0);
@@ -348,9 +348,9 @@
 
   std::vector<aura::Window*> windows;
   windows.push_back(window2_.get());
-  std::unique_ptr<WorkspaceWindowResizer> resizer(CreateWorkspaceResizerForTest(
-      window_.get(), gfx::Point(), HTBOTTOM,
-      aura::client::WINDOW_MOVE_SOURCE_MOUSE, windows));
+  std::unique_ptr<WorkspaceWindowResizer> resizer(
+      CreateWorkspaceResizerForTest(window_.get(), gfx::Point(), HTBOTTOM,
+                                    ::wm::WINDOW_MOVE_SOURCE_MOUSE, windows));
   ASSERT_TRUE(resizer.get());
   // Move it up 100, which should expand w2 and collapse w1.
   resizer->Drag(CalculateDragPoint(*resizer, 10, -100), 0);
@@ -382,9 +382,9 @@
 
   std::vector<aura::Window*> windows;
   windows.push_back(window2_.get());
-  std::unique_ptr<WorkspaceWindowResizer> resizer(CreateWorkspaceResizerForTest(
-      window_.get(), gfx::Point(), HTBOTTOM,
-      aura::client::WINDOW_MOVE_SOURCE_MOUSE, windows));
+  std::unique_ptr<WorkspaceWindowResizer> resizer(
+      CreateWorkspaceResizerForTest(window_.get(), gfx::Point(), HTBOTTOM,
+                                    ::wm::WINDOW_MOVE_SOURCE_MOUSE, windows));
   ASSERT_TRUE(resizer.get());
   // Move it 100 to the bottom, which should expand w1 and push w2.
   resizer->Drag(CalculateDragPoint(*resizer, 10, 100), 0);
@@ -425,9 +425,9 @@
   std::vector<aura::Window*> windows;
   windows.push_back(window2_.get());
   windows.push_back(window3_.get());
-  std::unique_ptr<WorkspaceWindowResizer> resizer(CreateWorkspaceResizerForTest(
-      window_.get(), gfx::Point(), HTBOTTOM,
-      aura::client::WINDOW_MOVE_SOURCE_MOUSE, windows));
+  std::unique_ptr<WorkspaceWindowResizer> resizer(
+      CreateWorkspaceResizerForTest(window_.get(), gfx::Point(), HTBOTTOM,
+                                    ::wm::WINDOW_MOVE_SOURCE_MOUSE, windows));
   ASSERT_TRUE(resizer.get());
   // Move it 100 down, which should expand w1 and push w2 and w3.
   resizer->Drag(CalculateDragPoint(*resizer, -10, 100), 0);
@@ -466,9 +466,9 @@
   std::vector<aura::Window*> windows;
   windows.push_back(window2_.get());
   windows.push_back(window3_.get());
-  std::unique_ptr<WorkspaceWindowResizer> resizer(CreateWorkspaceResizerForTest(
-      window_.get(), gfx::Point(), HTBOTTOM,
-      aura::client::WINDOW_MOVE_SOURCE_MOUSE, windows));
+  std::unique_ptr<WorkspaceWindowResizer> resizer(
+      CreateWorkspaceResizerForTest(window_.get(), gfx::Point(), HTBOTTOM,
+                                    ::wm::WINDOW_MOVE_SOURCE_MOUSE, windows));
   ASSERT_TRUE(resizer.get());
   // Move it 100 up, which should collapse w1 and expand w2 and w3.
   resizer->Drag(CalculateDragPoint(*resizer, -10, -100), 0);
@@ -508,9 +508,9 @@
 
   std::vector<aura::Window*> windows;
   windows.push_back(window2_.get());
-  std::unique_ptr<WorkspaceWindowResizer> resizer(CreateWorkspaceResizerForTest(
-      window_.get(), gfx::Point(), HTRIGHT,
-      aura::client::WINDOW_MOVE_SOURCE_TOUCH, windows));
+  std::unique_ptr<WorkspaceWindowResizer> resizer(
+      CreateWorkspaceResizerForTest(window_.get(), gfx::Point(), HTRIGHT,
+                                    ::wm::WINDOW_MOVE_SOURCE_TOUCH, windows));
   ASSERT_TRUE(resizer.get());
 
   // Creating a WorkspaceWindowResizer should not lock the cursor.
@@ -748,8 +748,7 @@
     windows.push_back(window2_.get());
     std::unique_ptr<WorkspaceWindowResizer> resizer(
         CreateWorkspaceResizerForTest(window_.get(), gfx::Point(), HTRIGHT,
-                                      aura::client::WINDOW_MOVE_SOURCE_MOUSE,
-                                      windows));
+                                      ::wm::WINDOW_MOVE_SOURCE_MOUSE, windows));
     ASSERT_TRUE(resizer.get());
     // Move it 100 to the right, which should expand w1 and push w2 and w3.
     resizer->Drag(CalculateDragPoint(*resizer, 100, -10), 0);
@@ -763,8 +762,7 @@
     windows.push_back(window3_.get());
     std::unique_ptr<WorkspaceWindowResizer> resizer(
         CreateWorkspaceResizerForTest(window2_.get(), gfx::Point(), HTRIGHT,
-                                      aura::client::WINDOW_MOVE_SOURCE_MOUSE,
-                                      windows));
+                                      ::wm::WINDOW_MOVE_SOURCE_MOUSE, windows));
     ASSERT_TRUE(resizer.get());
     // Move it 100 to the right, which should expand w1 and push w2 and w3.
     resizer->Drag(CalculateDragPoint(*resizer, 100, -10), 0);
@@ -1525,9 +1523,9 @@
   windows.push_back(window2_.get());
   windows.push_back(window3_.get());
   windows.push_back(window4_.get());
-  std::unique_ptr<WorkspaceWindowResizer> resizer(CreateWorkspaceResizerForTest(
-      window_.get(), gfx::Point(), HTRIGHT,
-      aura::client::WINDOW_MOVE_SOURCE_MOUSE, windows));
+  std::unique_ptr<WorkspaceWindowResizer> resizer(
+      CreateWorkspaceResizerForTest(window_.get(), gfx::Point(), HTRIGHT,
+                                    ::wm::WINDOW_MOVE_SOURCE_MOUSE, windows));
   ASSERT_TRUE(resizer.get());
   // Move it 51 to the left, which should contract w1 and expand w2-4.
   // w2 will hit its max size straight away, and in doing so will leave extra
@@ -1557,9 +1555,9 @@
   windows.push_back(window2_.get());
   windows.push_back(window3_.get());
   windows.push_back(window4_.get());
-  std::unique_ptr<WorkspaceWindowResizer> resizer(CreateWorkspaceResizerForTest(
-      window_.get(), gfx::Point(), HTRIGHT,
-      aura::client::WINDOW_MOVE_SOURCE_MOUSE, windows));
+  std::unique_ptr<WorkspaceWindowResizer> resizer(
+      CreateWorkspaceResizerForTest(window_.get(), gfx::Point(), HTRIGHT,
+                                    ::wm::WINDOW_MOVE_SOURCE_MOUSE, windows));
   ASSERT_TRUE(resizer.get());
   // Move it 52 to the left, which should contract w1 and expand w2-4.
   resizer->Drag(CalculateDragPoint(*resizer, -52, 0), 0);
@@ -1586,9 +1584,9 @@
   windows.push_back(window2_.get());
   windows.push_back(window3_.get());
   windows.push_back(window4_.get());
-  std::unique_ptr<WorkspaceWindowResizer> resizer(CreateWorkspaceResizerForTest(
-      window_.get(), gfx::Point(), HTBOTTOM,
-      aura::client::WINDOW_MOVE_SOURCE_MOUSE, windows));
+  std::unique_ptr<WorkspaceWindowResizer> resizer(
+      CreateWorkspaceResizerForTest(window_.get(), gfx::Point(), HTBOTTOM,
+                                    ::wm::WINDOW_MOVE_SOURCE_MOUSE, windows));
   ASSERT_TRUE(resizer.get());
   // Move it 52 up, which should contract w1 and expand w2-4.
   resizer->Drag(CalculateDragPoint(*resizer, 0, -52), 0);
@@ -1615,9 +1613,9 @@
   windows.push_back(window2_.get());
   windows.push_back(window3_.get());
   windows.push_back(window4_.get());
-  std::unique_ptr<WorkspaceWindowResizer> resizer(CreateWorkspaceResizerForTest(
-      window_.get(), gfx::Point(), HTBOTTOM,
-      aura::client::WINDOW_MOVE_SOURCE_MOUSE, windows));
+  std::unique_ptr<WorkspaceWindowResizer> resizer(
+      CreateWorkspaceResizerForTest(window_.get(), gfx::Point(), HTBOTTOM,
+                                    ::wm::WINDOW_MOVE_SOURCE_MOUSE, windows));
   ASSERT_TRUE(resizer.get());
   // Move it 52 down, which should expand w1 and contract w2-4.
   resizer->Drag(CalculateDragPoint(*resizer, 0, 52), 0);
@@ -1642,9 +1640,9 @@
   windows.push_back(window2_.get());
   windows.push_back(window3_.get());
   windows.push_back(window4_.get());
-  std::unique_ptr<WorkspaceWindowResizer> resizer(CreateWorkspaceResizerForTest(
-      window_.get(), gfx::Point(), HTRIGHT,
-      aura::client::WINDOW_MOVE_SOURCE_MOUSE, windows));
+  std::unique_ptr<WorkspaceWindowResizer> resizer(
+      CreateWorkspaceResizerForTest(window_.get(), gfx::Point(), HTRIGHT,
+                                    ::wm::WINDOW_MOVE_SOURCE_MOUSE, windows));
   ASSERT_TRUE(resizer.get());
   // Move it 51 to the left, which should contract w1 and expand w2-3.
   resizer->Drag(CalculateDragPoint(*resizer, -51, 0), 0);
@@ -1669,9 +1667,9 @@
   windows.push_back(window2_.get());
   windows.push_back(window3_.get());
   windows.push_back(window4_.get());
-  std::unique_ptr<WorkspaceWindowResizer> resizer(CreateWorkspaceResizerForTest(
-      window_.get(), gfx::Point(), HTRIGHT,
-      aura::client::WINDOW_MOVE_SOURCE_MOUSE, windows));
+  std::unique_ptr<WorkspaceWindowResizer> resizer(
+      CreateWorkspaceResizerForTest(window_.get(), gfx::Point(), HTRIGHT,
+                                    ::wm::WINDOW_MOVE_SOURCE_MOUSE, windows));
   ASSERT_TRUE(resizer.get());
   // Move it 52 to the left, which should contract w1 and expand and move w2-3.
   resizer->Drag(CalculateDragPoint(*resizer, -52, 0), 0);
@@ -1695,9 +1693,9 @@
   windows.push_back(window2_.get());
   windows.push_back(window3_.get());
   windows.push_back(window4_.get());
-  std::unique_ptr<WorkspaceWindowResizer> resizer(CreateWorkspaceResizerForTest(
-      window_.get(), gfx::Point(), HTRIGHT,
-      aura::client::WINDOW_MOVE_SOURCE_MOUSE, windows));
+  std::unique_ptr<WorkspaceWindowResizer> resizer(
+      CreateWorkspaceResizerForTest(window_.get(), gfx::Point(), HTRIGHT,
+                                    ::wm::WINDOW_MOVE_SOURCE_MOUSE, windows));
   ASSERT_TRUE(resizer.get());
   // Move it 50 to the right, which should expand w1 and contract w2-3, as they
   // won't fit in the root window in their original sizes.
@@ -1721,9 +1719,9 @@
   std::vector<aura::Window*> windows;
   windows.push_back(window2_.get());
   windows.push_back(window3_.get());
-  std::unique_ptr<WorkspaceWindowResizer> resizer(CreateWorkspaceResizerForTest(
-      window_.get(), gfx::Point(), HTRIGHT,
-      aura::client::WINDOW_MOVE_SOURCE_MOUSE, windows));
+  std::unique_ptr<WorkspaceWindowResizer> resizer(
+      CreateWorkspaceResizerForTest(window_.get(), gfx::Point(), HTRIGHT,
+                                    ::wm::WINDOW_MOVE_SOURCE_MOUSE, windows));
   ASSERT_TRUE(resizer.get());
   // Move it 50 to the left, which should contract w1 and expand w2-3.
   resizer->Drag(CalculateDragPoint(*resizer, -50, 0), 0);
diff --git a/ash/wm/workspace_controller_unittest.cc b/ash/wm/workspace_controller_unittest.cc
index 1869117a..6a89c13c 100644
--- a/ash/wm/workspace_controller_unittest.cc
+++ b/ash/wm/workspace_controller_unittest.cc
@@ -1049,7 +1049,7 @@
   // A user moved the window.
   std::unique_ptr<WindowResizer> resizer(
       CreateWindowResizer(window1.get(), gfx::Point(), HTCAPTION,
-                          aura::client::WINDOW_MOVE_SOURCE_MOUSE)
+                          ::wm::WINDOW_MOVE_SOURCE_MOUSE)
           .release());
   gfx::Point location = resizer->GetInitialLocation();
   location.Offset(-50, 0);
diff --git a/ash/wm_window.h b/ash/wm_window.h
index 6aefd96..78cd28f 100644
--- a/ash/wm_window.h
+++ b/ash/wm_window.h
@@ -151,7 +151,7 @@
   WmWindow* GetToplevelWindow();
 
   // The implementation of this matches
-  // aura::client::ActivationClient::GetToplevelWindow().
+  // wm::ActivationClient::GetToplevelWindow().
   WmWindow* GetToplevelWindowForFocus();
 
   // See aura::client::ParentWindowWithContext() for details of what this does.
diff --git a/base/BUILD.gn b/base/BUILD.gn
index 2c276684..7d37750 100644
--- a/base/BUILD.gn
+++ b/base/BUILD.gn
@@ -1698,11 +1698,13 @@
     "base_switches.h",
     "task_scheduler/switches.cc",
     "task_scheduler/switches.h",
-    "win/pe_image.cc",
-    "win/pe_image.h",
   ]
 
   if (is_win) {
+    public_deps = [
+      "//base/win:pe_image",
+    ]
+
     # Disable sanitizer coverage in win/pe_image.cc. It is called by the sandbox
     # before sanitizer coverage can initialize. http://crbug.com/484711
     configs -= [ "//build/config/sanitizers:default_sanitizer_flags" ]
diff --git a/base/task_scheduler/sequence_unittest.cc b/base/task_scheduler/sequence_unittest.cc
index c5d0506..32901328 100644
--- a/base/task_scheduler/sequence_unittest.cc
+++ b/base/task_scheduler/sequence_unittest.cc
@@ -19,7 +19,6 @@
 
 namespace {
 
-
 class TaskSchedulerSequenceTest : public testing::Test {
  public:
   TaskSchedulerSequenceTest()
diff --git a/base/trace_event/process_memory_maps.cc b/base/trace_event/process_memory_maps.cc
index a121239..9d3421e 100644
--- a/base/trace_event/process_memory_maps.cc
+++ b/base/trace_event/process_memory_maps.cc
@@ -20,14 +20,14 @@
 ProcessMemoryMaps::VMRegion::VMRegion()
     : start_address(0),
       size_in_bytes(0),
+      module_timestamp(0),
       protection_flags(0),
       byte_stats_private_dirty_resident(0),
       byte_stats_private_clean_resident(0),
       byte_stats_shared_dirty_resident(0),
       byte_stats_shared_clean_resident(0),
       byte_stats_swapped(0),
-      byte_stats_proportional_resident(0) {
-}
+      byte_stats_proportional_resident(0) {}
 
 ProcessMemoryMaps::VMRegion::VMRegion(const VMRegion& other) = default;
 
@@ -47,6 +47,8 @@
 
     value->SetString("sa", StringPrintf(kHexFmt, region.start_address));
     value->SetString("sz", StringPrintf(kHexFmt, region.size_in_bytes));
+    if (region.module_timestamp)
+      value->SetString("ts", StringPrintf(kHexFmt, region.module_timestamp));
     value->SetInteger("pf", region.protection_flags);
     value->SetString("mf", region.mapped_file);
 
diff --git a/base/trace_event/process_memory_maps.h b/base/trace_event/process_memory_maps.h
index 6a73674..2639461 100644
--- a/base/trace_event/process_memory_maps.h
+++ b/base/trace_event/process_memory_maps.h
@@ -32,6 +32,7 @@
 
     uint64_t start_address;
     uint64_t size_in_bytes;
+    uint64_t module_timestamp;
     uint32_t protection_flags;
     std::string mapped_file;
 
diff --git a/base/win/BUILD.gn b/base/win/BUILD.gn
index 5d3d094..21a489d 100644
--- a/base/win/BUILD.gn
+++ b/base/win/BUILD.gn
@@ -61,3 +61,10 @@
     "//base/win:eventlog_provider_dll_version",
   ]
 }
+
+static_library("pe_image") {
+  sources = [
+    "pe_image.cc",
+    "pe_image.h",
+  ]
+}
diff --git a/cc/tiles/software_image_decode_cache.cc b/cc/tiles/software_image_decode_cache.cc
index c41e240..c3b6eb7d 100644
--- a/cc/tiles/software_image_decode_cache.cc
+++ b/cc/tiles/software_image_decode_cache.cc
@@ -250,7 +250,7 @@
   // image does not fit into the budget, then we don't ref this image, since it
   // will be decoded at raster time which is when it will be temporarily put in
   // the cache.
-  ImageKey key = ImageKey::FromDrawImage(image);
+  ImageKey key = ImageKey::FromDrawImage(image, format_);
   TRACE_EVENT1(TRACE_DISABLED_BY_DEFAULT("cc.debug"),
                "SoftwareImageDecodeCache::GetTaskForImageAndRef", "key",
                key.ToString());
@@ -345,7 +345,7 @@
   //   2a. The image isn't in the locked cache because we didn't get to decode
   //       it yet (or failed to decode it).
   //   2b. Unlock the image but keep it in list.
-  const ImageKey& key = ImageKey::FromDrawImage(image);
+  const ImageKey& key = ImageKey::FromDrawImage(image, format_);
   TRACE_EVENT1(TRACE_DISABLED_BY_DEFAULT("cc.debug"),
                "SoftwareImageDecodeCache::UnrefImage", "key", key.ToString());
 
@@ -458,7 +458,7 @@
 
 DecodedDrawImage SoftwareImageDecodeCache::GetDecodedImageForDraw(
     const DrawImage& draw_image) {
-  ImageKey key = ImageKey::FromDrawImage(draw_image);
+  ImageKey key = ImageKey::FromDrawImage(draw_image, format_);
   TRACE_EVENT1(TRACE_DISABLED_BY_DEFAULT("cc.debug"),
                "SoftwareImageDecodeCache::GetDecodedImageForDraw", "key",
                key.ToString());
@@ -620,7 +620,7 @@
                                      kNone_SkFilterQuality, SkMatrix::I(),
                                      key.target_color_space());
   ImageKey original_size_key =
-      ImageKey::FromDrawImage(original_size_draw_image);
+      ImageKey::FromDrawImage(original_size_draw_image, format_);
   sk_sp<SkColorSpace> target_color_space =
       key.target_color_space().ToSkColorSpace();
 
@@ -684,7 +684,7 @@
                                      kNone_SkFilterQuality, SkMatrix::I(),
                                      key.target_color_space());
   ImageKey original_size_key =
-      ImageKey::FromDrawImage(original_size_draw_image);
+      ImageKey::FromDrawImage(original_size_draw_image, format_);
   sk_sp<SkColorSpace> target_color_space =
       key.target_color_space().ToSkColorSpace();
 
@@ -747,8 +747,8 @@
     const DecodedDrawImage& decoded_image) {
   TRACE_EVENT1(TRACE_DISABLED_BY_DEFAULT("cc.debug"),
                "SoftwareImageDecodeCache::DrawWithImageFinished", "key",
-               ImageKey::FromDrawImage(image).ToString());
-  ImageKey key = ImageKey::FromDrawImage(image);
+               ImageKey::FromDrawImage(image, format_).ToString());
+  ImageKey key = ImageKey::FromDrawImage(image, format_);
   if (!decoded_image.image())
     return;
 
@@ -904,7 +904,8 @@
 }
 
 // SoftwareImageDecodeCacheKey
-ImageDecodeCacheKey ImageDecodeCacheKey::FromDrawImage(const DrawImage& image) {
+ImageDecodeCacheKey ImageDecodeCacheKey::FromDrawImage(const DrawImage& image,
+                                                       ResourceFormat format) {
   const SkSize& scale = image.scale();
   // If the src_rect falls outside of the image, we need to clip it since
   // otherwise we might end up with uninitialized memory in the decode process.
@@ -933,6 +934,10 @@
     quality = kMedium_SkFilterQuality;
   }
 
+  // Skia doesn't scale an RGBA_4444 format, so always use the original decode.
+  if (format == RGBA_4444)
+    quality = std::min(quality, kLow_SkFilterQuality);
+
   // Drop from high to medium if the the matrix we applied wasn't decomposable,
   // or if the scaled image will be too large.
   if (quality == kHigh_SkFilterQuality) {
diff --git a/cc/tiles/software_image_decode_cache.h b/cc/tiles/software_image_decode_cache.h
index ab0713af..755770b 100644
--- a/cc/tiles/software_image_decode_cache.h
+++ b/cc/tiles/software_image_decode_cache.h
@@ -36,7 +36,8 @@
 // in the cache multiple times at different scales and filter qualities.
 class CC_EXPORT ImageDecodeCacheKey {
  public:
-  static ImageDecodeCacheKey FromDrawImage(const DrawImage& image);
+  static ImageDecodeCacheKey FromDrawImage(const DrawImage& image,
+                                           ResourceFormat format);
 
   ImageDecodeCacheKey(const ImageDecodeCacheKey& other);
 
diff --git a/cc/tiles/software_image_decode_cache_perftest.cc b/cc/tiles/software_image_decode_cache_perftest.cc
index 6425598..3a4b93ff 100644
--- a/cc/tiles/software_image_decode_cache_perftest.cc
+++ b/cc/tiles/software_image_decode_cache_perftest.cc
@@ -68,7 +68,7 @@
     timer_.Reset();
     do {
       for (auto& image : images)
-        ImageDecodeCacheKey::FromDrawImage(image);
+        ImageDecodeCacheKey::FromDrawImage(image, RGBA_8888);
       timer_.NextLap();
     } while (!timer_.HasTimeLimitExpired());
 
diff --git a/cc/tiles/software_image_decode_cache_unittest.cc b/cc/tiles/software_image_decode_cache_unittest.cc
index b4bc472..90aa66e4 100644
--- a/cc/tiles/software_image_decode_cache_unittest.cc
+++ b/cc/tiles/software_image_decode_cache_unittest.cc
@@ -65,7 +65,7 @@
                        CreateMatrix(SkSize::Make(0.5f, 1.5f), is_decomposable),
                        DefaultColorSpace());
 
-  auto key = ImageDecodeCacheKey::FromDrawImage(draw_image);
+  auto key = ImageDecodeCacheKey::FromDrawImage(draw_image, RGBA_8888);
   EXPECT_EQ(image->uniqueID(), key.image_id());
   EXPECT_EQ(kNone_SkFilterQuality, key.filter_quality());
   EXPECT_EQ(100, key.target_size().width());
@@ -86,7 +86,7 @@
                        CreateMatrix(SkSize::Make(0.5f, 1.5f), is_decomposable),
                        DefaultColorSpace());
 
-  auto key = ImageDecodeCacheKey::FromDrawImage(draw_image);
+  auto key = ImageDecodeCacheKey::FromDrawImage(draw_image, RGBA_8888);
   EXPECT_EQ(image->uniqueID(), key.image_id());
   EXPECT_EQ(kMedium_SkFilterQuality, key.filter_quality());
   EXPECT_EQ(100, key.target_size().width());
@@ -95,6 +95,42 @@
   EXPECT_EQ(100u * 100u * 4u, key.locked_bytes());
 }
 
+TEST(SoftwareImageDecodeCacheTest, LowUnscalableFormatStaysLow) {
+  sk_sp<SkImage> image = CreateImage(100, 100);
+  bool is_decomposable = true;
+  DrawImage draw_image(CreatePaintImage(image),
+                       SkIRect::MakeWH(image->width(), image->height()),
+                       kLow_SkFilterQuality,
+                       CreateMatrix(SkSize::Make(0.5f, 1.5f), is_decomposable),
+                       DefaultColorSpace());
+
+  auto key = ImageDecodeCacheKey::FromDrawImage(draw_image, RGBA_4444);
+  EXPECT_EQ(image->uniqueID(), key.image_id());
+  EXPECT_EQ(kLow_SkFilterQuality, key.filter_quality());
+  EXPECT_EQ(100, key.target_size().width());
+  EXPECT_EQ(100, key.target_size().height());
+  EXPECT_TRUE(key.can_use_original_size_decode());
+  EXPECT_EQ(100u * 100u * 4u, key.locked_bytes());
+}
+
+TEST(SoftwareImageDecodeCacheTest, HighUnscalableFormatBecomesLow) {
+  sk_sp<SkImage> image = CreateImage(100, 100);
+  bool is_decomposable = true;
+  DrawImage draw_image(CreatePaintImage(image),
+                       SkIRect::MakeWH(image->width(), image->height()),
+                       kHigh_SkFilterQuality,
+                       CreateMatrix(SkSize::Make(1.5f, 1.5f), is_decomposable),
+                       DefaultColorSpace());
+
+  auto key = ImageDecodeCacheKey::FromDrawImage(draw_image, RGBA_4444);
+  EXPECT_EQ(image->uniqueID(), key.image_id());
+  EXPECT_EQ(kLow_SkFilterQuality, key.filter_quality());
+  EXPECT_EQ(100, key.target_size().width());
+  EXPECT_EQ(100, key.target_size().height());
+  EXPECT_TRUE(key.can_use_original_size_decode());
+  EXPECT_EQ(100u * 100u * 4u, key.locked_bytes());
+}
+
 TEST(SoftwareImageDecodeCacheTest, ImageKeyLowQualityKeptLowIfUpscale) {
   sk_sp<SkImage> image = CreateImage(100, 100);
   bool is_decomposable = true;
@@ -104,7 +140,7 @@
                        CreateMatrix(SkSize::Make(1.5f, 1.5f), is_decomposable),
                        DefaultColorSpace());
 
-  auto key = ImageDecodeCacheKey::FromDrawImage(draw_image);
+  auto key = ImageDecodeCacheKey::FromDrawImage(draw_image, RGBA_8888);
   EXPECT_EQ(image->uniqueID(), key.image_id());
   EXPECT_EQ(kLow_SkFilterQuality, key.filter_quality());
   EXPECT_EQ(100, key.target_size().width());
@@ -123,7 +159,7 @@
       quality, CreateMatrix(SkSize::Make(0.5f, 1.5f), is_decomposable),
       DefaultColorSpace());
 
-  auto key = ImageDecodeCacheKey::FromDrawImage(draw_image);
+  auto key = ImageDecodeCacheKey::FromDrawImage(draw_image, RGBA_8888);
   EXPECT_EQ(image->uniqueID(), key.image_id());
   EXPECT_EQ(quality, key.filter_quality());
   EXPECT_EQ(100, key.target_size().width());
@@ -142,7 +178,7 @@
       quality, CreateMatrix(SkSize::Make(1.5f, 1.5f), is_decomposable),
       DefaultColorSpace());
 
-  auto key = ImageDecodeCacheKey::FromDrawImage(draw_image);
+  auto key = ImageDecodeCacheKey::FromDrawImage(draw_image, RGBA_8888);
   EXPECT_EQ(image->uniqueID(), key.image_id());
   EXPECT_EQ(kLow_SkFilterQuality, key.filter_quality());
   EXPECT_EQ(100, key.target_size().width());
@@ -161,7 +197,7 @@
       quality, CreateMatrix(SkSize::Make(1.f, 1.f), is_decomposable),
       DefaultColorSpace());
 
-  auto key = ImageDecodeCacheKey::FromDrawImage(draw_image);
+  auto key = ImageDecodeCacheKey::FromDrawImage(draw_image, RGBA_8888);
   EXPECT_EQ(image->uniqueID(), key.image_id());
   EXPECT_EQ(kLow_SkFilterQuality, key.filter_quality());
   EXPECT_EQ(100, key.target_size().width());
@@ -181,7 +217,7 @@
       quality, CreateMatrix(SkSize::Make(1.001f, 1.001f), is_decomposable),
       DefaultColorSpace());
 
-  auto key = ImageDecodeCacheKey::FromDrawImage(draw_image);
+  auto key = ImageDecodeCacheKey::FromDrawImage(draw_image, RGBA_8888);
   EXPECT_EQ(image->uniqueID(), key.image_id());
   EXPECT_EQ(kLow_SkFilterQuality, key.filter_quality());
   EXPECT_EQ(100, key.target_size().width());
@@ -201,7 +237,7 @@
       quality, CreateMatrix(SkSize::Make(0.999f, 0.999f), is_decomposable),
       DefaultColorSpace());
 
-  auto key = ImageDecodeCacheKey::FromDrawImage(draw_image);
+  auto key = ImageDecodeCacheKey::FromDrawImage(draw_image, RGBA_8888);
   EXPECT_EQ(image->uniqueID(), key.image_id());
   EXPECT_EQ(kLow_SkFilterQuality, key.filter_quality());
   EXPECT_EQ(100, key.target_size().width());
@@ -221,7 +257,7 @@
       quality, CreateMatrix(SkSize::Make(0.5f, 1.5f), is_decomposable),
       DefaultColorSpace());
 
-  auto key = ImageDecodeCacheKey::FromDrawImage(draw_image);
+  auto key = ImageDecodeCacheKey::FromDrawImage(draw_image, RGBA_8888);
   EXPECT_EQ(image->uniqueID(), key.image_id());
   EXPECT_EQ(kLow_SkFilterQuality, key.filter_quality());
   EXPECT_EQ(100, key.target_size().width());
@@ -240,7 +276,7 @@
       quality, CreateMatrix(SkSize::Make(1.5f, 1.5f), is_decomposable),
       DefaultColorSpace());
 
-  auto key = ImageDecodeCacheKey::FromDrawImage(draw_image);
+  auto key = ImageDecodeCacheKey::FromDrawImage(draw_image, RGBA_8888);
   EXPECT_EQ(image->uniqueID(), key.image_id());
   EXPECT_EQ(kLow_SkFilterQuality, key.filter_quality());
   EXPECT_EQ(500, key.target_size().width());
@@ -259,7 +295,7 @@
       quality, CreateMatrix(SkSize::Make(1.f, 1.f), is_decomposable),
       DefaultColorSpace());
 
-  auto key = ImageDecodeCacheKey::FromDrawImage(draw_image);
+  auto key = ImageDecodeCacheKey::FromDrawImage(draw_image, RGBA_8888);
   EXPECT_EQ(image->uniqueID(), key.image_id());
   EXPECT_EQ(kLow_SkFilterQuality, key.filter_quality());
   EXPECT_EQ(500, key.target_size().width());
@@ -278,7 +314,7 @@
       quality, CreateMatrix(SkSize::Make(0.75f, 0.75f), is_decomposable),
       DefaultColorSpace());
 
-  auto key = ImageDecodeCacheKey::FromDrawImage(draw_image);
+  auto key = ImageDecodeCacheKey::FromDrawImage(draw_image, RGBA_8888);
   EXPECT_EQ(image->uniqueID(), key.image_id());
   EXPECT_EQ(quality, key.filter_quality());
   EXPECT_EQ(500, key.target_size().width());
@@ -297,7 +333,7 @@
       quality, CreateMatrix(SkSize::Make(0.5f, 0.5f), is_decomposable),
       DefaultColorSpace());
 
-  auto key = ImageDecodeCacheKey::FromDrawImage(draw_image);
+  auto key = ImageDecodeCacheKey::FromDrawImage(draw_image, RGBA_8888);
   EXPECT_EQ(image->uniqueID(), key.image_id());
   EXPECT_EQ(quality, key.filter_quality());
   EXPECT_EQ(250, key.target_size().width());
@@ -316,7 +352,7 @@
       quality, CreateMatrix(SkSize::Make(0.49f, 0.49f), is_decomposable),
       DefaultColorSpace());
 
-  auto key = ImageDecodeCacheKey::FromDrawImage(draw_image);
+  auto key = ImageDecodeCacheKey::FromDrawImage(draw_image, RGBA_8888);
   EXPECT_EQ(image->uniqueID(), key.image_id());
   EXPECT_EQ(quality, key.filter_quality());
   EXPECT_EQ(250, key.target_size().width());
@@ -335,7 +371,7 @@
       quality, CreateMatrix(SkSize::Make(0.1f, 0.1f), is_decomposable),
       DefaultColorSpace());
 
-  auto key = ImageDecodeCacheKey::FromDrawImage(draw_image);
+  auto key = ImageDecodeCacheKey::FromDrawImage(draw_image, RGBA_8888);
   EXPECT_EQ(image->uniqueID(), key.image_id());
   EXPECT_EQ(quality, key.filter_quality());
   EXPECT_EQ(62, key.target_size().width());
@@ -354,7 +390,7 @@
       quality, CreateMatrix(SkSize::Make(0.01f, 0.01f), is_decomposable),
       DefaultColorSpace());
 
-  auto key = ImageDecodeCacheKey::FromDrawImage(draw_image);
+  auto key = ImageDecodeCacheKey::FromDrawImage(draw_image, RGBA_8888);
   EXPECT_EQ(image->uniqueID(), key.image_id());
   EXPECT_EQ(quality, key.filter_quality());
   EXPECT_EQ(7, key.target_size().width());
@@ -374,7 +410,7 @@
       quality, CreateMatrix(SkSize::Make(0.5f, 1.5f), is_decomposable),
       DefaultColorSpace());
 
-  auto key = ImageDecodeCacheKey::FromDrawImage(draw_image);
+  auto key = ImageDecodeCacheKey::FromDrawImage(draw_image, RGBA_8888);
   EXPECT_EQ(image->uniqueID(), key.image_id());
   EXPECT_EQ(kMedium_SkFilterQuality, key.filter_quality());
   EXPECT_EQ(100, key.target_size().width());
@@ -394,7 +430,7 @@
       quality, CreateMatrix(SkSize::Make(0.5f, 0.2f), is_decomposable),
       DefaultColorSpace());
 
-  auto key = ImageDecodeCacheKey::FromDrawImage(draw_image);
+  auto key = ImageDecodeCacheKey::FromDrawImage(draw_image, RGBA_8888);
   EXPECT_EQ(image->uniqueID(), key.image_id());
   EXPECT_EQ(kMedium_SkFilterQuality, key.filter_quality());
   EXPECT_EQ(50, key.target_size().width());
@@ -413,7 +449,7 @@
       quality, CreateMatrix(SkSize::Make(2.5f, 1.5f), is_decomposable),
       DefaultColorSpace());
 
-  auto key = ImageDecodeCacheKey::FromDrawImage(draw_image);
+  auto key = ImageDecodeCacheKey::FromDrawImage(draw_image, RGBA_8888);
   EXPECT_EQ(image->uniqueID(), key.image_id());
   EXPECT_EQ(quality, key.filter_quality());
   EXPECT_EQ(250, key.target_size().width());
@@ -435,7 +471,7 @@
       quality, CreateMatrix(SkSize::Make(0.9f, 2.f), is_decomposable),
       DefaultColorSpace());
 
-  auto key = ImageDecodeCacheKey::FromDrawImage(draw_image);
+  auto key = ImageDecodeCacheKey::FromDrawImage(draw_image, RGBA_8888);
   EXPECT_EQ(image->uniqueID(), key.image_id());
   EXPECT_EQ(kMedium_SkFilterQuality, key.filter_quality());
   EXPECT_EQ(4555, key.target_size().width());
@@ -455,7 +491,7 @@
       quality, CreateMatrix(SkSize::Make(0.5f, 1.5f), is_decomposable),
       DefaultColorSpace());
 
-  auto key = ImageDecodeCacheKey::FromDrawImage(draw_image);
+  auto key = ImageDecodeCacheKey::FromDrawImage(draw_image, RGBA_8888);
   EXPECT_EQ(image->uniqueID(), key.image_id());
   EXPECT_EQ(kLow_SkFilterQuality, key.filter_quality());
   EXPECT_EQ(100, key.target_size().width());
@@ -474,7 +510,7 @@
       quality, CreateMatrix(SkSize::Make(1.f, 1.f), is_decomposable),
       DefaultColorSpace());
 
-  auto key = ImageDecodeCacheKey::FromDrawImage(draw_image);
+  auto key = ImageDecodeCacheKey::FromDrawImage(draw_image, RGBA_8888);
   EXPECT_EQ(image->uniqueID(), key.image_id());
   EXPECT_EQ(kLow_SkFilterQuality, key.filter_quality());
   EXPECT_EQ(100, key.target_size().width());
@@ -494,7 +530,7 @@
       quality, CreateMatrix(SkSize::Make(1.001f, 1.001f), is_decomposable),
       DefaultColorSpace());
 
-  auto key = ImageDecodeCacheKey::FromDrawImage(draw_image);
+  auto key = ImageDecodeCacheKey::FromDrawImage(draw_image, RGBA_8888);
   EXPECT_EQ(image->uniqueID(), key.image_id());
   EXPECT_EQ(kLow_SkFilterQuality, key.filter_quality());
   EXPECT_EQ(100, key.target_size().width());
@@ -514,7 +550,7 @@
       quality, CreateMatrix(SkSize::Make(0.999f, 0.999f), is_decomposable),
       DefaultColorSpace());
 
-  auto key = ImageDecodeCacheKey::FromDrawImage(draw_image);
+  auto key = ImageDecodeCacheKey::FromDrawImage(draw_image, RGBA_8888);
   EXPECT_EQ(image->uniqueID(), key.image_id());
   EXPECT_EQ(kLow_SkFilterQuality, key.filter_quality());
   EXPECT_EQ(100, key.target_size().width());
@@ -533,7 +569,7 @@
       quality, CreateMatrix(SkSize::Make(0.5f, 0.5), is_decomposable),
       DefaultColorSpace());
 
-  auto key = ImageDecodeCacheKey::FromDrawImage(draw_image);
+  auto key = ImageDecodeCacheKey::FromDrawImage(draw_image, RGBA_8888);
   EXPECT_EQ(image->uniqueID(), key.image_id());
   EXPECT_EQ(kNone_SkFilterQuality, key.filter_quality());
   EXPECT_EQ(100, key.target_size().width());
@@ -546,7 +582,8 @@
       quality, CreateMatrix(SkSize::Make(1.5f, 1.5), is_decomposable),
       DefaultColorSpace());
 
-  auto another_key = ImageDecodeCacheKey::FromDrawImage(another_draw_image);
+  auto another_key =
+      ImageDecodeCacheKey::FromDrawImage(another_draw_image, RGBA_8888);
   EXPECT_EQ(image->uniqueID(), another_key.image_id());
   EXPECT_EQ(kNone_SkFilterQuality, another_key.filter_quality());
   EXPECT_EQ(100, another_key.target_size().width());
@@ -568,7 +605,7 @@
       CreateMatrix(SkSize::Make(1.f, 1.f), is_decomposable),
       DefaultColorSpace());
 
-  auto key = ImageDecodeCacheKey::FromDrawImage(draw_image);
+  auto key = ImageDecodeCacheKey::FromDrawImage(draw_image, RGBA_8888);
   EXPECT_EQ(image->uniqueID(), key.image_id());
   EXPECT_EQ(kLow_SkFilterQuality, key.filter_quality());
   EXPECT_EQ(100, key.target_size().width());
@@ -588,7 +625,7 @@
       CreateMatrix(SkSize::Make(0.5f, 0.5f), is_decomposable),
       DefaultColorSpace());
 
-  auto key = ImageDecodeCacheKey::FromDrawImage(draw_image);
+  auto key = ImageDecodeCacheKey::FromDrawImage(draw_image, RGBA_8888);
   EXPECT_EQ(image->uniqueID(), key.image_id());
   EXPECT_EQ(kMedium_SkFilterQuality, key.filter_quality());
   EXPECT_EQ(40, key.target_size().width());
diff --git a/chrome/android/java/res/values/values.xml b/chrome/android/java/res/values/values.xml
index 9aa2e99..b18d664 100644
--- a/chrome/android/java/res/values/values.xml
+++ b/chrome/android/java/res/values/values.xml
@@ -41,6 +41,7 @@
     <!-- Help and Feedback
          These constants should be in sync with the context names on go/mobilehelprecs.
          If the context ID cannot be found, the default help page will be shown to the user.-->
+    <string name="help_context_autofill">android_autofill_ota</string>
     <string name="help_context_new_tab">mobile_new_tab</string>
     <string name="help_context_search_results">mobile_search_results</string>
     <string name="help_context_webpage">mobile_webpage</string>
diff --git a/chrome/android/java/res/xml/account_management_preferences.xml b/chrome/android/java/res/xml/account_management_preferences.xml
index 4215dcba..b0f449a 100644
--- a/chrome/android/java/res/xml/account_management_preferences.xml
+++ b/chrome/android/java/res/xml/account_management_preferences.xml
@@ -19,35 +19,57 @@
         android:icon="@drawable/add_circle_blue"
         android:order="1000" />
 
+    <Preference
+        android:layout="@layout/divider_preference"
+        android:order="1001" />
+
     <PreferenceCategory
         android:key="parental_settings"
         android:title="@string/account_management_parental_settings"
-        android:order="1001" />
+        android:order="1002" />
 
     <org.chromium.chrome.browser.preferences.ChromeBasePreference
         android:key="parent_accounts"
-        android:order="1002" />
+        android:order="1003" />
 
     <Preference
         android:key="child_content"
         android:title="@string/account_management_child_content_title"
-        android:order="1003" />
+        android:order="1004" />
+
+    <Preference
+        android:key="child_content_divider"
+        android:layout="@layout/divider_preference"
+        android:order="1005" />
 
     <org.chromium.chrome.browser.preferences.SyncPreference
         android:key="sync_settings"
         android:title="@string/sign_in_sync"
-        android:order="1005"/>
+        android:order="1006" />
+
+    <Preference
+        android:layout="@layout/divider_preference"
+        android:order="1007" />
 
     <Preference
         android:key="google_activity_controls"
         android:icon="@drawable/googleg"
         android:title="@string/sign_in_google_activity_controls"
         android:summary="@string/sign_in_google_activity_controls_message"
-        android:order="1006" />
+        android:order="1008" />
+
+    <Preference
+        android:layout="@layout/divider_preference"
+        android:order="1009" />
 
     <Preference
         android:key="sign_out"
         android:title="@string/account_management_sign_out"
-        android:order="1007"/>
+        android:order="1010" />
+
+    <Preference
+        android:key="sign_out_divider"
+        android:layout="@layout/divider_preference"
+        android:order="1011" />
 
 </PreferenceScreen>
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/LocationBar.java b/chrome/android/java/src/org/chromium/chrome/browser/omnibox/LocationBar.java
index 5b1ea55..0c59b8e 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/LocationBar.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/omnibox/LocationBar.java
@@ -78,6 +78,11 @@
     void setToolbarDataProvider(ToolbarDataProvider model);
 
     /**
+     * Gets the {@link ToolbarDataProvider} to be used for accessing {@link Toolbar} state.
+     */
+    ToolbarDataProvider getToolbarDataProvider();
+
+    /**
      * Set the bottom sheet for Chrome Home.
      * @param sheet The bottom sheet for Chrome Home if it exists.
      */
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/LocationBarLayout.java b/chrome/android/java/src/org/chromium/chrome/browser/omnibox/LocationBarLayout.java
index 7a93652..65cac29 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/LocationBarLayout.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/omnibox/LocationBarLayout.java
@@ -1247,11 +1247,8 @@
         mUrlFocusChangeListener = listener;
     }
 
-    /**
-     * @return The toolbar data provider.
-     */
-    @VisibleForTesting
-    protected ToolbarDataProvider getToolbarDataProvider() {
+    @Override
+    public ToolbarDataProvider getToolbarDataProvider() {
         return mToolbarDataProvider;
     }
 
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/SuggestionView.java b/chrome/android/java/src/org/chromium/chrome/browser/omnibox/SuggestionView.java
index 4ec51cc7..f7ba480 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/SuggestionView.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/omnibox/SuggestionView.java
@@ -589,10 +589,8 @@
             mContentsView.mAnswerImageMaxSize = imageSize;
 
             String url = "https:" + secondLine.getImage().replace("\\/", "/");
-            AnswersImage.requestAnswersImage(
-                    mLocationBar.getCurrentTab().getProfile(),
-                    url,
-                    new AnswersImage.AnswersImageObserver() {
+            AnswersImage.requestAnswersImage(mLocationBar.getToolbarDataProvider().getProfile(),
+                    url, new AnswersImage.AnswersImageObserver() {
                         @Override
                         public void onAnswersImageChanged(Bitmap bitmap) {
                             mContentsView.mAnswerImage.setImageBitmap(bitmap);
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/UrlBar.java b/chrome/android/java/src/org/chromium/chrome/browser/omnibox/UrlBar.java
index 5ce74fc..c16d5d8 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/UrlBar.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/omnibox/UrlBar.java
@@ -15,6 +15,7 @@
 import android.os.Build;
 import android.os.StrictMode;
 import android.os.SystemClock;
+import android.support.annotation.Nullable;
 import android.text.Editable;
 import android.text.Layout;
 import android.text.Selection;
@@ -143,8 +144,9 @@
      */
     public interface UrlBarDelegate {
         /**
-         * @return The current active {@link Tab}.
+         * @return The current active {@link Tab}. May be null.
          */
+        @Nullable
         Tab getCurrentTab();
 
         /**
@@ -377,7 +379,7 @@
 
     @Override
     public View focusSearch(int direction) {
-        if (direction == View.FOCUS_BACKWARD
+        if (direction == View.FOCUS_BACKWARD && mUrlBarDelegate.getCurrentTab() != null
                 && mUrlBarDelegate.getCurrentTab().getView() != null) {
             return mUrlBarDelegate.getCurrentTab().getView();
         } else {
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/payments/ui/EditorDialog.java b/chrome/android/java/src/org/chromium/chrome/browser/payments/ui/EditorDialog.java
index 3bdfe75..0c9eca7 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/payments/ui/EditorDialog.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/payments/ui/EditorDialog.java
@@ -40,9 +40,10 @@
 import org.chromium.base.VisibleForTesting;
 import org.chromium.chrome.R;
 import org.chromium.chrome.browser.autofill.PhoneNumberUtil;
-import org.chromium.chrome.browser.customtabs.CustomTabActivity;
+import org.chromium.chrome.browser.help.HelpAndFeedback;
 import org.chromium.chrome.browser.payments.ui.PaymentRequestUI.PaymentRequestObserverForTest;
 import org.chromium.chrome.browser.preferences.autofill.CreditCardNumberFormattingTextWatcher;
+import org.chromium.chrome.browser.profiles.Profile;
 import org.chromium.chrome.browser.widget.AlwaysDismissedDialog;
 import org.chromium.chrome.browser.widget.FadingEdgeScrollView;
 import org.chromium.chrome.browser.widget.FadingShadow;
@@ -65,9 +66,6 @@
     /** The indicator for input fields that are required. */
     public static final String REQUIRED_FIELD_INDICATOR = "*";
 
-    /** Help page that the user is directed to when asking for help. */
-    private static final String HELP_URL = "https://support.google.com/chrome/answer/142893";
-
     /** Duration of the animation to show the UI to full height. */
     private static final int DIALOG_ENTER_ANIMATION_MS = 300;
 
@@ -169,7 +167,10 @@
 
     /** Launches the Autofill help page on top of the current Context. */
     public static void launchAutofillHelpPage(Context context) {
-        CustomTabActivity.showInfoPage(context, HELP_URL);
+        assert context instanceof Activity;
+        HelpAndFeedback.getInstance(context).show((Activity) context,
+                context.getString(R.string.help_context_autofill), Profile.getLastUsedProfile(),
+                null);
     }
 
     /**
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/SearchBoxDataProvider.java b/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/SearchBoxDataProvider.java
index feb74f3..4df2267 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/SearchBoxDataProvider.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/SearchBoxDataProvider.java
@@ -6,6 +6,7 @@
 
 import org.chromium.base.library_loader.LibraryLoader;
 import org.chromium.chrome.browser.ntp.NewTabPage;
+import org.chromium.chrome.browser.profiles.Profile;
 import org.chromium.chrome.browser.tab.Tab;
 import org.chromium.chrome.browser.toolbar.ToolbarDataProvider;
 
@@ -33,6 +34,12 @@
     }
 
     @Override
+    public Profile getProfile() {
+        if (mTab == null) return null;
+        return mTab.getProfile();
+    }
+
+    @Override
     public String getText() {
         return null;
     }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/signin/AccountManagementFragment.java b/chrome/android/java/src/org/chromium/chrome/browser/signin/AccountManagementFragment.java
index dae1d0e..a1fafb5f 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/signin/AccountManagementFragment.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/signin/AccountManagementFragment.java
@@ -30,8 +30,10 @@
 import android.preference.Preference.OnPreferenceClickListener;
 import android.preference.PreferenceFragment;
 import android.preference.PreferenceScreen;
+import android.support.annotation.Nullable;
 import android.text.TextUtils;
 import android.util.Pair;
+import android.widget.ListView;
 
 import org.chromium.base.ApiCompatibilityUtils;
 import org.chromium.base.ContextUtils;
@@ -103,13 +105,15 @@
     private static String sChildAccountId;
     private static Bitmap sCachedBadgedPicture;
 
-    public static final String PREF_SIGN_OUT = "sign_out";
     public static final String PREF_ADD_ACCOUNT = "add_account";
     public static final String PREF_PARENTAL_SETTINGS = "parental_settings";
     public static final String PREF_PARENT_ACCOUNTS = "parent_accounts";
     public static final String PREF_CHILD_CONTENT = "child_content";
+    public static final String PREF_CHILD_CONTENT_DIVIDER = "child_content_divider";
     public static final String PREF_GOOGLE_ACTIVITY_CONTROLS = "google_activity_controls";
     public static final String PREF_SYNC_SETTINGS = "sync_settings";
+    public static final String PREF_SIGN_OUT = "sign_out";
+    public static final String PREF_SIGN_OUT_DIVIDER = "sign_out_divider";
 
     private int mGaiaServiceType;
 
@@ -145,6 +149,14 @@
     }
 
     @Override
+    public void onActivityCreated(@Nullable Bundle savedInstanceState) {
+        super.onActivityCreated(savedInstanceState);
+
+        ListView list = (ListView) getView().findViewById(android.R.id.list);
+        list.setDivider(null);
+    }
+
+    @Override
     public void onResume() {
         super.onResume();
         SigninManager.get(getActivity()).addSignInStateObserver(this);
@@ -238,6 +250,7 @@
         Preference signOutSwitch = findPreference(PREF_SIGN_OUT);
         if (mProfile.isChild()) {
             getPreferenceScreen().removePreference(signOutSwitch);
+            getPreferenceScreen().removePreference(findPreference(PREF_SIGN_OUT_DIVIDER));
         } else {
             signOutSwitch.setEnabled(getSignOutAllowedPreferenceValue());
             signOutSwitch.setOnPreferenceClickListener(new OnPreferenceClickListener() {
@@ -385,9 +398,7 @@
                 childContentSummary = R.string.account_management_child_content_all;
             }
             childContent.setSummary(childContentSummary);
-            // TODO(dgn): made selectable to show the dividers. Find a way to avoid this. A side
-            // effect is that it shows a tap ripple on an item that is not interactive.
-            // childContent.setSelectable(false);
+            childContent.setSelectable(false);
 
             Drawable newIcon = ApiCompatibilityUtils.getDrawable(
                     getResources(), R.drawable.ic_drive_site_white_24dp);
@@ -400,6 +411,7 @@
             prefScreen.removePreference(findPreference(PREF_PARENTAL_SETTINGS));
             prefScreen.removePreference(parentAccounts);
             prefScreen.removePreference(childContent);
+            prefScreen.removePreference(findPreference(PREF_CHILD_CONTENT_DIVIDER));
         }
     }
 
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelector.java b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelector.java
index 1106a61e..753489a 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelector.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelector.java
@@ -4,6 +4,8 @@
 
 package org.chromium.chrome.browser.tabmodel;
 
+import android.support.annotation.Nullable;
+
 import org.chromium.base.VisibleForTesting;
 import org.chromium.chrome.browser.tab.Tab;
 import org.chromium.chrome.browser.tabmodel.TabModel.TabLaunchType;
@@ -62,6 +64,7 @@
      * Convenience function to get the current tab on the current model
      * @return Current tab or null if none exists or if the model is not initialized.
      */
+    @Nullable
     Tab getCurrentTab();
 
     /**
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/BottomToolbarPhone.java b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/BottomToolbarPhone.java
index b1fbfe3e..83c82e70 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/BottomToolbarPhone.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/BottomToolbarPhone.java
@@ -71,7 +71,7 @@
             if (isMovingUp && !mAnimatingToolbarButtonDisappearance
                     && mToolbarButtonVisibilityPercent != 0.f) {
                 animateToolbarButtonVisibility(false);
-            } else if (isMovingDown && heightFraction < 0.45f && !mAnimatingToolbarButtonAppearance
+            } else if (isMovingDown && heightFraction < 0.40f && !mAnimatingToolbarButtonAppearance
                     && mToolbarButtonVisibilityPercent != 1.f) {
                 // If the sheet is moving down and the height is less than 45% of the max, start
                 // showing the toolbar buttons. 45% is used rather than 50% so that the buttons
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/CustomTabToolbar.java b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/CustomTabToolbar.java
index d19ede16..35e927f9 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/CustomTabToolbar.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/CustomTabToolbar.java
@@ -129,6 +129,8 @@
     private String mFirstUrl;
     private boolean mShowsOfflinePage;
 
+    protected ToolbarDataProvider mToolbarDataProvider;
+
     private Runnable mTitleAnimationStarter = new Runnable() {
         @Override
         public void run() {
@@ -405,6 +407,16 @@
     }
 
     @Override
+    public void setToolbarDataProvider(ToolbarDataProvider model) {
+        mToolbarDataProvider = model;
+    }
+
+    @Override
+    public ToolbarDataProvider getToolbarDataProvider() {
+        return mToolbarDataProvider;
+    }
+
+    @Override
     public void updateVisualsForState() {
         Resources resources = getResources();
         updateSecurityIcon(getSecurityLevel());
@@ -684,9 +696,6 @@
     // Toolbar and LocationBar calls that are not relevant here.
 
     @Override
-    public void setToolbarDataProvider(ToolbarDataProvider model) {}
-
-    @Override
     public void onTextChangedForAutocomplete(boolean canInlineAutocomplete) {}
 
     @Override
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarDataProvider.java b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarDataProvider.java
index c961537..6fe00b19 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarDataProvider.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarDataProvider.java
@@ -5,6 +5,7 @@
 package org.chromium.chrome.browser.toolbar;
 
 import org.chromium.chrome.browser.ntp.NewTabPage;
+import org.chromium.chrome.browser.profiles.Profile;
 import org.chromium.chrome.browser.tab.Tab;
 
 /**
@@ -32,6 +33,11 @@
     boolean isIncognito();
 
     /**
+     * @return The current {@link Profile}.
+     */
+    Profile getProfile();
+
+    /**
      * @return The formatted text (URL or search terms) for display.
      */
     String getText();
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarLayout.java b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarLayout.java
index 2b11767..1a0814d 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarLayout.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarLayout.java
@@ -31,6 +31,7 @@
 import org.chromium.chrome.browser.ntp.NewTabPage;
 import org.chromium.chrome.browser.omaha.UpdateMenuItemHelper;
 import org.chromium.chrome.browser.omnibox.LocationBar;
+import org.chromium.chrome.browser.profiles.Profile;
 import org.chromium.chrome.browser.tab.Tab;
 import org.chromium.chrome.browser.util.ViewUtils;
 import org.chromium.chrome.browser.widget.PulseDrawable;
@@ -151,6 +152,11 @@
             }
 
             @Override
+            public Profile getProfile() {
+                return null;
+            }
+
+            @Override
             public Tab getTab() {
                 return null;
             }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarModelImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarModelImpl.java
index a4361c8..59ae655 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarModelImpl.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarModelImpl.java
@@ -15,6 +15,7 @@
 import org.chromium.chrome.browser.dom_distiller.DomDistillerTabUtils;
 import org.chromium.chrome.browser.ntp.NewTabPage;
 import org.chromium.chrome.browser.offlinepages.OfflinePageUtils;
+import org.chromium.chrome.browser.profiles.Profile;
 import org.chromium.chrome.browser.tab.Tab;
 import org.chromium.chrome.browser.toolbar.ToolbarModel.ToolbarModelDelegate;
 import org.chromium.chrome.browser.widget.bottomsheet.BottomSheet;
@@ -141,6 +142,16 @@
         return mIsIncognito;
     }
 
+    @Override
+    public Profile getProfile() {
+        Profile lastUsedProfile = Profile.getLastUsedProfile();
+        if (mIsIncognito) {
+            assert lastUsedProfile.hasOffTheRecordProfile();
+            return lastUsedProfile.getOffTheRecordProfile();
+        }
+        return lastUsedProfile.getOriginalProfile();
+    }
+
     /**
      * Sets the primary color and changes the state for isUsingBrandColor.
      * @param color The primary color for the current tab.
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/widget/bottomsheet/BottomSheet.java b/chrome/android/java/src/org/chromium/chrome/browser/widget/bottomsheet/BottomSheet.java
index cf38ba1..d2072780a 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/widget/bottomsheet/BottomSheet.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/widget/bottomsheet/BottomSheet.java
@@ -966,6 +966,10 @@
                 (MarginLayoutParams) findViewById(R.id.toolbar_shadow).getLayoutParams();
         toolbarShadowParams.topMargin = (int) mToolbarHeight;
 
+        if (mCurrentState == SHEET_STATE_HALF && isSmallScreen()) {
+            setSheetState(SHEET_STATE_FULL, false);
+        }
+
         mBottomSheetContentContainer.requestLayout();
     }
 
@@ -1241,13 +1245,8 @@
         if (sheetHeight <= getMinOffset()) return SHEET_STATE_PEEK;
         if (sheetHeight >= getMaxOffset()) return SHEET_STATE_FULL;
 
-        float fullToHalfDiff = (getFullRatio() - getHalfRatio()) * mContainerHeight;
         boolean isMovingDownward = yVelocity < 0;
-
-        // A small screen is defined by there being less than 160dp between half and full states.
-        boolean isSmallScreen = fullToHalfDiff < mMinHalfFullDistance;
-
-        boolean shouldSkipHalfState = isMovingDownward || isSmallScreen;
+        boolean shouldSkipHalfState = isMovingDownward || isSmallScreen();
 
         // First, find the two states that the sheet height is between.
         @SheetState
@@ -1282,6 +1281,12 @@
         return prevState;
     }
 
+    private boolean isSmallScreen() {
+        // A small screen is defined by there being less than 160dp between half and full states.
+        float fullToHalfDiff = (getFullRatio() - getHalfRatio()) * mContainerHeight;
+        return fullToHalfDiff < mMinHalfFullDistance;
+    }
+
     @Override
     public void onFadingViewClick() {
         mMetrics.setSheetCloseReason(BottomSheetMetrics.CLOSED_BY_TAP_SCRIM);
diff --git a/chrome/browser/apps/guest_view/web_view_browsertest.cc b/chrome/browser/apps/guest_view/web_view_browsertest.cc
index e56b998..2b2f6729 100644
--- a/chrome/browser/apps/guest_view/web_view_browsertest.cc
+++ b/chrome/browser/apps/guest_view/web_view_browsertest.cc
@@ -1310,9 +1310,6 @@
 }
 
 IN_PROC_BROWSER_TEST_P(WebViewTest, Shim_TestDisplayNoneWebviewRemoveChild) {
-  // http://crbug.com/585652
-  if (base::FeatureList::IsEnabled(::features::kGuestViewCrossProcessFrames))
-    return;
   TestHelper("testDisplayNoneWebviewRemoveChild",
              "web_view/shim", NO_TEST_SERVER);
 }
diff --git a/chrome/browser/chromeos/arc/boot_phase_monitor/arc_instance_throttle.h b/chrome/browser/chromeos/arc/boot_phase_monitor/arc_instance_throttle.h
index 181eadd..7ab5b167 100644
--- a/chrome/browser/chromeos/arc/boot_phase_monitor/arc_instance_throttle.h
+++ b/chrome/browser/chromeos/arc/boot_phase_monitor/arc_instance_throttle.h
@@ -13,12 +13,12 @@
 // A class that watches window activations and prioritizes the ARC instance when
 // one of ARC windows is activated. The class also unprioritizes the instance
 // when non-ARC window such as Chrome is activated.
-class ArcInstanceThrottle : public aura::client::ActivationChangeObserver {
+class ArcInstanceThrottle : public wm::ActivationChangeObserver {
  public:
   ArcInstanceThrottle();
   ~ArcInstanceThrottle() override;
 
-  // aura::client::ActivationChangeObserver overrides:
+  // wm::ActivationChangeObserver overrides:
   void OnWindowActivated(ActivationReason reason,
                          aura::Window* gained_active,
                          aura::Window* lost_active) override;
diff --git a/chrome/browser/chromeos/login/ui/login_display_host_impl.cc b/chrome/browser/chromeos/login/ui/login_display_host_impl.cc
index 3948dde..0a5ae56f 100644
--- a/chrome/browser/chromeos/login/ui/login_display_host_impl.cc
+++ b/chrome/browser/chromeos/login/ui/login_display_host_impl.cc
@@ -483,8 +483,8 @@
 
   // Disable Drag'n'Drop for the login session.
   if (!ash_util::IsRunningInMash()) {
-    scoped_drag_drop_disabler_.reset(new aura::client::ScopedDragDropDisabler(
-        ash::Shell::GetPrimaryRootWindow()));
+    scoped_drag_drop_disabler_.reset(
+        new wm::ScopedDragDropDisabler(ash::Shell::GetPrimaryRootWindow()));
   } else {
     NOTIMPLEMENTED();
   }
diff --git a/chrome/browser/chromeos/login/ui/login_display_host_impl.h b/chrome/browser/chromeos/login/ui/login_display_host_impl.h
index 377f28e..dd8495a5b 100644
--- a/chrome/browser/chromeos/login/ui/login_display_host_impl.h
+++ b/chrome/browser/chromeos/login/ui/login_display_host_impl.h
@@ -300,8 +300,7 @@
 
   // Keeps a copy of the old Drag'n'Drop client, so that it would be disabled
   // during a login session and restored afterwards.
-  std::unique_ptr<aura::client::ScopedDragDropDisabler>
-      scoped_drag_drop_disabler_;
+  std::unique_ptr<wm::ScopedDragDropDisabler> scoped_drag_drop_disabler_;
 
   base::WeakPtrFactory<LoginDisplayHostImpl> pointer_factory_;
   base::WeakPtrFactory<LoginDisplayHostImpl> animation_weak_ptr_factory_;
diff --git a/chrome/browser/chromeos/login/users/wallpaper/wallpaper_manager.h b/chrome/browser/chromeos/login/users/wallpaper/wallpaper_manager.h
index 76e6a864..aced728d 100644
--- a/chrome/browser/chromeos/login/users/wallpaper/wallpaper_manager.h
+++ b/chrome/browser/chromeos/login/users/wallpaper/wallpaper_manager.h
@@ -36,7 +36,7 @@
       public ash::mojom::WallpaperPicker,
       public content::NotificationObserver,
       public user_manager::UserManager::UserSessionStateObserver,
-      public aura::client::ActivationChangeObserver,
+      public wm::ActivationChangeObserver,
       public aura::WindowObserver {
  public:
   class PendingWallpaper;
@@ -101,7 +101,7 @@
   // user_manager::UserManager::UserSessionStateObserver:
   void UserChangedChildStatus(user_manager::User* user) override;
 
-  // aura::client::ActivationChangeObserver:
+  // wm::ActivationChangeObserver:
   void OnWindowActivated(ActivationReason reason,
                          aura::Window* gained_active,
                          aura::Window* lost_active) override;
@@ -230,8 +230,7 @@
 
   content::NotificationRegistrar registrar_;
 
-  ScopedObserver<aura::client::ActivationClient,
-                 aura::client::ActivationChangeObserver>
+  ScopedObserver<wm::ActivationClient, wm::ActivationChangeObserver>
       activation_client_observer_;
   ScopedObserver<aura::Window, aura::WindowObserver> window_observer_;
 
diff --git a/chrome/browser/extensions/api/identity/web_auth_flow.cc b/chrome/browser/extensions/api/identity/web_auth_flow.cc
index 4bad1dad..7b326e7 100644
--- a/chrome/browser/extensions/api/identity/web_auth_flow.cc
+++ b/chrome/browser/extensions/api/identity/web_auth_flow.cc
@@ -36,6 +36,7 @@
 #include "extensions/browser/extension_system.h"
 #include "net/http/http_response_headers.h"
 #include "url/gurl.h"
+#include "url/url_constants.h"
 
 using content::RenderViewHost;
 using content::ResourceRedirectDetails;
@@ -207,10 +208,30 @@
   bool failed = false;
 
   if (navigation_handle->GetNetErrorCode() != net::OK) {
-    failed = true;
-    TRACE_EVENT_ASYNC_STEP_PAST1("identity", "WebAuthFlow", this,
-                                 "DidFinishNavigationFailure", "error_code",
-                                 navigation_handle->GetNetErrorCode());
+    if (navigation_handle->GetURL().spec() == url::kAboutBlankURL) {
+      // As part of the OAUth 2.0 protocol with GAIA, at the end of the web
+      // authorization flow, GAIA redirects to a custom scheme URL of type
+      // |com.googleusercontent.apps.123:/<extension_id>|, where
+      // |com.googleusercontent.apps.123| is the reverse DNS notation of the
+      // client ID of the extension that started the web sign-in flow. (The
+      // intent of this weird URL scheme was to make sure it couldn't be loaded
+      // anywhere at all as this makes it much harder to pull off a cross-site
+      // attack that could leak the returned oauth token to a malicious script
+      // or site.)
+      //
+      // This URL is not an accessible URL from within a Guest WebView, so
+      // during its load of this URL, Chrome changes it to |about:blank| and
+      // then the Identity Scope Approval Dialog extension fails to load it.
+      // Failing to load |about:blank| must not be treated as a failure of
+      // the web auth flow.
+      DCHECK_EQ(net::ERR_UNKNOWN_URL_SCHEME,
+                navigation_handle->GetNetErrorCode());
+    } else {
+      failed = true;
+      TRACE_EVENT_ASYNC_STEP_PAST1("identity", "WebAuthFlow", this,
+                                   "DidFinishNavigationFailure", "error_code",
+                                   navigation_handle->GetNetErrorCode());
+    }
   } else if (navigation_handle->IsInMainFrame() &&
              navigation_handle->GetResponseHeaders() &&
              navigation_handle->GetResponseHeaders()->response_code() >= 400) {
diff --git a/chrome/browser/extensions/ntp_overridden_bubble_delegate.cc b/chrome/browser/extensions/ntp_overridden_bubble_delegate.cc
index 177dcae..e4985e4 100644
--- a/chrome/browser/extensions/ntp_overridden_bubble_delegate.cc
+++ b/chrome/browser/extensions/ntp_overridden_bubble_delegate.cc
@@ -13,6 +13,8 @@
 #include "chrome/common/chrome_features.h"
 #include "chrome/common/url_constants.h"
 #include "chrome/grit/generated_resources.h"
+#include "components/prefs/pref_registry.h"
+#include "components/prefs/pref_registry_simple.h"
 #include "extensions/browser/extension_registry.h"
 #include "extensions/browser/extension_system.h"
 #include "ui/base/l10n/l10n_util.h"
@@ -23,6 +25,14 @@
 // page.
 const char kNtpBubbleAcknowledged[] = "ack_ntp_bubble";
 
+// Whether existing NTP extensions have been automatically acknowledged.
+const char kDidAcknowledgeExistingNtpExtensions[] =
+    "ack_existing_ntp_extensions";
+
+// Whether to acknowledge existing extensions overriding the NTP for the active
+// profile. Currently disabled for all platforms and only available for testing.
+bool g_acknowledge_existing_extensions = false;
+
 }  // namespace
 
 namespace extensions {
@@ -35,6 +45,36 @@
 
 NtpOverriddenBubbleDelegate::~NtpOverriddenBubbleDelegate() {}
 
+// static
+void NtpOverriddenBubbleDelegate::RegisterPrefs(PrefRegistrySimple* registry) {
+  registry->RegisterBooleanPref(kDidAcknowledgeExistingNtpExtensions, false,
+                                PrefRegistry::NO_REGISTRATION_FLAGS);
+}
+
+// static
+void NtpOverriddenBubbleDelegate::MaybeAcknowledgeExistingNtpExtensions(
+    Profile* profile) {
+  if (!g_acknowledge_existing_extensions)
+    return;
+
+  ExtensionRegistry* registry = ExtensionRegistry::Get(profile);
+  PrefService* profile_prefs = profile->GetPrefs();
+  // Only acknowledge existing extensions once per profile.
+  if (profile_prefs->GetBoolean(kDidAcknowledgeExistingNtpExtensions))
+    return;
+
+  profile_prefs->SetBoolean(kDidAcknowledgeExistingNtpExtensions, true);
+  ExtensionPrefs* prefs = ExtensionPrefs::Get(profile);
+  for (const auto& extension : registry->enabled_extensions()) {
+    const URLOverrides::URLOverrideMap& overrides =
+        URLOverrides::GetChromeURLOverrides(extension.get());
+    if (overrides.find(chrome::kChromeUINewTabHost) != overrides.end()) {
+      prefs->UpdateExtensionPref(extension->id(), kNtpBubbleAcknowledged,
+                                 base::MakeUnique<base::Value>(true));
+    }
+  }
+}
+
 bool NtpOverriddenBubbleDelegate::ShouldIncludeExtension(
     const extensions::Extension* extension) {
   if (!extension_id_.empty() && extension_id_ != extension->id())
@@ -143,4 +183,10 @@
   return true;
 }
 
+void NtpOverriddenBubbleDelegate::
+    set_acknowledge_existing_extensions_for_testing(
+        bool acknowledge_existing_extensions) {
+  g_acknowledge_existing_extensions = acknowledge_existing_extensions;
+}
+
 }  // namespace extensions
diff --git a/chrome/browser/extensions/ntp_overridden_bubble_delegate.h b/chrome/browser/extensions/ntp_overridden_bubble_delegate.h
index 15d0911..3078efb 100644
--- a/chrome/browser/extensions/ntp_overridden_bubble_delegate.h
+++ b/chrome/browser/extensions/ntp_overridden_bubble_delegate.h
@@ -12,6 +12,8 @@
 #include "base/macros.h"
 #include "chrome/browser/extensions/extension_message_bubble_controller.h"
 
+class PrefRegistrySimple;
+
 namespace extensions {
 
 class NtpOverriddenBubbleDelegate
@@ -20,6 +22,17 @@
   explicit NtpOverriddenBubbleDelegate(Profile* profile);
   ~NtpOverriddenBubbleDelegate() override;
 
+  // Registers associated preferences.
+  static void RegisterPrefs(PrefRegistrySimple* registry);
+
+  // Iterates over existing NTP-overriding extensions installed in the given
+  // |profile| and marks them as acknowledged. Stores a preference indicating
+  // the action was completed. Subsequent calls will *not* acknowledge more
+  // extensions. This is needed to avoid prompting users with existing
+  // extensions when we expand the warning to new platforms.
+  // TODO(devlin): Remove this in M62.
+  static void MaybeAcknowledgeExistingNtpExtensions(Profile* profile);
+
   // ExtensionMessageBubbleController::Delegate methods.
   bool ShouldIncludeExtension(const extensions::Extension* extension) override;
   void AcknowledgeExtension(
@@ -45,6 +58,9 @@
   const char* GetKey() override;
   bool SupportsPolicyIndicator() override;
 
+  static void set_acknowledge_existing_extensions_for_testing(
+      bool acknowledge_existing_extensions);
+
  private:
   // The ID of the extension we are showing the bubble for.
   std::string extension_id_;
diff --git a/chrome/browser/extensions/ntp_overridden_bubble_delegate_unittest.cc b/chrome/browser/extensions/ntp_overridden_bubble_delegate_unittest.cc
new file mode 100644
index 0000000..00bb446
--- /dev/null
+++ b/chrome/browser/extensions/ntp_overridden_bubble_delegate_unittest.cc
@@ -0,0 +1,91 @@
+// Copyright 2017 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/extensions/ntp_overridden_bubble_delegate.h"
+
+#include "chrome/browser/extensions/extension_service.h"
+#include "chrome/browser/extensions/extension_service_test_base.h"
+#include "chrome/browser/extensions/extension_web_ui_override_registrar.h"
+#include "chrome/browser/profiles/profile.h"
+#include "components/crx_file/id_util.h"
+#include "extensions/common/extension.h"
+#include "extensions/common/extension_builder.h"
+#include "extensions/common/value_builder.h"
+
+namespace extensions {
+
+namespace {
+
+std::unique_ptr<KeyedService> BuildOverrideRegistrar(
+    content::BrowserContext* context) {
+  return base::MakeUnique<ExtensionWebUIOverrideRegistrar>(context);
+}
+
+scoped_refptr<const Extension> GetNtpExtension(const std::string& name) {
+  return ExtensionBuilder()
+      .SetManifest(
+          DictionaryBuilder()
+              .Set("name", name)
+              .Set("version", "1.0")
+              .Set("manifest_version", 2)
+              .Set("chrome_url_overrides",
+                   DictionaryBuilder().Set("newtab", "newtab.html").Build())
+              .Build())
+      .SetID(crx_file::id_util::GenerateId(name))
+      .Build();
+}
+
+}  // namespace
+
+using NtpOverriddenBubbleDelegateTest = ExtensionServiceTestBase;
+
+TEST_F(NtpOverriddenBubbleDelegateTest, TestAcknowledgeExistingExtensions) {
+  NtpOverriddenBubbleDelegate::set_acknowledge_existing_extensions_for_testing(
+      true);
+
+  InitializeEmptyExtensionService();
+  ExtensionWebUIOverrideRegistrar::GetFactoryInstance()->SetTestingFactory(
+      profile(), &BuildOverrideRegistrar);
+  // We need to trigger the instantiation of the WebUIOverrideRegistrar for
+  // it to be constructed, since by default it's not constructed in tests.
+  ExtensionWebUIOverrideRegistrar::GetFactoryInstance()->Get(profile());
+
+  // Create an extension overriding the NTP.
+  scoped_refptr<const Extension> first = GetNtpExtension("first");
+  service()->AddExtension(first.get());
+
+  auto include_extension = [this](const Extension* extension) {
+    auto ntp_delegate =
+        base::MakeUnique<NtpOverriddenBubbleDelegate>(profile());
+    return ntp_delegate->ShouldIncludeExtension(extension);
+  };
+  // By default, we should warn about an extension overriding the NTP.
+  EXPECT_TRUE(include_extension(first.get()));
+
+  // Acknowledge existing extensions. Now, |first| should be acknowledged and
+  // shouldn't be included in the bubble warning.
+  NtpOverriddenBubbleDelegate::MaybeAcknowledgeExistingNtpExtensions(profile());
+  EXPECT_FALSE(include_extension(first.get()));
+
+  // Install a second NTP-overriding extension. As before, we should include the
+  // extension.
+  scoped_refptr<const Extension> second = GetNtpExtension("second");
+  service()->AddExtension(second.get());
+  EXPECT_TRUE(include_extension(second.get()));
+
+  // Try acknowledging existing extensions. Since we already did this once for
+  // this profile, this should have no effect, and we should still warn about
+  // the second extension.
+  NtpOverriddenBubbleDelegate::MaybeAcknowledgeExistingNtpExtensions(profile());
+  EXPECT_TRUE(include_extension(second.get()));
+
+  // We should still not warn about the first.
+  EXPECT_FALSE(include_extension(first.get()));
+
+  // Clean up.
+  NtpOverriddenBubbleDelegate::set_acknowledge_existing_extensions_for_testing(
+      false);
+}
+
+}  // namespace extensions
diff --git a/chrome/browser/memory/tab_manager_delegate_chromeos.cc b/chrome/browser/memory/tab_manager_delegate_chromeos.cc
index 3382c8d..5a075394 100644
--- a/chrome/browser/memory/tab_manager_delegate_chromeos.cc
+++ b/chrome/browser/memory/tab_manager_delegate_chromeos.cc
@@ -61,10 +61,10 @@
 // a little while before doing the adjustment.
 const int kFocusedProcessScoreAdjustIntervalMs = 500;
 
-aura::client::ActivationClient* GetActivationClient() {
+wm::ActivationClient* GetActivationClient() {
   if (!ash::Shell::HasInstance())
     return nullptr;
-  return aura::client::GetActivationClient(ash::Shell::GetPrimaryRootWindow());
+  return wm::GetActivationClient(ash::Shell::GetPrimaryRootWindow());
 }
 
 bool IsArcMemoryManagementEnabled() {
@@ -325,7 +325,7 @@
 }
 
 void TabManagerDelegate::OnWindowActivated(
-    aura::client::ActivationChangeObserver::ActivationReason reason,
+    wm::ActivationChangeObserver::ActivationReason reason,
     aura::Window* gained_active,
     aura::Window* lost_active) {
   if (arc::IsArcAppWindow(gained_active)) {
diff --git a/chrome/browser/memory/tab_manager_delegate_chromeos.h b/chrome/browser/memory/tab_manager_delegate_chromeos.h
index 025877c..808a0dfb 100644
--- a/chrome/browser/memory/tab_manager_delegate_chromeos.h
+++ b/chrome/browser/memory/tab_manager_delegate_chromeos.h
@@ -53,7 +53,7 @@
 
 // The Chrome OS TabManagerDelegate is responsible for keeping the
 // renderers' scores up to date in /proc/<pid>/oom_score_adj.
-class TabManagerDelegate : public aura::client::ActivationChangeObserver,
+class TabManagerDelegate : public wm::ActivationChangeObserver,
                            public content::NotificationObserver,
                            public chrome::BrowserListObserver {
  public:
@@ -69,10 +69,9 @@
   void OnBrowserSetLastActive(Browser* browser) override;
 
   // aura::ActivationChangeObserver overrides.
-  void OnWindowActivated(
-      aura::client::ActivationChangeObserver::ActivationReason reason,
-      aura::Window* gained_active,
-      aura::Window* lost_active) override;
+  void OnWindowActivated(wm::ActivationChangeObserver::ActivationReason reason,
+                         aura::Window* gained_active,
+                         aura::Window* lost_active) override;
 
   // Kills a process on memory pressure.
   void LowMemoryKill(const TabStatsList& tab_stats);
diff --git a/chrome/browser/page_load_metrics/metrics_web_contents_observer.cc b/chrome/browser/page_load_metrics/metrics_web_contents_observer.cc
index c3d51772..fe9f2818 100644
--- a/chrome/browser/page_load_metrics/metrics_web_contents_observer.cc
+++ b/chrome/browser/page_load_metrics/metrics_web_contents_observer.cc
@@ -103,20 +103,10 @@
   return metrics;
 }
 
-MetricsWebContentsObserver::~MetricsWebContentsObserver() {}
-
-void MetricsWebContentsObserver::WebContentsDestroyed() {
+MetricsWebContentsObserver::~MetricsWebContentsObserver() {
   // TODO(csharrison): Use a more user-initiated signal for CLOSE.
   NotifyPageEndAllLoads(END_CLOSE, UserInitiatedInfo::NotUserInitiated());
 
-  // We tear down PageLoadTrackers in WebContentsDestroyed, rather than in the
-  // destructor, since |web_contents()| returns nullptr in the destructor, and
-  // PageLoadMetricsObservers can cause code to execute that wants to be able to
-  // access the current WebContents.
-  committed_load_ = nullptr;
-  provisional_loads_.clear();
-  aborted_provisional_loads_.clear();
-
   for (auto& observer : testing_observers_)
     observer.OnGoingAway();
 }
diff --git a/chrome/browser/page_load_metrics/metrics_web_contents_observer.h b/chrome/browser/page_load_metrics/metrics_web_contents_observer.h
index 27bc8c8..ac5c21b 100644
--- a/chrome/browser/page_load_metrics/metrics_web_contents_observer.h
+++ b/chrome/browser/page_load_metrics/metrics_web_contents_observer.h
@@ -97,7 +97,6 @@
   void MediaStartedPlaying(
       const content::WebContentsObserver::MediaPlayerInfo& video_type,
       const content::WebContentsObserver::MediaPlayerId& id) override;
-  void WebContentsDestroyed() override;
 
   // These methods are forwarded from the MetricsNavigationThrottle.
   void WillStartNavigationRequest(content::NavigationHandle* navigation_handle);
diff --git a/chrome/browser/page_load_metrics/metrics_web_contents_observer_unittest.cc b/chrome/browser/page_load_metrics/metrics_web_contents_observer_unittest.cc
index 4c38023..3a1b844d8 100644
--- a/chrome/browser/page_load_metrics/metrics_web_contents_observer_unittest.cc
+++ b/chrome/browser/page_load_metrics/metrics_web_contents_observer_unittest.cc
@@ -9,17 +9,14 @@
 
 #include "base/macros.h"
 #include "base/memory/ptr_util.h"
-#include "base/memory/weak_ptr.h"
 #include "base/process/kill.h"
 #include "base/test/histogram_tester.h"
 #include "base/time/time.h"
-#include "base/timer/mock_timer.h"
 #include "chrome/browser/page_load_metrics/metrics_navigation_throttle.h"
 #include "chrome/browser/page_load_metrics/page_load_metrics_embedder_interface.h"
 #include "chrome/browser/page_load_metrics/page_load_metrics_observer.h"
 #include "chrome/browser/page_load_metrics/page_load_tracker.h"
 #include "chrome/common/page_load_metrics/page_load_metrics_messages.h"
-#include "chrome/common/page_load_metrics/test/weak_mock_timer.h"
 #include "chrome/common/url_constants.h"
 #include "chrome/test/base/chrome_render_view_host_test_harness.h"
 #include "content/public/browser/navigation_handle.h"
@@ -120,8 +117,7 @@
 };
 
 class TestPageLoadMetricsEmbedderInterface
-    : public PageLoadMetricsEmbedderInterface,
-      public test::WeakMockTimerProvider {
+    : public PageLoadMetricsEmbedderInterface {
  public:
   TestPageLoadMetricsEmbedderInterface() : is_ntp_(false) {}
 
@@ -134,11 +130,6 @@
     tracker->AddObserver(base::MakeUnique<FilteringPageLoadMetricsObserver>(
         &completed_filtered_urls_));
   }
-  std::unique_ptr<base::Timer> CreateTimer() override {
-    auto timer = base::MakeUnique<test::WeakMockTimer>();
-    SetMockTimer(timer->AsWeakPtr());
-    return std::move(timer);
-  }
   const std::vector<mojom::PageLoadTimingPtr>& updated_timings() const {
     return updated_timings_;
   }
@@ -169,14 +160,6 @@
   bool is_ntp_;
 };
 
-void PopulatePageLoadTiming(mojom::PageLoadTiming* timing) {
-  page_load_metrics::InitPageLoadTimingForTest(timing);
-  timing->navigation_start = base::Time::FromDoubleT(1);
-  timing->response_start = base::TimeDelta::FromMilliseconds(10);
-  timing->parse_timing->parse_start = base::TimeDelta::FromMilliseconds(20);
-  timing->document_timing->first_layout = base::TimeDelta::FromMilliseconds(30);
-}
-
 }  //  namespace
 
 class MetricsWebContentsObserverTest : public ChromeRenderViewHostTestHarness {
@@ -193,30 +176,12 @@
         ->NavigateAndCommit(GURL(url::kAboutBlankURL));
   }
 
-  // Returns the mock timer used for buffering updates in the
-  // PageLoadMetricsUpdateDispatcher.
-  base::MockTimer* GetMostRecentTimer() {
-    return embedder_interface_->GetMockTimer();
-  }
-
   void SimulateTimingUpdate(const mojom::PageLoadTiming& timing) {
     SimulateTimingUpdate(timing, web_contents()->GetMainFrame());
   }
 
   void SimulateTimingUpdate(const mojom::PageLoadTiming& timing,
                             content::RenderFrameHost* render_frame_host) {
-    SimulateTimingUpdateWithoutFiringDispatchTimer(timing, render_frame_host);
-    // If sending the timing update caused the PageLoadMetricsUpdateDispatcher
-    // to schedule a buffering timer, then fire it now so metrics are dispatched
-    // to observers.
-    base::MockTimer* mock_timer = GetMostRecentTimer();
-    if (mock_timer && mock_timer->IsRunning())
-      mock_timer->Fire();
-  }
-
-  void SimulateTimingUpdateWithoutFiringDispatchTimer(
-      const mojom::PageLoadTiming& timing,
-      content::RenderFrameHost* render_frame_host) {
     observer()->OnTimingUpdated(render_frame_host, timing,
                                 mojom::PageLoadMetadata());
   }
@@ -771,7 +736,13 @@
 
   // Dispatch a timing update for the child frame that includes a first paint.
   mojom::PageLoadTiming subframe_timing;
-  PopulatePageLoadTiming(&subframe_timing);
+  page_load_metrics::InitPageLoadTimingForTest(&subframe_timing);
+  subframe_timing.navigation_start = base::Time::FromDoubleT(2);
+  subframe_timing.response_start = base::TimeDelta::FromMilliseconds(10);
+  subframe_timing.parse_timing->parse_start =
+      base::TimeDelta::FromMilliseconds(20);
+  subframe_timing.document_timing->first_layout =
+      base::TimeDelta::FromMilliseconds(30);
   subframe_timing.paint_timing->first_paint =
       base::TimeDelta::FromMilliseconds(40);
   content::RenderFrameHostTester* subframe_tester =
@@ -827,125 +798,4 @@
   CheckNoErrorEvents();
 }
 
-// We buffer cross-frame paint updates to account for paint timings from
-// different frames arriving out of order.
-TEST_F(MetricsWebContentsObserverTest, OutOfOrderCrossFrameTiming2) {
-  // Dispatch a timing update for the main frame that includes a first
-  // paint. This should be buffered, with the dispatch timer running.
-  mojom::PageLoadTiming timing;
-  PopulatePageLoadTiming(&timing);
-  timing.paint_timing->first_paint = base::TimeDelta::FromMilliseconds(1000);
-  content::WebContentsTester* web_contents_tester =
-      content::WebContentsTester::For(web_contents());
-  web_contents_tester->NavigateAndCommit(GURL(kDefaultTestUrl));
-  SimulateTimingUpdateWithoutFiringDispatchTimer(timing, main_rfh());
-
-  EXPECT_TRUE(GetMostRecentTimer()->IsRunning());
-  ASSERT_EQ(0, CountUpdatedTimingReported());
-
-  content::RenderFrameHostTester* rfh_tester =
-      content::RenderFrameHostTester::For(main_rfh());
-
-  // Dispatch a timing update for a child frame that includes a first paint.
-  mojom::PageLoadTiming subframe_timing;
-  PopulatePageLoadTiming(&subframe_timing);
-  subframe_timing.paint_timing->first_paint =
-      base::TimeDelta::FromMilliseconds(500);
-  content::RenderFrameHost* subframe = rfh_tester->AppendChild("subframe");
-  content::RenderFrameHostTester* subframe_tester =
-      content::RenderFrameHostTester::For(subframe);
-  subframe_tester->SimulateNavigationStart(GURL(kDefaultTestUrl2));
-  subframe_tester->SimulateNavigationCommit(GURL(kDefaultTestUrl2));
-  SimulateTimingUpdateWithoutFiringDispatchTimer(subframe_timing, subframe);
-  subframe_tester->SimulateNavigationStop();
-
-  histogram_tester_.ExpectTotalCount(
-      page_load_metrics::internal::kHistogramOutOfOrderTiming, 1);
-
-  EXPECT_TRUE(GetMostRecentTimer()->IsRunning());
-  ASSERT_EQ(0, CountUpdatedTimingReported());
-
-  // At this point, the timing update is buffered, waiting for the timer to
-  // fire.
-  GetMostRecentTimer()->Fire();
-
-  // Firing the timer should produce a timing update. The update should be a
-  // merged view of the main frame timing, with a first paint timestamp from the
-  // subframe.
-  ASSERT_EQ(1, CountUpdatedTimingReported());
-  EXPECT_FALSE(timing.Equals(*updated_timings().back()));
-  EXPECT_TRUE(
-      updated_timings().back()->parse_timing->Equals(*timing.parse_timing));
-  EXPECT_TRUE(updated_timings().back()->document_timing->Equals(
-      *timing.document_timing));
-  EXPECT_FALSE(
-      updated_timings().back()->paint_timing->Equals(*timing.paint_timing));
-  EXPECT_TRUE(updated_timings().back()->paint_timing->first_paint);
-
-  // The first paint value should be the min of all received first paints, which
-  // in this case is the first paint from the subframe. Since it is offset by
-  // the subframe's navigation start, the received value should be >= the first
-  // paint value specified in the subframe.
-  EXPECT_GE(updated_timings().back()->paint_timing->first_paint,
-            subframe_timing.paint_timing->first_paint);
-  EXPECT_LT(updated_timings().back()->paint_timing->first_paint,
-            timing.paint_timing->first_paint);
-
-  base::TimeDelta initial_first_paint =
-      updated_timings().back()->paint_timing->first_paint.value();
-
-  // Dispatch a timing update for an additional child frame, with an earlier
-  // first paint time. This should cause an immediate update, without a timer
-  // delay.
-  subframe_timing.paint_timing->first_paint =
-      base::TimeDelta::FromMilliseconds(50);
-  content::RenderFrameHost* subframe2 = rfh_tester->AppendChild("subframe");
-  content::RenderFrameHostTester* subframe2_tester =
-      content::RenderFrameHostTester::For(subframe2);
-  subframe2_tester->SimulateNavigationStart(GURL(kDefaultTestUrl2));
-  subframe2_tester->SimulateNavigationCommit(GURL(kDefaultTestUrl2));
-  SimulateTimingUpdateWithoutFiringDispatchTimer(subframe_timing, subframe2);
-  subframe2_tester->SimulateNavigationStop();
-
-  base::TimeDelta updated_first_paint =
-      updated_timings().back()->paint_timing->first_paint.value();
-
-  EXPECT_FALSE(GetMostRecentTimer()->IsRunning());
-  ASSERT_EQ(2, CountUpdatedTimingReported());
-  EXPECT_LT(updated_first_paint, initial_first_paint);
-
-  histogram_tester_.ExpectTotalCount(
-      page_load_metrics::internal::kHistogramOutOfOrderTimingBuffered, 1);
-  histogram_tester_.ExpectBucketCount(
-      page_load_metrics::internal::kHistogramOutOfOrderTimingBuffered,
-      (initial_first_paint - updated_first_paint).InMilliseconds(), 1);
-
-  CheckNoErrorEvents();
-}
-
-TEST_F(MetricsWebContentsObserverTest, DispatchDelayedMetricsOnPageClose) {
-  mojom::PageLoadTiming timing;
-  PopulatePageLoadTiming(&timing);
-  timing.paint_timing->first_paint = base::TimeDelta::FromMilliseconds(1000);
-  content::WebContentsTester* web_contents_tester =
-      content::WebContentsTester::For(web_contents());
-  web_contents_tester->NavigateAndCommit(GURL(kDefaultTestUrl));
-  SimulateTimingUpdateWithoutFiringDispatchTimer(timing, main_rfh());
-
-  EXPECT_TRUE(GetMostRecentTimer()->IsRunning());
-  ASSERT_EQ(0, CountUpdatedTimingReported());
-  ASSERT_EQ(0, CountCompleteTimingReported());
-
-  // Navigate to a new page. This should force dispatch of the buffered timing
-  // update.
-  NavigateToUntrackedUrl();
-
-  ASSERT_EQ(1, CountUpdatedTimingReported());
-  ASSERT_EQ(1, CountCompleteTimingReported());
-  EXPECT_TRUE(timing.Equals(*updated_timings().back()));
-  EXPECT_TRUE(timing.Equals(*complete_timings().back()));
-
-  CheckNoErrorEvents();
-}
-
 }  // namespace page_load_metrics
diff --git a/chrome/browser/page_load_metrics/observers/page_load_metrics_observer_test_harness.cc b/chrome/browser/page_load_metrics/observers/page_load_metrics_observer_test_harness.cc
index 37a51c54..bc777a0 100644
--- a/chrome/browser/page_load_metrics/observers/page_load_metrics_observer_test_harness.cc
+++ b/chrome/browser/page_load_metrics/observers/page_load_metrics_observer_test_harness.cc
@@ -38,12 +38,6 @@
     test_->RegisterObservers(tracker);
   }
 
-  std::unique_ptr<base::Timer> CreateTimer() override {
-    auto timer = base::MakeUnique<test::WeakMockTimer>();
-    test_->SetMockTimer(timer->AsWeakPtr());
-    return std::move(timer);
-  }
-
  private:
   PageLoadMetricsObserverTestHarness* test_;
 
@@ -57,6 +51,76 @@
 
 PageLoadMetricsObserverTestHarness::~PageLoadMetricsObserverTestHarness() {}
 
+// static
+void PageLoadMetricsObserverTestHarness::PopulateRequiredTimingFields(
+    mojom::PageLoadTiming* inout_timing) {
+  if (inout_timing->paint_timing->first_meaningful_paint &&
+      !inout_timing->paint_timing->first_contentful_paint) {
+    inout_timing->paint_timing->first_contentful_paint =
+        inout_timing->paint_timing->first_meaningful_paint;
+  }
+  if ((inout_timing->paint_timing->first_text_paint ||
+       inout_timing->paint_timing->first_image_paint ||
+       inout_timing->paint_timing->first_contentful_paint) &&
+      !inout_timing->paint_timing->first_paint) {
+    inout_timing->paint_timing->first_paint =
+        OptionalMin(OptionalMin(inout_timing->paint_timing->first_text_paint,
+                                inout_timing->paint_timing->first_image_paint),
+                    inout_timing->paint_timing->first_contentful_paint);
+  }
+  if (inout_timing->paint_timing->first_paint &&
+      !inout_timing->document_timing->first_layout) {
+    inout_timing->document_timing->first_layout =
+        inout_timing->paint_timing->first_paint;
+  }
+  if (inout_timing->document_timing->load_event_start &&
+      !inout_timing->document_timing->dom_content_loaded_event_start) {
+    inout_timing->document_timing->dom_content_loaded_event_start =
+        inout_timing->document_timing->load_event_start;
+  }
+  if (inout_timing->document_timing->first_layout &&
+      !inout_timing->parse_timing->parse_start) {
+    inout_timing->parse_timing->parse_start =
+        inout_timing->document_timing->first_layout;
+  }
+  if (inout_timing->document_timing->dom_content_loaded_event_start &&
+      !inout_timing->parse_timing->parse_stop) {
+    inout_timing->parse_timing->parse_stop =
+        inout_timing->document_timing->dom_content_loaded_event_start;
+  }
+  if (inout_timing->parse_timing->parse_stop &&
+      !inout_timing->parse_timing->parse_start) {
+    inout_timing->parse_timing->parse_start =
+        inout_timing->parse_timing->parse_stop;
+  }
+  if (inout_timing->parse_timing->parse_start &&
+      !inout_timing->response_start) {
+    inout_timing->response_start = inout_timing->parse_timing->parse_start;
+  }
+  if (inout_timing->parse_timing->parse_start) {
+    if (!inout_timing->parse_timing->parse_blocked_on_script_load_duration)
+      inout_timing->parse_timing->parse_blocked_on_script_load_duration =
+          base::TimeDelta();
+    if (!inout_timing->parse_timing
+             ->parse_blocked_on_script_execution_duration) {
+      inout_timing->parse_timing->parse_blocked_on_script_execution_duration =
+          base::TimeDelta();
+    }
+    if (!inout_timing->parse_timing
+             ->parse_blocked_on_script_load_from_document_write_duration) {
+      inout_timing->parse_timing
+          ->parse_blocked_on_script_load_from_document_write_duration =
+          base::TimeDelta();
+    }
+    if (!inout_timing->parse_timing
+             ->parse_blocked_on_script_execution_from_document_write_duration) {
+      inout_timing->parse_timing
+          ->parse_blocked_on_script_execution_from_document_write_duration =
+          base::TimeDelta();
+    }
+  }
+}
+
 void PageLoadMetricsObserverTestHarness::SetUp() {
   ChromeRenderViewHostTestHarness::SetUp();
   SetContents(CreateTestWebContents());
@@ -82,12 +146,6 @@
     const mojom::PageLoadTiming& timing,
     const mojom::PageLoadMetadata& metadata) {
   observer_->OnTimingUpdated(web_contents()->GetMainFrame(), timing, metadata);
-  // If sending the timing update caused the PageLoadMetricsUpdateDispatcher to
-  // schedule a buffering timer, then fire it now so metrics are dispatched to
-  // observers.
-  base::MockTimer* mock_timer = GetMockTimer();
-  if (mock_timer && mock_timer->IsRunning())
-    mock_timer->Fire();
 }
 
 void PageLoadMetricsObserverTestHarness::SimulateStartedResource(
diff --git a/chrome/browser/page_load_metrics/observers/page_load_metrics_observer_test_harness.h b/chrome/browser/page_load_metrics/observers/page_load_metrics_observer_test_harness.h
index 79c2ce5..5d4cd7da 100644
--- a/chrome/browser/page_load_metrics/observers/page_load_metrics_observer_test_harness.h
+++ b/chrome/browser/page_load_metrics/observers/page_load_metrics_observer_test_harness.h
@@ -9,8 +9,6 @@
 #include "base/test/histogram_tester.h"
 #include "chrome/browser/page_load_metrics/metrics_web_contents_observer.h"
 #include "chrome/browser/page_load_metrics/page_load_tracker.h"
-#include "chrome/common/page_load_metrics/test/page_load_metrics_test_util.h"
-#include "chrome/common/page_load_metrics/test/weak_mock_timer.h"
 #include "chrome/common/url_constants.h"
 #include "chrome/test/base/chrome_render_view_host_test_harness.h"
 #include "content/public/test/web_contents_tester.h"
@@ -23,12 +21,15 @@
 // an observer, override RegisterObservers and call tracker->AddObserver. This
 // will attach the observer to all main frame navigations.
 class PageLoadMetricsObserverTestHarness
-    : public ChromeRenderViewHostTestHarness,
-      public test::WeakMockTimerProvider {
+    : public ChromeRenderViewHostTestHarness {
  public:
   PageLoadMetricsObserverTestHarness();
   ~PageLoadMetricsObserverTestHarness() override;
 
+  // Helper that fills in any timing fields that MWCO requires but that are
+  // currently missing.
+  static void PopulateRequiredTimingFields(mojom::PageLoadTiming* inout_timing);
+
   void SetUp() override;
 
   virtual void RegisterObservers(PageLoadTracker* tracker) {}
diff --git a/chrome/browser/page_load_metrics/page_load_metrics_embedder_interface.h b/chrome/browser/page_load_metrics/page_load_metrics_embedder_interface.h
index 000fa2e..983a0145 100644
--- a/chrome/browser/page_load_metrics/page_load_metrics_embedder_interface.h
+++ b/chrome/browser/page_load_metrics/page_load_metrics_embedder_interface.h
@@ -5,14 +5,8 @@
 #ifndef CHROME_BROWSER_PAGE_LOAD_METRICS_PAGE_LOAD_METRICS_EMBEDDER_INTERFACE_H_
 #define CHROME_BROWSER_PAGE_LOAD_METRICS_PAGE_LOAD_METRICS_EMBEDDER_INTERFACE_H_
 
-#include <memory>
-
 class GURL;
 
-namespace base {
-class Timer;
-}  // namespace base
-
 namespace page_load_metrics {
 
 class PageLoadTracker;
@@ -24,7 +18,6 @@
   virtual ~PageLoadMetricsEmbedderInterface() {}
   virtual bool IsNewTabPageUrl(const GURL& url) = 0;
   virtual void RegisterObservers(PageLoadTracker* metrics) = 0;
-  virtual std::unique_ptr<base::Timer> CreateTimer() = 0;
 };
 
 }  // namespace page_load_metrics
diff --git a/chrome/browser/page_load_metrics/page_load_metrics_initialize.cc b/chrome/browser/page_load_metrics/page_load_metrics_initialize.cc
index c0c3791c..ac44410 100644
--- a/chrome/browser/page_load_metrics/page_load_metrics_initialize.cc
+++ b/chrome/browser/page_load_metrics/page_load_metrics_initialize.cc
@@ -6,7 +6,6 @@
 
 #include "base/macros.h"
 #include "base/memory/ptr_util.h"
-#include "base/timer/timer.h"
 #include "chrome/browser/page_load_metrics/metrics_web_contents_observer.h"
 #if defined(OS_ANDROID)
 #include "chrome/browser/page_load_metrics/observers/android_page_load_metrics_observer.h"
@@ -56,7 +55,6 @@
   // page_load_metrics::PageLoadMetricsEmbedderInterface:
   bool IsNewTabPageUrl(const GURL& url) override;
   void RegisterObservers(page_load_metrics::PageLoadTracker* tracker) override;
-  std::unique_ptr<base::Timer> CreateTimer() override;
 
  private:
   bool IsPrerendering() const;
@@ -144,10 +142,6 @@
          nullptr;
 }
 
-std::unique_ptr<base::Timer> PageLoadMetricsEmbedder::CreateTimer() {
-  return base::MakeUnique<base::OneShotTimer>();
-}
-
 bool PageLoadMetricsEmbedder::IsNewTabPageUrl(const GURL& url) {
   Profile* profile =
       Profile::FromBrowserContext(web_contents_->GetBrowserContext());
diff --git a/chrome/browser/page_load_metrics/page_load_metrics_update_dispatcher.cc b/chrome/browser/page_load_metrics/page_load_metrics_update_dispatcher.cc
index 0f47b82..f5e4ec5 100644
--- a/chrome/browser/page_load_metrics/page_load_metrics_update_dispatcher.cc
+++ b/chrome/browser/page_load_metrics/page_load_metrics_update_dispatcher.cc
@@ -25,10 +25,6 @@
 const char kPageLoadTimingStatus[] = "PageLoad.Internal.PageLoadTimingStatus";
 const char kPageLoadTimingDispatchStatus[] =
     "PageLoad.Internal.PageLoadTimingStatus.AtTimingCallbackDispatch";
-const char kHistogramOutOfOrderTiming[] =
-    "PageLoad.Internal.OutOfOrderInterFrameTiming";
-const char kHistogramOutOfOrderTimingBuffered[] =
-    "PageLoad.Internal.OutOfOrderInterFrameTiming.AfterBuffering";
 
 }  // namespace internal
 
@@ -204,57 +200,10 @@
   return internal::VALID;
 }
 
-// If the updated value has an earlier time than the current value, log so we
-// can keep track of how often this happens.
-void LogIfOutOfOrderTiming(const base::Optional<base::TimeDelta>& current,
-                           const base::Optional<base::TimeDelta>& update) {
-  if (!current || !update)
-    return;
-
-  if (update < current) {
-    PAGE_LOAD_HISTOGRAM(internal::kHistogramOutOfOrderTimingBuffered,
-                        current.value() - update.value());
-  }
-}
-
-// PaintTimingMerger merges paint timing values received from different frames
-// together.
-class PaintTimingMerger {
- public:
-  explicit PaintTimingMerger(mojom::PaintTiming* target) : target_(target) {}
-
-  // Merge paint timing values from |new_paint_timing| into the target
-  // PaintTiming.
-  void Merge(base::TimeDelta navigation_start_offset,
-             const mojom::PaintTiming& new_paint_timing,
-             bool is_main_frame);
-
-  // Whether we merged a new value, for a paint timing field we didn't
-  // previously have a value for in the target PaintTiming.
-  bool did_merge_new_timing_value() const {
-    return did_merge_new_timing_value_;
-  }
-
- private:
-  void MaybeUpdateTimeDelta(
-      base::Optional<base::TimeDelta>* inout_existing_value,
-      base::TimeDelta navigation_start_offset,
-      const base::Optional<base::TimeDelta>& optional_candidate_new_value);
-
-  // The target PaintTiming we are merging values into.
-  mojom::PaintTiming* const target_;
-
-  // Whether we merged a new value, for a paint timing field we didn't
-  // previously have a value for in |target_|.
-  bool did_merge_new_timing_value_ = false;
-
-  DISALLOW_COPY_AND_ASSIGN(PaintTimingMerger);
-};
-
 // Updates *|inout_existing_value| with |optional_candidate_new_value|, if
 // either *|inout_existing_value| isn't set, or |optional_candidate_new_value| <
 // |inout_existing_value|.
-void PaintTimingMerger::MaybeUpdateTimeDelta(
+void MaybeUpdateTimeDelta(
     base::Optional<base::TimeDelta>* inout_existing_value,
     base::TimeDelta navigation_start_offset,
     const base::Optional<base::TimeDelta>& optional_candidate_new_value) {
@@ -279,33 +228,13 @@
     // occasionally, as inter-frame updates can arrive out of order. Record a
     // histogram to track how frequently it happens, along with the magnitude
     // of the delta.
-    PAGE_LOAD_HISTOGRAM(internal::kHistogramOutOfOrderTiming,
+    PAGE_LOAD_HISTOGRAM("PageLoad.Internal.OutOfOrderInterFrameTiming",
                         inout_existing_value->value() - candidate_new_value);
-  } else {
-    did_merge_new_timing_value_ = true;
   }
 
   *inout_existing_value = candidate_new_value;
 }
 
-void PaintTimingMerger::Merge(base::TimeDelta navigation_start_offset,
-                              const mojom::PaintTiming& new_paint_timing,
-                              bool is_main_frame) {
-  MaybeUpdateTimeDelta(&target_->first_paint, navigation_start_offset,
-                       new_paint_timing.first_paint);
-  MaybeUpdateTimeDelta(&target_->first_text_paint, navigation_start_offset,
-                       new_paint_timing.first_text_paint);
-  MaybeUpdateTimeDelta(&target_->first_image_paint, navigation_start_offset,
-                       new_paint_timing.first_image_paint);
-  MaybeUpdateTimeDelta(&target_->first_contentful_paint,
-                       navigation_start_offset,
-                       new_paint_timing.first_contentful_paint);
-  if (is_main_frame) {
-    // First meaningful paint is only tracked in the main frame.
-    target_->first_meaningful_paint = new_paint_timing.first_meaningful_paint;
-  }
-}
-
 }  // namespace
 
 PageLoadMetricsUpdateDispatcher::PageLoadMetricsUpdateDispatcher(
@@ -314,24 +243,13 @@
     PageLoadMetricsEmbedderInterface* embedder_interface)
     : client_(client),
       embedder_interface_(embedder_interface),
-      timer_(embedder_interface->CreateTimer()),
       navigation_start_(navigation_handle->NavigationStart()),
       current_merged_page_timing_(CreatePageLoadTiming()),
       pending_merged_page_timing_(CreatePageLoadTiming()),
       main_frame_metadata_(mojom::PageLoadMetadata::New()),
       subframe_metadata_(mojom::PageLoadMetadata::New()) {}
 
-PageLoadMetricsUpdateDispatcher::~PageLoadMetricsUpdateDispatcher() {
-  ShutDown();
-}
-
-void PageLoadMetricsUpdateDispatcher::ShutDown() {
-  if (timer_ && timer_->IsRunning()) {
-    timer_->Stop();
-    DispatchTimingUpdates();
-  }
-  timer_ = nullptr;
-}
+PageLoadMetricsUpdateDispatcher::~PageLoadMetricsUpdateDispatcher() {}
 
 void PageLoadMetricsUpdateDispatcher::UpdateMetrics(
     content::RenderFrameHost* render_frame_host,
@@ -385,11 +303,32 @@
   client_->OnSubFrameTimingChanged(new_timing);
 
   base::TimeDelta navigation_start_offset = it->second;
-  PaintTimingMerger merger(pending_merged_page_timing_->paint_timing.get());
-  merger.Merge(navigation_start_offset, *new_timing.paint_timing,
-               false /* is_main_frame */);
+  MergePaintTiming(navigation_start_offset, *(new_timing.paint_timing),
+                   false /* is_main_frame */);
 
-  MaybeDispatchTimingUpdates(merger.did_merge_new_timing_value());
+  DispatchTimingUpdates();
+}
+
+void PageLoadMetricsUpdateDispatcher::MergePaintTiming(
+    base::TimeDelta navigation_start_offset,
+    const mojom::PaintTiming& new_paint_timing,
+    bool is_main_frame) {
+  MaybeUpdateTimeDelta(&pending_merged_page_timing_->paint_timing->first_paint,
+                       navigation_start_offset, new_paint_timing.first_paint);
+  MaybeUpdateTimeDelta(
+      &pending_merged_page_timing_->paint_timing->first_text_paint,
+      navigation_start_offset, new_paint_timing.first_text_paint);
+  MaybeUpdateTimeDelta(
+      &pending_merged_page_timing_->paint_timing->first_image_paint,
+      navigation_start_offset, new_paint_timing.first_image_paint);
+  MaybeUpdateTimeDelta(
+      &pending_merged_page_timing_->paint_timing->first_contentful_paint,
+      navigation_start_offset, new_paint_timing.first_contentful_paint);
+  if (is_main_frame) {
+    // first meaningful paint is only tracked in the main frame.
+    pending_merged_page_timing_->paint_timing->first_meaningful_paint =
+        new_paint_timing.first_meaningful_paint;
+  }
 }
 
 void PageLoadMetricsUpdateDispatcher::UpdateSubFrameMetadata(
@@ -435,12 +374,10 @@
   // observed |paint_timing|, which is tracked across all frames in the page.
   pending_merged_page_timing_ = new_timing.Clone();
   pending_merged_page_timing_->paint_timing = std::move(last_paint_timing);
+  MergePaintTiming(base::TimeDelta(), *new_timing.paint_timing,
+                   true /* is_main_frame */);
 
-  PaintTimingMerger merger(pending_merged_page_timing_->paint_timing.get());
-  merger.Merge(base::TimeDelta(), *new_timing.paint_timing,
-               true /* is_main_frame */);
-
-  MaybeDispatchTimingUpdates(merger.did_merge_new_timing_value());
+  DispatchTimingUpdates();
 }
 
 void PageLoadMetricsUpdateDispatcher::UpdateMainFrameMetadata(
@@ -461,24 +398,7 @@
   client_->OnMainFrameMetadataChanged();
 }
 
-void PageLoadMetricsUpdateDispatcher::MaybeDispatchTimingUpdates(
-    bool did_merge_new_timing_value) {
-  // If we merged a new timing value, then we should buffer updates for
-  // |kBufferTimerDelayMillis|, to allow for any other out of order timings to
-  // arrive before we dispatch the minimum observed timings to observers.
-  if (did_merge_new_timing_value) {
-    timer_->Start(
-        FROM_HERE, base::TimeDelta::FromMilliseconds(kBufferTimerDelayMillis),
-        base::Bind(&PageLoadMetricsUpdateDispatcher::DispatchTimingUpdates,
-                   base::Unretained(this)));
-  } else if (!timer_->IsRunning()) {
-    DispatchTimingUpdates();
-  }
-}
-
 void PageLoadMetricsUpdateDispatcher::DispatchTimingUpdates() {
-  DCHECK(!timer_->IsRunning());
-
   if (pending_merged_page_timing_->paint_timing->first_paint) {
     if (!pending_merged_page_timing_->parse_timing->parse_start ||
         !pending_merged_page_timing_->document_timing->first_layout) {
@@ -498,19 +418,6 @@
 
   if (current_merged_page_timing_->Equals(*pending_merged_page_timing_))
     return;
-
-  LogIfOutOfOrderTiming(current_merged_page_timing_->paint_timing->first_paint,
-                        pending_merged_page_timing_->paint_timing->first_paint);
-  LogIfOutOfOrderTiming(
-      current_merged_page_timing_->paint_timing->first_text_paint,
-      pending_merged_page_timing_->paint_timing->first_text_paint);
-  LogIfOutOfOrderTiming(
-      current_merged_page_timing_->paint_timing->first_image_paint,
-      pending_merged_page_timing_->paint_timing->first_image_paint);
-  LogIfOutOfOrderTiming(
-      current_merged_page_timing_->paint_timing->first_contentful_paint,
-      pending_merged_page_timing_->paint_timing->first_contentful_paint);
-
   current_merged_page_timing_ = pending_merged_page_timing_->Clone();
 
   internal::PageLoadTimingStatus status =
diff --git a/chrome/browser/page_load_metrics/page_load_metrics_update_dispatcher.h b/chrome/browser/page_load_metrics/page_load_metrics_update_dispatcher.h
index 7af5111c4..47f6e4f 100644
--- a/chrome/browser/page_load_metrics/page_load_metrics_update_dispatcher.h
+++ b/chrome/browser/page_load_metrics/page_load_metrics_update_dispatcher.h
@@ -6,11 +6,9 @@
 #define CHROME_BROWSER_PAGE_LOAD_METRICS_PAGE_LOAD_METRICS_UPDATE_DISPATCHER_H_
 
 #include <map>
-#include <memory>
 
 #include "base/macros.h"
 #include "base/time/time.h"
-#include "base/timer/timer.h"
 #include "chrome/common/page_load_metrics/page_load_metrics.mojom.h"
 
 namespace content {
@@ -67,8 +65,6 @@
 };
 
 extern const char kPageLoadTimingStatus[];
-extern const char kHistogramOutOfOrderTiming[];
-extern const char kHistogramOutOfOrderTimingBuffered[];
 
 }  // namespace internal
 
@@ -105,8 +101,6 @@
   void DidFinishSubFrameNavigation(
       content::NavigationHandle* navigation_handle);
 
-  void ShutDown();
-
   const mojom::PageLoadTiming& timing() const {
     return *(current_merged_page_timing_.get());
   }
@@ -128,7 +122,12 @@
   void UpdateMainFrameMetadata(const mojom::PageLoadMetadata& new_metadata);
   void UpdateSubFrameMetadata(const mojom::PageLoadMetadata& subframe_metadata);
 
-  void MaybeDispatchTimingUpdates(bool did_merge_new_timing_value);
+  // Merge values from |new_paint_timing| into |pending_merged_page_timing_|,
+  // offsetting any new timings by the |navigation_start_offset|.
+  void MergePaintTiming(base::TimeDelta navigation_start_offset,
+                        const mojom::PaintTiming& new_paint_timing,
+                        bool is_main_frame);
+
   void DispatchTimingUpdates();
 
   // The client is guaranteed to outlive this object.
@@ -137,8 +136,6 @@
   // Interface to chrome features. Must outlive the class.
   PageLoadMetricsEmbedderInterface* const embedder_interface_;
 
-  std::unique_ptr<base::Timer> timer_;
-
   // Time the navigation for this page load was initiated.
   const base::TimeTicks navigation_start_;
 
diff --git a/chrome/browser/page_load_metrics/page_load_metrics_util.cc b/chrome/browser/page_load_metrics/page_load_metrics_util.cc
index ab1acc1..22ec5505 100644
--- a/chrome/browser/page_load_metrics/page_load_metrics_util.cc
+++ b/chrome/browser/page_load_metrics/page_load_metrics_util.cc
@@ -7,6 +7,8 @@
 #include <algorithm>
 
 #include "chrome/common/page_load_metrics/page_load_timing.h"
+#include "net/base/registry_controlled_domains/registry_controlled_domain.h"
+#include "url/gurl.h"
 
 namespace page_load_metrics {
 
@@ -43,6 +45,45 @@
 
 }  // namespace
 
+base::Optional<std::string> GetGoogleHostnamePrefix(const GURL& url) {
+  const size_t registry_length =
+      net::registry_controlled_domains::GetRegistryLength(
+          url,
+
+          // Do not include unknown registries (registries that don't have any
+          // matches in effective TLD names).
+          net::registry_controlled_domains::EXCLUDE_UNKNOWN_REGISTRIES,
+
+          // Do not include private registries, such as appspot.com. We don't
+          // want to match URLs like www.google.appspot.com.
+          net::registry_controlled_domains::EXCLUDE_PRIVATE_REGISTRIES);
+
+  const base::StringPiece hostname = url.host_piece();
+  if (registry_length == 0 || registry_length == std::string::npos ||
+      registry_length >= hostname.length()) {
+    return base::Optional<std::string>();
+  }
+
+  // Removes the tld and the preceding dot.
+  const base::StringPiece hostname_minus_registry =
+      hostname.substr(0, hostname.length() - (registry_length + 1));
+
+  if (hostname_minus_registry == "google")
+    return std::string("");
+
+  if (!base::EndsWith(hostname_minus_registry, ".google",
+                      base::CompareCase::INSENSITIVE_ASCII)) {
+    return base::Optional<std::string>();
+  }
+
+  return std::string(hostname_minus_registry.substr(
+      0, hostname_minus_registry.length() - strlen(".google")));
+}
+
+bool IsGoogleHostname(const GURL& url) {
+  return GetGoogleHostnamePrefix(url).has_value();
+}
+
 bool WasStartedInForegroundOptionalEventInForeground(
     const base::Optional<base::TimeDelta>& event,
     const PageLoadExtraInfo& info) {
@@ -91,6 +132,18 @@
   return time_on_page;
 }
 
+base::Optional<base::TimeDelta> OptionalMin(
+    const base::Optional<base::TimeDelta>& a,
+    const base::Optional<base::TimeDelta>& b) {
+  if (a && !b)
+    return a;
+  if (b && !a)
+    return b;
+  if (!a && !b)
+    return a;  // doesn't matter which
+  return base::Optional<base::TimeDelta>(std::min(a.value(), b.value()));
+}
+
 bool DidObserveLoadingBehaviorInAnyFrame(
     const page_load_metrics::PageLoadExtraInfo& info,
     blink::WebLoadingBehaviorFlag behavior) {
diff --git a/chrome/browser/page_load_metrics/page_load_metrics_util.h b/chrome/browser/page_load_metrics/page_load_metrics_util.h
index a81c0432..1e6af571 100644
--- a/chrome/browser/page_load_metrics/page_load_metrics_util.h
+++ b/chrome/browser/page_load_metrics/page_load_metrics_util.h
@@ -9,7 +9,6 @@
 #include "base/optional.h"
 #include "base/time/time.h"
 #include "chrome/browser/page_load_metrics/page_load_metrics_observer.h"
-#include "chrome/common/page_load_metrics/page_load_metrics_util.h"
 #include "third_party/WebKit/public/platform/WebLoadingBehaviorFlag.h"
 
 // Up to 10 minutes, with 100 buckets.
@@ -119,12 +118,34 @@
     const PageLoadExtraInfo& info,
     base::TimeTicks app_background_time);
 
+// Returns the minimum value of the optional TimeDeltas, if both values are
+// set. Otherwise, if one value is set, returns that value. Otherwise, returns
+// an unset value.
+base::Optional<base::TimeDelta> OptionalMin(
+    const base::Optional<base::TimeDelta>& a,
+    const base::Optional<base::TimeDelta>& b);
+
 // Whether the given loading behavior was observed in any frame (either the main
 // frame or a subframe).
 bool DidObserveLoadingBehaviorInAnyFrame(
     const page_load_metrics::PageLoadExtraInfo& info,
     blink::WebLoadingBehaviorFlag behavior);
 
+// Whether the given url has a google hostname.
+bool IsGoogleHostname(const GURL& url);
+
+// If the given hostname is a google hostname, returns the portion of the
+// hostname before the google hostname. Otherwise, returns an unset optional
+// value.
+//
+// For example:
+//   https://example.com/foo => returns an unset optional value
+//   https://google.com/foo => returns ''
+//   https://www.google.com/foo => returns 'www'
+//   https://news.google.com/foo => returns 'news'
+//   https://a.b.c.google.com/foo => returns 'a.b.c'
+base::Optional<std::string> GetGoogleHostnamePrefix(const GURL& url);
+
 }  // namespace page_load_metrics
 
 #endif  // CHROME_BROWSER_PAGE_LOAD_METRICS_PAGE_LOAD_METRICS_UTIL_H_
diff --git a/chrome/browser/page_load_metrics/page_load_tracker.cc b/chrome/browser/page_load_metrics/page_load_tracker.cc
index 9f83e20f..742c841 100644
--- a/chrome/browser/page_load_metrics/page_load_tracker.cc
+++ b/chrome/browser/page_load_metrics/page_load_tracker.cc
@@ -201,8 +201,6 @@
   if (did_stop_tracking_)
     return;
 
-  metrics_update_dispatcher_.ShutDown();
-
   if (page_end_time_.is_null()) {
     // page_end_time_ can be unset in some cases, such as when a navigation is
     // aborted by a navigation that started before it. In these cases, set the
diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc
index 09ecf6da..d481adf 100644
--- a/chrome/browser/prefs/browser_prefs.cc
+++ b/chrome/browser/prefs/browser_prefs.cc
@@ -133,6 +133,7 @@
 #include "chrome/browser/extensions/api/tabs/tabs_api.h"
 #include "chrome/browser/extensions/extension_web_ui.h"
 #include "chrome/browser/extensions/launch_util.h"
+#include "chrome/browser/extensions/ntp_overridden_bubble_delegate.h"
 #include "chrome/browser/signin/easy_unlock_service.h"
 #include "chrome/browser/ui/toolbar/component_toolbar_actions_factory.h"
 #include "chrome/browser/ui/toolbar/toolbar_actions_bar.h"
@@ -527,6 +528,7 @@
   extensions::AudioAPI::RegisterUserPrefs(registry);
   extensions::ExtensionPrefs::RegisterProfilePrefs(registry);
   extensions::launch_util::RegisterProfilePrefs(registry);
+  extensions::NtpOverriddenBubbleDelegate::RegisterPrefs(registry);
   extensions::RuntimeAPI::RegisterPrefs(registry);
 #endif  // BUILDFLAG(ENABLE_EXTENSIONS)
 
diff --git a/chrome/browser/prerender/prerender_browsertest.cc b/chrome/browser/prerender/prerender_browsertest.cc
index 0c6d628..9736d35f1 100644
--- a/chrome/browser/prerender/prerender_browsertest.cc
+++ b/chrome/browser/prerender/prerender_browsertest.cc
@@ -40,6 +40,7 @@
 #include "chrome/browser/extensions/extension_apitest.h"
 #include "chrome/browser/external_protocol/external_protocol_handler.h"
 #include "chrome/browser/net/prediction_options.h"
+#include "chrome/browser/page_load_metrics/observers/page_load_metrics_observer_test_harness.h"
 #include "chrome/browser/page_load_metrics/observers/prerender_page_load_metrics_observer.h"
 #include "chrome/browser/password_manager/password_store_factory.h"
 #include "chrome/browser/predictors/autocomplete_action_predictor.h"
@@ -70,7 +71,6 @@
 #include "chrome/common/chrome_features.h"
 #include "chrome/common/chrome_paths.h"
 #include "chrome/common/chrome_switches.h"
-#include "chrome/common/page_load_metrics/test/page_load_metrics_test_util.h"
 #include "chrome/test/base/ui_test_utils.h"
 #include "components/content_settings/core/browser/host_content_settings_map.h"
 #include "components/favicon/content/content_favicon_driver.h"
@@ -3439,7 +3439,8 @@
   timing.navigation_start = base::Time::FromDoubleT(1);  // Non-null time.
   timing.paint_timing->first_contentful_paint =
       base::TimeDelta::FromMilliseconds(2654);
-  PopulateRequiredTimingFields(&timing);
+  page_load_metrics::PageLoadMetricsObserverTestHarness::
+      PopulateRequiredTimingFields(&timing);
   observer.OnFirstContentfulPaintInPage(timing,
                                         GenericPageLoadExtraInfo(dest_url()));
 
@@ -3481,7 +3482,8 @@
   timing.navigation_start = base::Time::FromDoubleT(1);  // Non-null time.
   timing.paint_timing->first_contentful_paint =
       base::TimeDelta::FromMilliseconds(2361);
-  PopulateRequiredTimingFields(&timing);
+  page_load_metrics::PageLoadMetricsObserverTestHarness::
+      PopulateRequiredTimingFields(&timing);
   observer.OnFirstContentfulPaintInPage(timing,
                                         GenericPageLoadExtraInfo(dest_url()));
 
@@ -3523,7 +3525,8 @@
   timing.navigation_start = base::Time::FromDoubleT(1);  // Non-null time.
   timing.paint_timing->first_contentful_paint =
       base::TimeDelta::FromMilliseconds(2361);
-  PopulateRequiredTimingFields(&timing);
+  page_load_metrics::PageLoadMetricsObserverTestHarness::
+      PopulateRequiredTimingFields(&timing);
   observer.OnFirstContentfulPaintInPage(timing,
                                         GenericPageLoadExtraInfo(dest_url()));
 
@@ -3567,7 +3570,8 @@
   timing.navigation_start = base::Time::FromDoubleT(1);  // Non-null time.
   timing.paint_timing->first_contentful_paint =
       base::TimeDelta::FromMilliseconds(2362);
-  PopulateRequiredTimingFields(&timing);
+  page_load_metrics::PageLoadMetricsObserverTestHarness::
+      PopulateRequiredTimingFields(&timing);
   observer.OnFirstContentfulPaintInPage(timing,
                                         GenericPageLoadExtraInfo(dest_url()));
 
@@ -3618,7 +3622,8 @@
   // The FCP time should end up on the edge of the bucket.
   timing.paint_timing->first_contentful_paint =
       base::TimeDelta::FromMilliseconds(2654);
-  PopulateRequiredTimingFields(&timing);
+  page_load_metrics::PageLoadMetricsObserverTestHarness::
+      PopulateRequiredTimingFields(&timing);
   observer.OnFirstContentfulPaintInPage(timing,
                                         GenericPageLoadExtraInfo(dest_url()));
 
@@ -3650,7 +3655,8 @@
   timing.navigation_start = base::Time::FromDoubleT(1);  // Non-null time.
   timing.paint_timing->first_contentful_paint =
       base::TimeDelta::FromMilliseconds(2654);
-  PopulateRequiredTimingFields(&timing);
+  page_load_metrics::PageLoadMetricsObserverTestHarness::
+      PopulateRequiredTimingFields(&timing);
   observer.OnFirstContentfulPaintInPage(timing,
                                         GenericPageLoadExtraInfo(dest_url()));
 
@@ -3696,7 +3702,8 @@
   timing.navigation_start = base::Time::FromDoubleT(1);  // Non-null time.
   timing.paint_timing->first_contentful_paint =
       base::TimeDelta::FromMilliseconds(2362);
-  PopulateRequiredTimingFields(&timing);
+  page_load_metrics::PageLoadMetricsObserverTestHarness::
+      PopulateRequiredTimingFields(&timing);
   observer.OnFirstContentfulPaintInPage(timing,
                                         GenericPageLoadExtraInfo(dest_url()));
 
diff --git a/chrome/browser/resources/settings/basic_page/basic_page.html b/chrome/browser/resources/settings/basic_page/basic_page.html
index aa1d2938..86c5b4b 100644
--- a/chrome/browser/resources/settings/basic_page/basic_page.html
+++ b/chrome/browser/resources/settings/basic_page/basic_page.html
@@ -1,6 +1,7 @@
 <link rel="import" href="chrome://resources/html/polymer.html">
 
 <link rel="import" href="chrome://resources/cr_elements/hidden_style_css.html">
+<link rel="import" href="chrome://resources/html/web_ui_listener_behavior.html">
 <link rel="import" href="../appearance_page/appearance_page.html">
 <link rel="import" href="../controls/settings_idle_load.html">
 <link rel="import" href="../on_startup_page/on_startup_page.html">
@@ -23,6 +24,10 @@
 <link rel="import" href="../default_browser_page/default_browser_page.html">
 </if>
 
+<if expr="is_win">
+<link rel="import" href="../chrome_cleanup_page/chrome_cleanup_page.html">
+</if>
+
 <!-- TODO(michaelpg): Rename to something better than "basic" now that this page
      includes both the basic and advanced settings. -->
 <dom-module id="settings-basic-page">
@@ -115,6 +120,13 @@
           </settings-section>
         </template>
 </if>
+<if expr="is_win">
+        <template is="dom-if" if="[[chromeCleanupVisible_]]" restamp>
+          <settings-section section="chromeCleanup">
+            <settings-chrome-cleanup-page></settings-chrome-cleanup-page>
+          </settings-section>
+        </template>
+</if>
         <template is="dom-if" if="[[showPage_(pageVisibility.people)]]" restamp>
           <settings-section page-title="$i18n{peoplePageTitle}"
               section="people">
diff --git a/chrome/browser/resources/settings/basic_page/basic_page.js b/chrome/browser/resources/settings/basic_page/basic_page.js
index f8cc1d7..01ee11b6 100644
--- a/chrome/browser/resources/settings/basic_page/basic_page.js
+++ b/chrome/browser/resources/settings/basic_page/basic_page.js
@@ -9,7 +9,7 @@
 Polymer({
   is: 'settings-basic-page',
 
-  behaviors: [MainPageBehavior],
+  behaviors: [MainPageBehavior, WebUIListenerBehavior],
 
   properties: {
     /** Preferences state. */
@@ -20,13 +20,26 @@
 
     showAndroidApps: Boolean,
 
+    // <if expr="is_win">
+    /**
+     * Whether there is cleanup information to present to the user.
+     * @private {boolean}
+     */
+    chromeCleanupVisible_: {
+      type: Boolean,
+      value: false,
+    },
+    // </if>
+
     /**
      * Dictionary defining page visibility.
      * @type {!GuestModePageVisibility}
      */
     pageVisibility: {
       type: Object,
-      value: function() { return {}; },
+      value: function() {
+        return {};
+      },
     },
 
     advancedToggleExpanded: {
@@ -56,7 +69,7 @@
       },
     },
 
-// <if expr="chromeos">
+    // <if expr="chromeos">
     /**
      * Whether the user is a secondary user. Computed so that it is calculated
      * correctly after loadTimeData is available.
@@ -66,7 +79,7 @@
       type: Boolean,
       computed: 'computeShowSecondaryUserBanner_(hasExpandedSection_)',
     },
-// </if>
+    // </if>
 
     /** @private {!settings.Route|undefined} */
     currentRoute_: Object,
@@ -79,6 +92,21 @@
   /** @override */
   attached: function() {
     this.currentRoute_ = settings.getCurrentRoute();
+
+    // <if expr="is_win">
+    this.addWebUIListener(
+        'basic-page-set-chrome-cleanup-visibility',
+        function(visibility) {
+          this.chromeCleanupVisible_ = visibility;
+        }.bind(this));
+
+    var cleanupBrowserProxy =
+        settings.ChromeCleanupProxyImpl.getInstance();
+    cleanupBrowserProxy.getChromeCleanupVisibility().then(
+      function(visibility) {
+        this.chromeCleanupVisible_ = visibility;
+      }.bind(this));
+    // </if>
   },
 
   /**
@@ -146,7 +174,7 @@
     });
   },
 
-// <if expr="chromeos">
+  // <if expr="chromeos">
   /**
    * @return {boolean}
    * @private
@@ -155,7 +183,7 @@
     return !this.hasExpandedSection_ &&
         loadTimeData.getBoolean('isSecondaryUser');
   },
-// </if>
+  // </if>
 
   /** @private */
   onResetProfileBannerClosed_: function() {
diff --git a/chrome/browser/resources/settings/basic_page/compiled_resources2.gyp b/chrome/browser/resources/settings/basic_page/compiled_resources2.gyp
index 6a43131..95174a4 100644
--- a/chrome/browser/resources/settings/basic_page/compiled_resources2.gyp
+++ b/chrome/browser/resources/settings/basic_page/compiled_resources2.gyp
@@ -7,6 +7,8 @@
       'target_name': 'basic_page',
       'dependencies': [
         '<(DEPTH)/ui/webui/resources/js/compiled_resources2.gyp:load_time_data',
+        '<(DEPTH)/ui/webui/resources/js/compiled_resources2.gyp:web_ui_listener_behavior',
+        '../chrome_cleanup_page/compiled_resources2.gyp:chrome_cleanup_proxy',
         '../compiled_resources2.gyp:route',
         '../compiled_resources2.gyp:search_settings',
         '../settings_page/compiled_resources2.gyp:main_page_behavior',
diff --git a/chrome/browser/resources/settings/chrome_cleanup_page/chrome_cleanup_page.html b/chrome/browser/resources/settings/chrome_cleanup_page/chrome_cleanup_page.html
new file mode 100644
index 0000000..a7def7e
--- /dev/null
+++ b/chrome/browser/resources/settings/chrome_cleanup_page/chrome_cleanup_page.html
@@ -0,0 +1,99 @@
+<link rel="import" href="chrome://resources/html/util.html">
+<link rel="import" href="chrome://resources/html/polymer.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/iron-icon/iron-icon.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/paper-button/paper-button.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/paper-spinner/paper-spinner.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/paper-styles/color.html">
+<link rel="import" href="chrome://resources/html/i18n_behavior.html">
+<link rel="import" href="chrome://resources/html/web_ui_listener_behavior.html">
+<link rel="import" href="../controls/controlled_button.html">
+<link rel="import" href="../controls/settings_toggle_button.html">
+<link rel="import" href="../settings_shared_css.html">
+<link rel="import" href="chrome_cleanup_proxy.html">
+
+<dom-module id="settings-chrome-cleanup-page">
+  <template>
+    <style include="settings-shared">
+      #details-container {
+        display: block;
+        padding-bottom: 10px;
+        padding-top: 10px;
+      }
+
+      #files-to-remove-list {
+        -webkit-user-select: text;
+      }
+
+      .powered-by {
+        padding-top: 10px;
+      }
+
+      #show-files-button {
+        color: var(--google-blue-700);
+        --paper-button-ink-color: white;
+        text-transform: inherit;
+      }
+
+      .show-files-container {
+        padding-top: 10px;
+      }
+
+      #status-icon {
+        height: 24px;
+        width: 24px;
+      }
+
+      .status-icon-container {
+        min-width: 28px;
+        padding-right: 12px;
+      }
+
+      .status-icon-remove {
+        --iron-icon-fill-color: var(--paper-grey-700);
+      }
+
+      .status-icon-done {
+        --iron-icon-fill-color: var(--paper-blue-500);
+      }
+
+      .status-icon-warning {
+        --iron-icon-fill-color: var(--paper-red-700);
+      }
+    </style>
+    <div class="settings-box first two-line">
+      <div class="status-icon-container">
+        <paper-spinner id="cleaning-spinner" active="[[isRemoving_]]"
+            hidden="[[!isRemoving_]]">
+        </paper-spinner>
+        <iron-icon icon="[[statusIcon_]]" hidden="[[isRemoving_]]"
+            class$="[[statusIconClassName_]]"
+            id="status-icon">
+        </iron-icon>
+      </div>
+      <div class="start">[[title_]]</div>
+      <template is="dom-if" if="[[showActionButton_]]">
+        <div class="separator"></div>
+        <paper-button id="action-button" on-tap="proceed_">
+          [[actionButtonLabel_]]
+        </paper-button>
+      </template>
+    </div>
+    <div id="details-container"
+         class="settings-box" hidden="[[!showDetails_]]">
+      <div>[[detailsDescription]]</div>
+      <div class="show-files-container start" hidden="[[showFilesToRemove_]]">
+        <paper-button id="show-files-button" on-tap="showFiles_">
+          $i18n{chromeCleanupLinkShowFiles}
+        </paper-button>
+      </div>
+      <div hidden="[[!showFilesToRemove_]]">
+        <ul id="files-to-remove-list" class="secondary">
+          <template is="dom-repeat" items="[[filesToRemove_]]" as="fileName">
+            <li>[[fileName]]</li>
+          </template>
+        </ul>
+      </div>
+    </div>
+  </template>
+  <script src="chrome_cleanup_page.js"></script>
+</dom-module>
diff --git a/chrome/browser/resources/settings/chrome_cleanup_page/chrome_cleanup_page.js b/chrome/browser/resources/settings/chrome_cleanup_page/chrome_cleanup_page.js
new file mode 100644
index 0000000..615d447
--- /dev/null
+++ b/chrome/browser/resources/settings/chrome_cleanup_page/chrome_cleanup_page.js
@@ -0,0 +1,340 @@
+// Copyright 2015 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.
+
+/**
+ * The reason why the controller is in state kIdle.
+ * Must be kept in sync with ChromeCleanerController::IdleReason.
+ * @enum {number}
+ */
+settings.ChromeCleanupIdleReason = {
+  INITIAL: 0,
+  SCANNING_FOUND_NOTHING: 1,
+  SCANNING_FAILED: 2,
+  CONNECTION_LOST: 3,
+  CLEANING_FAILED: 4,
+  CLEANING_SUCCEEDED: 5,
+};
+
+/**
+ * @fileoverview
+ * 'settings-chrome-cleanup-page' is the settings page containing Chrome
+ * Cleanup settings.
+ *
+ * Example:
+ *
+ *    <iron-animated-pages>
+ *      <settings-chrome-cleanup-page></settings-chrome-cleanup-page>
+ *      ... other pages ...
+ *    </iron-animated-pages>
+ */
+Polymer({
+  is: 'settings-chrome-cleanup-page',
+
+  behaviors: [I18nBehavior, WebUIListenerBehavior],
+
+  properties: {
+    /** @private */
+    title_: {
+      type: String,
+      value: '',
+    },
+
+    /** @private */
+    isRemoving_: {
+      type: Boolean,
+      value: '',
+    },
+
+    /** @private */
+    showActionButton_: {
+      type: Boolean,
+      value: false,
+    },
+
+    /** @private */
+    actionButtonLabel_: {
+      type: String,
+      value: '',
+    },
+
+    /** @private */
+    showDetails_: {
+      type: Boolean,
+      value: false,
+    },
+
+    /** @private */
+    detailsDescription: {
+      type: String,
+      value: '',
+    },
+
+    /** @private */
+    showFilesToRemove_: {
+      type: Boolean,
+      value: false,
+    },
+
+    /** @private */
+    filesToRemove_: {
+      type: Array,
+      value: [],
+    },
+
+    /** @private */
+    statusIcon_: {
+      type: String,
+      value: '',
+    },
+
+    /** @private */
+    statusIconClassName_: {
+      type: String,
+      value: '',
+    },
+  },
+
+  /** @private {?settings.ChromeCleanupProxy} */
+  browserProxy_: null,
+
+  /** @private {?function()} */
+  doAction_: null,
+
+  /**
+   * If true, this settings page is waiting for cleanup results.
+   * @private {boolean}
+   */
+  waitingForCleanupResults_: false,
+
+  /** @override */
+  attached: function() {
+    this.browserProxy_ = settings.ChromeCleanupProxyImpl.getInstance();
+
+    this.addWebUIListener('chrome-cleanup-on-idle', this.OnIdle_.bind(this));
+    this.addWebUIListener(
+        'chrome-cleanup-on-scanning', this.OnScanning_.bind(this));
+    this.addWebUIListener(
+        'chrome-cleanup-on-infected', this.OnInfected_.bind(this));
+    this.addWebUIListener(
+        'chrome-cleanup-on-cleaning', this.OnCleaning_.bind(this));
+    this.addWebUIListener(
+        'chrome-cleanup-on-reboot-required', this.OnRebootRequired_.bind(this));
+
+    this.browserProxy_.registerChromeCleanupObserver();
+  },
+
+  /**
+   * Implements the action for the only visible button in the UI, which can be
+   * either to start a cleanup or to restart the computer.
+   * @private
+   */
+  proceed_: function() {
+    listenOnce(this, 'transitionend', this.doAction_.bind(this));
+  },
+
+  /**
+   * Enables presenting the list of files to be removed by Chrome Cleanup.
+   * @private
+   */
+  showFiles_: function() {
+    this.showFilesToRemove_ = true;
+  },
+
+  /**
+   * Listener of event 'chrome-cleanup-on-idle'.
+   * @param {number} idleReason
+   * @private
+   */
+  OnIdle_: function(idleReason) {
+    if (this.waitingForCleanupResults_ &&
+        idleReason == settings.ChromeCleanupIdleReason.CLEANING_SUCCEEDED) {
+      this.title_ = this.i18n('chromeCleanupTitleRemoved');
+      this.enableActionButton_(
+          this.i18n('chromeCleanupDoneButtonLabel'), this.dismiss_.bind(this));
+      this.setIconDone_();
+    } else if (
+        this.waitingForCleanupResults_ &&
+        idleReason == settings.ChromeCleanupIdleReason.CLEANING_FAILED) {
+      this.title_ = this.i18n('chromeCleanupTitleErrorCantRemove');
+      this.enableActionButton_(
+          this.i18n('chromeCleanupDoneButtonLabel'), this.dismiss_.bind(this));
+      this.setIconWarning_();
+    } else {
+      // TODO(proberge): Handle other cases.
+      this.title_ = '';
+      this.disableActionButton_();
+    }
+
+    this.isRemoving_ = false;
+    this.disableDetails_();
+    this.waitingForCleanupResults_ = false;
+  },
+
+  /**
+   * Listener of event 'chrome-cleanup-on-scanning'.
+   * No UI will be shown in the Settings page on that state, so we simply hide
+   * the card and cleanup this element's fields.
+   * @private
+   */
+  OnScanning_: function() {
+    this.title_ = '';
+    this.isRemoving_ = false;
+    this.disableActionButton_();
+    this.disableDetails_();
+  },
+
+  /**
+   * Listener of event 'chrome-cleanup-on-infected'.
+   * Offers a cleanup to the user and enables presenting files to be removed.
+   * @param {!Array<!string>} files The list of files to present to the user.
+   * @private
+   */
+  OnInfected_: function(files) {
+    this.title_ = this.i18n('chromeCleanupTitleRemove');
+    this.isRemoving_ = false;
+    this.setIconRemove_();
+    this.enableActionButton_(
+        this.i18n('chromeCleanupRemoveButtonLabel'),
+        this.startCleanup_.bind(this));
+    this.enableDetails_(files);
+  },
+
+  /**
+   * Listener of event 'chrome-cleanup-on-cleaning'.
+   * Shows a spinner indicating that an on-going action and enables presenting
+   * files to be removed.
+   * @param {!Array<!string>} files The list of files to present to the user.
+   * @private
+   */
+  OnCleaning_: function(files) {
+    this.waitingForCleanupResults_ = true;
+    this.title_ = this.i18n('chromeCleanupTitleRemoving');
+    this.isRemoving_ = true;
+    this.resetIcon_();
+    this.disableActionButton_();
+    this.enableDetails_(files);
+  },
+
+  /**
+   * Listener of event 'chrome-cleanup-on-reboot-required'.
+   * No UI will be shown in the Settings page on that state, so we simply hide
+   * the card and cleanup this element's fields.
+   * @private
+   */
+  OnRebootRequired_: function() {
+    this.title_ = this.i18n('chromeCleanupTitleRestart');
+    this.isRemoving_ = false;
+    this.setIconWarning_();
+    this.enableActionButton_(
+        this.i18n('chromeCleanupRestartButtonLabel'),
+        this.restartComputer_.bind(this));
+    this.disableDetails_();
+  },
+
+  /**
+   * Dismiss the card and unregister it from the controller.
+   * @private
+   */
+  dismiss_: function() {
+    this.browserProxy_.dismissCleanupPage();
+    // TODO(proberge): unregister from the controller.
+  },
+
+  /**
+   * Hides the action button in the card when no action is available.
+   * @private
+   */
+  disableActionButton_: function() {
+    this.showActionButton_ = false;
+    this.actionButtonLabel_ = '';
+    this.doAction_ = null;
+  },
+
+  /**
+   * Shows the action button in the card with an associated label and action
+   * function.
+   * @param {!string} buttonLabel The label for the action button.
+   * @param {!function()} action The function associated with the on-tap event.
+   * @private
+   */
+  enableActionButton_: function(buttonLabel, action) {
+    this.showActionButton_ = true;
+    this.actionButtonLabel_ = buttonLabel;
+    this.doAction_ = action;
+  },
+
+  /**
+   * Disables the details section on the card.
+   * @private
+   */
+  disableDetails_: function() {
+    this.showDetails_ = false;
+    this.detailsDescription = '';
+    this.showFilesToRemove_ = false;
+    this.filesToRemove_ = [];
+  },
+
+  /**
+   * Enables the details section on the card.
+   * @param {!Array<!string>} files The list of files to present to the user.
+   * @private
+   */
+  enableDetails_: function(files) {
+    this.showDetails_ = true;
+    this.detailsDescription = this.i18n('chromeCleanupExplanation');
+    // Note: doesn't change the state of this.showFilesToRemove_.
+    this.filesToRemove_ = files;
+  },
+
+  /**
+   * Sends an action to the browser proxy to start the cleanup.
+   * @private
+   */
+  startCleanup_: function() {
+    this.browserProxy_.startCleanup();
+  },
+
+  /**
+   * Sends an action to the browser proxy to restart the machine.
+   * @private
+   */
+  restartComputer_: function() {
+    this.browserProxy_.restartComputer();
+  },
+
+  /**
+   * Sets the card's icon as the cleanup offered indication.
+   * @private
+   */
+  setIconRemove_: function() {
+    this.statusIcon_ = 'settings:security';
+    this.statusIconClassName_ = 'status-icon-remove';
+  },
+
+  /**
+   * Sets the card's icon as a warning (in case of computer restart required
+   * or failure).
+   * @private
+   */
+  setIconWarning_: function() {
+    this.statusIcon_ = 'settings:error';
+    this.statusIconClassName_ = 'status-icon-warning';
+  },
+
+  /**
+   * Sets the card's icon as a completed indication.
+   */
+  setIconDone_: function() {
+    this.statusIcon_ = 'settings:check-circle';
+    this.statusIconClassName_ = 'status-icon-done';
+  },
+
+  /**
+   * Resets the card's icon.
+   */
+  resetIcon_: function() {
+    this.statusIcon_ = '';
+    this.statusIconClassName_ = '';
+  },
+});
diff --git a/chrome/browser/resources/settings/chrome_cleanup_page/chrome_cleanup_proxy.html b/chrome/browser/resources/settings/chrome_cleanup_page/chrome_cleanup_proxy.html
new file mode 100644
index 0000000..f1a8713
--- /dev/null
+++ b/chrome/browser/resources/settings/chrome_cleanup_page/chrome_cleanup_proxy.html
@@ -0,0 +1,3 @@
+<link rel="import" href="chrome://resources/html/assert.html">
+<link rel="import" href="chrome://resources/html/cr.html">
+<script src="chrome_cleanup_proxy.js"></script>
diff --git a/chrome/browser/resources/settings/chrome_cleanup_page/chrome_cleanup_proxy.js b/chrome/browser/resources/settings/chrome_cleanup_page/chrome_cleanup_proxy.js
new file mode 100644
index 0000000..c269d8d
--- /dev/null
+++ b/chrome/browser/resources/settings/chrome_cleanup_page/chrome_cleanup_proxy.js
@@ -0,0 +1,82 @@
+// Copyright 2017 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.
+
+cr.define('settings', function() {
+  /** @interface */
+  function ChromeCleanupProxy() {}
+
+  ChromeCleanupProxy.prototype = {
+    /**
+     * Registers the current ChromeCleanupHandler as an observer of
+     * ChromeCleanupController events.
+     */
+    registerChromeCleanupObserver: assertNotReached,
+
+    /**
+     * Starts a cleanup on the user's computer.
+     */
+    startCleanup: assertNotReached,
+
+    /**
+     * Restarts the user's computer.
+     */
+    restartComputer: assertNotReached,
+
+    /**
+     * Hides the Cleanup page from the settings menu.
+     */
+    dismissCleanupPage: assertNotReached,
+
+    /**
+     * Retrieves if there is cleanup information to present to the user.
+     * @return {!Promise<boolean>}
+     */
+    getChromeCleanupVisibility: assertNotReached,
+  };
+
+  /**
+   * @implements {settings.ChromeCleanupProxy}
+   * @constructor
+   */
+  function ChromeCleanupProxyImpl() {}
+
+  cr.addSingletonGetter(ChromeCleanupProxyImpl);
+
+  ChromeCleanupProxyImpl.prototype = {
+    /** @override */
+    registerChromeCleanupObserver: function() {
+      // TODO(proberge): Uncomment once this is implemented.
+      // chrome.send('registerChromeCleanupObserver');
+    },
+
+    /** @override */
+    startCleanup: function() {
+      // TODO(proberge): Uncomment once this is implemented.
+      // chrome.send('startCleanup');
+    },
+
+    /** @override */
+    restartComputer: function() {
+      // TODO(proberge): Uncomment once this is implemented.
+      // chrome.send('restartComputer');
+    },
+
+    /** @override */
+    dismissCleanupPage: function() {
+      // TODO(proberge): Uncomment once this is implemented.
+    },
+
+    /** @override */
+    getChromeCleanupVisibility: function() {
+      // TODO(proberge): Uncomment once this is implemented.
+      // return cr.sendWithPromise('getChromeCleanupVisibility');
+      return Promise.resolve(false);
+    },
+  };
+
+  return {
+    ChromeCleanupProxy: ChromeCleanupProxy,
+    ChromeCleanupProxyImpl: ChromeCleanupProxyImpl,
+  };
+});
diff --git a/chrome/browser/resources/settings/chrome_cleanup_page/compiled_resources2.gyp b/chrome/browser/resources/settings/chrome_cleanup_page/compiled_resources2.gyp
new file mode 100644
index 0000000..1d6d6fc
--- /dev/null
+++ b/chrome/browser/resources/settings/chrome_cleanup_page/compiled_resources2.gyp
@@ -0,0 +1,27 @@
+# Copyright 2017 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.
+{
+  'targets': [
+    {
+      'target_name': 'chrome_cleanup_proxy',
+      'dependencies': [
+        '<(DEPTH)/ui/webui/resources/js/compiled_resources2.gyp:assert',
+        '<(DEPTH)/ui/webui/resources/js/compiled_resources2.gyp:cr',
+      ],
+      'includes': ['../../../../../third_party/closure_compiler/compile_js2.gypi'],
+    },
+    {
+      'target_name': 'chrome_cleanup_page',
+      'dependencies': [
+        '<(DEPTH)/ui/webui/resources/js/compiled_resources2.gyp:cr',
+        '<(DEPTH)/ui/webui/resources/js/compiled_resources2.gyp:util',
+        '<(DEPTH)/ui/webui/resources/js/compiled_resources2.gyp:i18n_behavior',
+        '<(DEPTH)/ui/webui/resources/js/compiled_resources2.gyp:load_time_data',
+        '<(DEPTH)/ui/webui/resources/js/compiled_resources2.gyp:web_ui_listener_behavior',
+        'chrome_cleanup_proxy',
+      ],
+      'includes': ['../../../../../third_party/closure_compiler/compile_js2.gypi'],
+    },
+  ],
+}
diff --git a/chrome/browser/resources/settings/compiled_resources2.gyp b/chrome/browser/resources/settings/compiled_resources2.gyp
index ed5c8767..6ed6b39c 100644
--- a/chrome/browser/resources/settings/compiled_resources2.gyp
+++ b/chrome/browser/resources/settings/compiled_resources2.gyp
@@ -71,6 +71,7 @@
         'basic_page/compiled_resources2.gyp:*',
         'bluetooth_page/compiled_resources2.gyp:*',
         'certificate_manager_page/compiled_resources2.gyp:*',
+        'chrome_cleanup_page/compiled_resources2.gyp:*',
         'clear_browsing_data_dialog/compiled_resources2.gyp:*',
         'controls/compiled_resources2.gyp:*',
         'date_time_page/compiled_resources2.gyp:*',
diff --git a/chrome/browser/resources/settings/settings_resources.grd b/chrome/browser/resources/settings/settings_resources.grd
index 2a4bf306..aac51759 100644
--- a/chrome/browser/resources/settings/settings_resources.grd
+++ b/chrome/browser/resources/settings/settings_resources.grd
@@ -354,6 +354,22 @@
                    file="certificate_manager_page/certificates_error_dialog.html"
                    type="chrome_html" />
       </if>
+      <if expr="is_win">
+        <structure name="IDR_SETTINGS_CHROME_CLEANUP_PROXY_HTML"
+                   file="chrome_cleanup_page/chrome_cleanup_proxy.html"
+                   type="chrome_html" />
+        <structure name="IDR_SETTINGS_CHROME_CLEANUP_PROXY_JS"
+                   file="chrome_cleanup_page/chrome_cleanup_proxy.js"
+                   type="chrome_html" />
+        <structure name="IDR_SETTINGS_CHROME_CLEANUP_PAGE_HTML"
+                   file="chrome_cleanup_page/chrome_cleanup_page.html"
+                   type="chrome_html"
+                   preprocess="true" />
+        <structure name="IDR_SETTINGS_CHROME_CLEANUP_PAGE_JS"
+                   file="chrome_cleanup_page/chrome_cleanup_page.js"
+                   type="chrome_html"
+                   preprocess="true" />
+      </if>
       <structure name="IDR_SETTINGS_CLEAR_BROWSING_DATA_BROWSER_PROXY_HTML"
                  file="clear_browsing_data_dialog/clear_browsing_data_browser_proxy.html"
                  type="chrome_html" />
diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn
index 9162e927..8654a8c 100644
--- a/chrome/browser/ui/BUILD.gn
+++ b/chrome/browser/ui/BUILD.gn
@@ -1398,8 +1398,6 @@
       "ash/networking_config_delegate_chromeos.h",
       "ash/palette_delegate_chromeos.cc",
       "ash/palette_delegate_chromeos.h",
-      "ash/session_state_delegate_chromeos.cc",
-      "ash/session_state_delegate_chromeos.h",
       "ash/session_util.cc",
       "ash/session_util.h",
       "ash/system_tray_delegate_chromeos.cc",
@@ -1679,6 +1677,7 @@
           "views/extensions/extension_popup_aura.cc",
           "views/extensions/extension_popup_aura.h",
         ]
+        deps += [ "//ui/wm/public" ]
       }
       if (is_chromeos) {
         sources += [
diff --git a/chrome/browser/ui/ash/chrome_new_window_client.cc b/chrome/browser/ui/ash/chrome_new_window_client.cc
index 0355cbe..9ec639e 100644
--- a/chrome/browser/ui/ash/chrome_new_window_client.cc
+++ b/chrome/browser/ui/ash/chrome_new_window_client.cc
@@ -50,8 +50,8 @@
   Browser* browser = BrowserList::GetInstance()->GetLastActive();
   if (browser) {
     aura::Window* window = browser->window()->GetNativeWindow();
-    aura::client::ActivationClient* client =
-        aura::client::GetActivationClient(window->GetRootWindow());
+    wm::ActivationClient* client =
+        wm::GetActivationClient(window->GetRootWindow());
     if (client->GetActiveWindow() == window)
       return browser;
   }
diff --git a/chrome/browser/ui/ash/chrome_shell_delegate.cc b/chrome/browser/ui/ash/chrome_shell_delegate.cc
index 031e2df..9709904 100644
--- a/chrome/browser/ui/ash/chrome_shell_delegate.cc
+++ b/chrome/browser/ui/ash/chrome_shell_delegate.cc
@@ -7,6 +7,7 @@
 #include <stddef.h>
 
 #include <limits>
+#include <vector>
 
 #include "ash/accelerators/magnifier_key_scroller.h"
 #include "ash/accelerators/spoken_feedback_toggler.h"
@@ -48,7 +49,6 @@
 #include "chrome/browser/ui/ash/launcher/launcher_context_menu.h"
 #include "chrome/browser/ui/ash/multi_user/multi_user_util.h"
 #include "chrome/browser/ui/ash/palette_delegate_chromeos.h"
-#include "chrome/browser/ui/ash/session_state_delegate_chromeos.h"
 #include "chrome/browser/ui/ash/session_util.h"
 #include "chrome/browser/ui/ash/system_tray_delegate_chromeos.h"
 #include "chrome/browser/ui/aura/accessibility/automation_manager_aura.h"
@@ -592,10 +592,6 @@
   return new ChromeKeyboardUI(ProfileManager::GetActiveUserProfile());
 }
 
-ash::SessionStateDelegate* ChromeShellDelegate::CreateSessionStateDelegate() {
-  return new SessionStateDelegateChromeos;
-}
-
 ash::AccessibilityDelegate* ChromeShellDelegate::CreateAccessibilityDelegate() {
   return new AccessibilityDelegateImpl;
 }
diff --git a/chrome/browser/ui/ash/chrome_shell_delegate.h b/chrome/browser/ui/ash/chrome_shell_delegate.h
index e2e1063..3b953ff 100644
--- a/chrome/browser/ui/ash/chrome_shell_delegate.h
+++ b/chrome/browser/ui/ash/chrome_shell_delegate.h
@@ -46,7 +46,6 @@
   void ShelfShutdown() override;
   ash::SystemTrayDelegate* CreateSystemTrayDelegate() override;
   std::unique_ptr<ash::WallpaperDelegate> CreateWallpaperDelegate() override;
-  ash::SessionStateDelegate* CreateSessionStateDelegate() override;
   ash::AccessibilityDelegate* CreateAccessibilityDelegate() override;
   std::unique_ptr<ash::PaletteDelegate> CreatePaletteDelegate() override;
   ui::MenuModel* CreateContextMenu(ash::Shelf* shelf,
diff --git a/chrome/browser/ui/ash/launcher/app_window_launcher_controller.cc b/chrome/browser/ui/ash/launcher/app_window_launcher_controller.cc
index c211d772..7851f74 100644
--- a/chrome/browser/ui/ash/launcher/app_window_launcher_controller.cc
+++ b/chrome/browser/ui/ash/launcher/app_window_launcher_controller.cc
@@ -14,8 +14,8 @@
     : owner_(owner) {
   if (ash::Shell::HasInstance()) {
     if (ash::Shell::Get()->GetPrimaryRootWindow()) {
-      activation_client_ = aura::client::GetActivationClient(
-          ash::Shell::Get()->GetPrimaryRootWindow());
+      activation_client_ =
+          wm::GetActivationClient(ash::Shell::Get()->GetPrimaryRootWindow());
       if (activation_client_)
         activation_client_->AddObserver(this);
     }
@@ -28,7 +28,7 @@
 }
 
 void AppWindowLauncherController::OnWindowActivated(
-    aura::client::ActivationChangeObserver::ActivationReason reason,
+    wm::ActivationChangeObserver::ActivationReason reason,
     aura::Window* new_active,
     aura::Window* old_active) {
   // Make the newly active window the active (first) entry in the controller.
diff --git a/chrome/browser/ui/ash/launcher/app_window_launcher_controller.h b/chrome/browser/ui/ash/launcher/app_window_launcher_controller.h
index 9bdb6b9..c762fdd 100644
--- a/chrome/browser/ui/ash/launcher/app_window_launcher_controller.h
+++ b/chrome/browser/ui/ash/launcher/app_window_launcher_controller.h
@@ -10,21 +10,19 @@
 #include "base/macros.h"
 #include "ui/wm/public/activation_change_observer.h"
 
-namespace aura {
-
-class Window;
-
-namespace client {
-class ActivationClient;
-}
-}
-
 class AppWindowLauncherItemController;
 class ChromeLauncherController;
 class Profile;
 
-class AppWindowLauncherController
-    : public aura::client::ActivationChangeObserver {
+namespace aura {
+class Window;
+}
+
+namespace wm {
+class ActivationClient;
+}
+
+class AppWindowLauncherController : public wm::ActivationChangeObserver {
  public:
   ~AppWindowLauncherController() override;
 
@@ -37,10 +35,9 @@
   virtual void AdditionalUserAddedToSession(Profile* profile) {}
 
   // Overriden from client::ActivationChangeObserver:
-  void OnWindowActivated(
-      aura::client::ActivationChangeObserver::ActivationReason reason,
-      aura::Window* gained_active,
-      aura::Window* lost_active) override;
+  void OnWindowActivated(wm::ActivationChangeObserver::ActivationReason reason,
+                         aura::Window* gained_active,
+                         aura::Window* lost_active) override;
 
  protected:
   explicit AppWindowLauncherController(ChromeLauncherController* owner);
@@ -53,7 +50,7 @@
  private:
   // Unowned pointers.
   ChromeLauncherController* owner_;
-  aura::client::ActivationClient* activation_client_ = nullptr;
+  wm::ActivationClient* activation_client_ = nullptr;
 
   DISALLOW_COPY_AND_ASSIGN(AppWindowLauncherController);
 };
diff --git a/chrome/browser/ui/ash/launcher/arc_app_window_launcher_controller.cc b/chrome/browser/ui/ash/launcher/arc_app_window_launcher_controller.cc
index abbf062..229fff1 100644
--- a/chrome/browser/ui/ash/launcher/arc_app_window_launcher_controller.cc
+++ b/chrome/browser/ui/ash/launcher/arc_app_window_launcher_controller.cc
@@ -492,7 +492,7 @@
 }
 
 void ArcAppWindowLauncherController::OnWindowActivated(
-    aura::client::ActivationChangeObserver::ActivationReason reason,
+    wm::ActivationChangeObserver::ActivationReason reason,
     aura::Window* gained_active,
     aura::Window* lost_active) {
   AppWindowLauncherController::OnWindowActivated(reason, gained_active,
diff --git a/chrome/browser/ui/ash/launcher/arc_app_window_launcher_controller.h b/chrome/browser/ui/ash/launcher/arc_app_window_launcher_controller.h
index 7206c23..e8c474e 100644
--- a/chrome/browser/ui/ash/launcher/arc_app_window_launcher_controller.h
+++ b/chrome/browser/ui/ash/launcher/arc_app_window_launcher_controller.h
@@ -51,11 +51,10 @@
   void OnWindowVisibilityChanged(aura::Window* window, bool visible) override;
   void OnWindowDestroying(aura::Window* window) override;
 
-  // aura::client::ActivationChangeObserver:
-  void OnWindowActivated(
-      aura::client::ActivationChangeObserver::ActivationReason reason,
-      aura::Window* gained_active,
-      aura::Window* lost_active) override;
+  // wm::ActivationChangeObserver:
+  void OnWindowActivated(wm::ActivationChangeObserver::ActivationReason reason,
+                         aura::Window* gained_active,
+                         aura::Window* lost_active) override;
 
   // ash::ShellObserver:
   void OnMaximizeModeStarted() override;
diff --git a/chrome/browser/ui/ash/launcher/browser_status_monitor.cc b/chrome/browser/ui/ash/launcher/browser_status_monitor.cc
index 49c615b..2928c00 100644
--- a/chrome/browser/ui/ash/launcher/browser_status_monitor.cc
+++ b/chrome/browser/ui/ash/launcher/browser_status_monitor.cc
@@ -121,7 +121,7 @@
 }
 
 void BrowserStatusMonitor::OnWindowActivated(
-    aura::client::ActivationChangeObserver::ActivationReason reason,
+    wm::ActivationChangeObserver::ActivationReason reason,
     aura::Window* gained_active,
     aura::Window* lost_active) {
   DCHECK(initialized_);
diff --git a/chrome/browser/ui/ash/launcher/browser_status_monitor.h b/chrome/browser/ui/ash/launcher/browser_status_monitor.h
index 14381db..3797c9c 100644
--- a/chrome/browser/ui/ash/launcher/browser_status_monitor.h
+++ b/chrome/browser/ui/ash/launcher/browser_status_monitor.h
@@ -27,7 +27,7 @@
 // BrowserStatusMonitor monitors creation/deletion of Browser and its
 // TabStripModel to keep the launcher representation up to date as the
 // active tab changes.
-class BrowserStatusMonitor : public aura::client::ActivationChangeObserver,
+class BrowserStatusMonitor : public wm::ActivationChangeObserver,
                              public BrowserTabStripTrackerDelegate,
                              public chrome::BrowserListObserver,
                              public TabStripModelObserver {
@@ -54,11 +54,10 @@
   // UpdateBrowserItemState().
   void UpdateBrowserItemState();
 
-  // aura::client::ActivationChangeObserver overrides:
-  void OnWindowActivated(
-      aura::client::ActivationChangeObserver::ActivationReason reason,
-      aura::Window* gained_active,
-      aura::Window* lost_active) override;
+  // wm::ActivationChangeObserver overrides:
+  void OnWindowActivated(wm::ActivationChangeObserver::ActivationReason reason,
+                         aura::Window* gained_active,
+                         aura::Window* lost_active) override;
 
   // BrowserTabStripTrackerDelegate overrides:
   bool ShouldTrackBrowser(Browser* browser) override;
diff --git a/chrome/browser/ui/ash/multi_user/multi_user_window_manager_chromeos.cc b/chrome/browser/ui/ash/multi_user/multi_user_window_manager_chromeos.cc
index 99a8b07..ab990c9 100644
--- a/chrome/browser/ui/ash/multi_user/multi_user_window_manager_chromeos.cc
+++ b/chrome/browser/ui/ash/multi_user/multi_user_window_manager_chromeos.cc
@@ -4,6 +4,9 @@
 
 #include "chrome/browser/ui/ash/multi_user/multi_user_window_manager_chromeos.h"
 
+#include <set>
+#include <vector>
+
 #include "ash/media_controller.h"
 #include "ash/multi_profile_uma.h"
 #include "ash/public/cpp/shell_window_ids.h"
@@ -23,6 +26,7 @@
 #include "chrome/browser/ui/ash/multi_user/multi_user_util.h"
 #include "chrome/browser/ui/ash/multi_user/user_switch_animator_chromeos.h"
 #include "chrome/browser/ui/ash/session_controller_client.h"
+#include "chrome/browser/ui/ash/session_util.h"
 #include "chrome/browser/ui/browser.h"
 #include "chrome/browser/ui/browser_finder.h"
 #include "chrome/browser/ui/browser_list.h"
@@ -526,6 +530,25 @@
   WindowToEntryMap::iterator it = window_to_entry_.find(window);
   it->second->set_show_for_user(account_id);
 
+  // Show avatar icon on the teleported window for separated mode.
+  if (GetMultiProfileMode() == MULTI_PROFILE_MODE_SEPARATED) {
+    // Tests could either not have a UserManager or the UserManager does not
+    // know the window owner.
+    const user_manager::User* const window_owner =
+        user_manager::UserManager::IsInitialized()
+            ? user_manager::UserManager::Get()->FindUser(owner)
+            : nullptr;
+
+    const bool teleported = !IsWindowOnDesktopOfUser(window, owner);
+    if (window_owner && teleported) {
+      window->SetProperty(
+          aura::client::kAvatarIconKey,
+          new gfx::ImageSkia(GetAvatarImageForUser(window_owner)));
+    } else {
+      window->ClearProperty(aura::client::kAvatarIconKey);
+    }
+  }
+
   // Show the window if the added user is the current one.
   if (account_id == current_account_id_) {
     // Only show the window if it should be shown according to its state.
diff --git a/chrome/browser/ui/ash/multi_user/multi_user_window_manager_chromeos_unittest.cc b/chrome/browser/ui/ash/multi_user/multi_user_window_manager_chromeos_unittest.cc
index b0e1d010..67062a9 100644
--- a/chrome/browser/ui/ash/multi_user/multi_user_window_manager_chromeos_unittest.cc
+++ b/chrome/browser/ui/ash/multi_user/multi_user_window_manager_chromeos_unittest.cc
@@ -4,6 +4,9 @@
 
 #include <stddef.h>
 
+#include <set>
+#include <vector>
+
 #include "ash/content/shell_content_state.h"
 #include "ash/public/cpp/shell_window_ids.h"
 #include "ash/shelf/shelf.h"
@@ -112,9 +115,6 @@
 class TestShellDelegateChromeOS : public ash::test::TestShellDelegate {
  public:
   TestShellDelegateChromeOS() {}
-  ash::test::TestSessionStateDelegate* CreateSessionStateDelegate() override {
-    return new ash::test::TestSessionStateDelegate;
-  }
 
   bool CanShowWindowForUser(aura::Window* window) const override {
     return ::CanShowWindowForUser(
@@ -704,8 +704,8 @@
   const AccountId account_id_B(AccountId::FromUserEmail("B"));
   const AccountId account_id_C(AccountId::FromUserEmail("C"));
 
-  aura::client::ActivationClient* activation_client =
-      aura::client::GetActivationClient(window(0)->GetRootWindow());
+  ::wm::ActivationClient* activation_client =
+      ::wm::GetActivationClient(window(0)->GetRootWindow());
 
   // Set some windows to the active owner.
   multi_user_window_manager()->SetWindowOwner(window(0), account_id_A);
@@ -1394,8 +1394,8 @@
   ::wm::AddTransientChild(window(1), window(2));
   window(2)->SetProperty(aura::client::kModalKey, ui::MODAL_TYPE_WINDOW);
 
-  aura::client::ActivationClient* activation_client =
-      aura::client::GetActivationClient(window(0)->GetRootWindow());
+  ::wm::ActivationClient* activation_client =
+      ::wm::GetActivationClient(window(0)->GetRootWindow());
 
   // Activate window #0 will activate its deepest transient child window #2.
   activation_client->ActivateWindow(window(0));
@@ -1493,6 +1493,34 @@
   EXPECT_TRUE(::wm::CanActivateWindow(window(1)));
 }
 
+// Test that teleported window has the kAvatarIconKey window property.
+TEST_F(MultiUserWindowManagerChromeOSTest, TeleportedWindowAvatarProperty) {
+  SetUpForThisManyWindows(1);
+
+  const AccountId user1(AccountId::FromUserEmail("a@test.com"));
+  const AccountId user2(AccountId::FromUserEmail("b@test.com"));
+  AddTestUser(user1);
+  AddTestUser(user2);
+
+  multi_user_window_manager()->SetWindowOwner(window(0), user1);
+
+  user_manager()->SwitchActiveUser(user1);
+  multi_user_window_manager()->ActiveUserChanged(
+      user_manager()->FindUser(user1));
+
+  // Window #0 has no kAvatarIconKey property before teloporting.
+  EXPECT_FALSE(window(0)->GetProperty(aura::client::kAvatarIconKey));
+
+  // Teleport window #0 to user2 and kAvatarIconKey property is present.
+  multi_user_window_manager()->ShowWindowForUser(window(0), user2);
+  EXPECT_TRUE(window(0)->GetProperty(aura::client::kAvatarIconKey));
+
+  // Teloport window #0 back to its owner (user1) and kAvatarIconKey property is
+  // gone.
+  multi_user_window_manager()->ShowWindowForUser(window(0), user1);
+  EXPECT_FALSE(window(0)->GetProperty(aura::client::kAvatarIconKey));
+}
+
 // Tests that the window order is preserved when switching between users. Also
 // tests that the window's activation is restored correctly if one user's MRU
 // window list is empty.
@@ -1508,8 +1536,8 @@
       user_manager()->FindUser(account_id_A));
 
   // Set the windows owner.
-  aura::client::ActivationClient* activation_client =
-      aura::client::GetActivationClient(window(0)->GetRootWindow());
+  ::wm::ActivationClient* activation_client =
+      ::wm::GetActivationClient(window(0)->GetRootWindow());
   multi_user_window_manager()->SetWindowOwner(window(0), account_id_A);
   multi_user_window_manager()->SetWindowOwner(window(1), account_id_A);
   multi_user_window_manager()->SetWindowOwner(window(2), account_id_A);
@@ -1559,8 +1587,8 @@
   multi_user_window_manager()->ActiveUserChanged(
       user_manager()->FindUser(account_id_A));
 
-  aura::client::ActivationClient* activation_client =
-      aura::client::GetActivationClient(window(0)->GetRootWindow());
+  ::wm::ActivationClient* activation_client =
+      ::wm::GetActivationClient(window(0)->GetRootWindow());
   multi_user_window_manager()->SetWindowOwner(window(0), account_id_A);
   Profile* profile = multi_user_util::GetProfileFromAccountId(account_id_A);
   Browser::CreateParams params(profile, true);
diff --git a/chrome/browser/ui/ash/multi_user/user_switch_animator_chromeos.cc b/chrome/browser/ui/ash/multi_user/user_switch_animator_chromeos.cc
index 3d78af3..7be43c57 100644
--- a/chrome/browser/ui/ash/multi_user/user_switch_animator_chromeos.cc
+++ b/chrome/browser/ui/ash/multi_user/user_switch_animator_chromeos.cc
@@ -372,8 +372,8 @@
         if (owner_->IsWindowOnDesktopOfUser(window, new_account_id_) &&
             !window_state->IsMinimized()) {
           // Several unit tests come here without an activation client.
-          aura::client::ActivationClient* client =
-              aura::client::GetActivationClient(window->GetRootWindow());
+          wm::ActivationClient* client =
+              wm::GetActivationClient(window->GetRootWindow());
           if (client)
             client->ActivateWindow(window);
         }
diff --git a/chrome/browser/ui/ash/session_state_delegate_chromeos.cc b/chrome/browser/ui/ash/session_state_delegate_chromeos.cc
deleted file mode 100644
index 588c50e..0000000
--- a/chrome/browser/ui/ash/session_state_delegate_chromeos.cc
+++ /dev/null
@@ -1,30 +0,0 @@
-// Copyright (c) 2013 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "chrome/browser/ui/ash/session_state_delegate_chromeos.h"
-
-#include "ash/content/shell_content_state.h"
-#include "ash/wm_window.h"
-#include "chrome/browser/chromeos/login/users/multi_profile_user_controller.h"
-#include "chrome/browser/ui/ash/multi_user/multi_user_window_manager.h"
-#include "chrome/browser/ui/ash/session_util.h"
-#include "ui/gfx/image/image_skia.h"
-
-SessionStateDelegateChromeos::SessionStateDelegateChromeos() {}
-
-SessionStateDelegateChromeos::~SessionStateDelegateChromeos() {}
-
-bool SessionStateDelegateChromeos::ShouldShowAvatar(
-    ash::WmWindow* window) const {
-  return chrome::MultiUserWindowManager::GetInstance()->ShouldShowAvatar(
-      ash::WmWindow::GetAuraWindow(window));
-}
-
-gfx::ImageSkia SessionStateDelegateChromeos::GetAvatarImageForWindow(
-    ash::WmWindow* window) const {
-  content::BrowserContext* context =
-      ash::ShellContentState::GetInstance()->GetBrowserContextForWindow(
-          ash::WmWindow::GetAuraWindow(window));
-  return GetAvatarImageForContext(context);
-}
diff --git a/chrome/browser/ui/ash/session_state_delegate_chromeos.h b/chrome/browser/ui/ash/session_state_delegate_chromeos.h
deleted file mode 100644
index 27239766..0000000
--- a/chrome/browser/ui/ash/session_state_delegate_chromeos.h
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright (c) 2013 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef CHROME_BROWSER_UI_ASH_SESSION_STATE_DELEGATE_CHROMEOS_H_
-#define CHROME_BROWSER_UI_ASH_SESSION_STATE_DELEGATE_CHROMEOS_H_
-
-#include "ash/session/session_state_delegate.h"
-#include "base/macros.h"
-
-class SessionStateDelegateChromeos : public ash::SessionStateDelegate {
- public:
-  SessionStateDelegateChromeos();
-  ~SessionStateDelegateChromeos() override;
-
-  // ash::SessionStateDelegate:
-  bool ShouldShowAvatar(ash::WmWindow* window) const override;
-  gfx::ImageSkia GetAvatarImageForWindow(ash::WmWindow* window) const override;
-
- private:
-  DISALLOW_COPY_AND_ASSIGN(SessionStateDelegateChromeos);
-};
-
-#endif  // CHROME_BROWSER_UI_ASH_SESSION_STATE_DELEGATE_CHROMEOS_H_
diff --git a/chrome/browser/ui/ash/session_util.cc b/chrome/browser/ui/ash/session_util.cc
index ca38dc9..531c0b9 100644
--- a/chrome/browser/ui/ash/session_util.cc
+++ b/chrome/browser/ui/ash/session_util.cc
@@ -44,6 +44,11 @@
 }
 
 gfx::ImageSkia GetAvatarImageForContext(content::BrowserContext* context) {
+  return GetAvatarImageForUser(chromeos::ProfileHelper::Get()->GetUserByProfile(
+      Profile::FromBrowserContext(context)));
+}
+
+gfx::ImageSkia GetAvatarImageForUser(const user_manager::User* user) {
   static const gfx::ImageSkia* holder =
       ui::ResourceBundle::GetSharedInstance().GetImageSkiaNamed(
           IDR_AVATAR_HOLDER);
@@ -51,11 +56,7 @@
       ui::ResourceBundle::GetSharedInstance().GetImageSkiaNamed(
           IDR_AVATAR_HOLDER_MASK);
 
-  gfx::ImageSkia user_image =
-      chromeos::ProfileHelper::Get()
-          ->GetUserByProfile(Profile::FromBrowserContext(context))
-          ->GetImage();
-
+  gfx::ImageSkia user_image = user->GetImage();
   gfx::ImageSkia resized = gfx::ImageSkiaOperations::CreateResizedImage(
       user_image, skia::ImageOperations::RESIZE_BEST, holder->size());
   gfx::ImageSkia masked =
diff --git a/chrome/browser/ui/ash/session_util.h b/chrome/browser/ui/ash/session_util.h
index a190a9c..961acec 100644
--- a/chrome/browser/ui/ash/session_util.h
+++ b/chrome/browser/ui/ash/session_util.h
@@ -16,6 +16,10 @@
 class BrowserContext;
 }
 
+namespace user_manager {
+class User;
+}
+
 content::BrowserContext* GetActiveBrowserContext();
 
 using GetActiveBrowserContextCallback =
@@ -30,5 +34,6 @@
     const GetActiveBrowserContextCallback& get_context_callback);
 
 gfx::ImageSkia GetAvatarImageForContext(content::BrowserContext* context);
+gfx::ImageSkia GetAvatarImageForUser(const user_manager::User* user);
 
 #endif  // CHROME_BROWSER_UI_ASH_SESSION_UTIL_H_
diff --git a/chrome/browser/ui/cocoa/extensions/extension_message_bubble_browsertest_mac.mm b/chrome/browser/ui/cocoa/extensions/extension_message_bubble_browsertest_mac.mm
index b8a3d02..95ca512 100644
--- a/chrome/browser/ui/cocoa/extensions/extension_message_bubble_browsertest_mac.mm
+++ b/chrome/browser/ui/cocoa/extensions/extension_message_bubble_browsertest_mac.mm
@@ -11,6 +11,7 @@
 #import "chrome/browser/ui/cocoa/test/run_loop_testing.h"
 #import "chrome/browser/ui/cocoa/toolbar/toolbar_controller.h"
 #include "chrome/browser/ui/extensions/extension_message_bubble_browsertest.h"
+#include "chrome/browser/ui/extensions/settings_api_bubble_helpers.h"
 #include "ui/base/cocoa/cocoa_base_utils.h"
 #include "ui/events/test/cocoa_test_event_utils.h"
 
@@ -248,3 +249,22 @@
                        TestControlledStartupNotShownOnRestart) {
   TestControlledStartupNotShownOnRestart();
 }
+
+// The NTP bubble is currently disabled on Mac. Enable it for testing purposes.
+class NtpBubbleBrowserTestMac : public ExtensionMessageBubbleBrowserTestMac {
+ public:
+  void SetUpCommandLine(base::CommandLine* command_line) override {
+    ExtensionMessageBubbleBrowserTestMac::SetUpCommandLine(command_line);
+    extensions::SetNtpBubbleEnabledForTesting(true);
+  }
+
+  void TearDownOnMainThread() override {
+    extensions::SetNtpBubbleEnabledForTesting(false);
+    ExtensionMessageBubbleBrowserTestMac::TearDownOnMainThread();
+  }
+};
+
+IN_PROC_BROWSER_TEST_F(NtpBubbleBrowserTestMac,
+                       TestControlledNewTabPageMessageBubble) {
+  TestControlledNewTabPageBubbleShown(false);
+}
diff --git a/chrome/browser/ui/extensions/settings_api_bubble_helpers.cc b/chrome/browser/ui/extensions/settings_api_bubble_helpers.cc
index 354248c..53644928 100644
--- a/chrome/browser/ui/extensions/settings_api_bubble_helpers.cc
+++ b/chrome/browser/ui/extensions/settings_api_bubble_helpers.cc
@@ -25,6 +25,14 @@
 
 namespace {
 
+// Whether the NTP bubble is enabled. By default, this is Windows-only, but can
+// be overridden for testing.
+#if defined(OS_WIN)
+bool g_ntp_bubble_enabled = true;
+#else
+bool g_ntp_bubble_enabled = false;
+#endif
+
 void ShowSettingsApiBubble(SettingsApiOverrideType type,
                            Browser* browser) {
   ToolbarActionsModel* model = ToolbarActionsModel::Get(browser->profile());
@@ -47,6 +55,10 @@
 
 }  // namespace
 
+void SetNtpBubbleEnabledForTesting(bool enabled) {
+  g_ntp_bubble_enabled = enabled;
+}
+
 void MaybeShowExtensionControlledHomeNotification(Browser* browser) {
 #if !defined(OS_WIN) && !defined(OS_MACOSX)
   return;
@@ -72,9 +84,12 @@
 
 void MaybeShowExtensionControlledNewTabPage(
     Browser* browser, content::WebContents* web_contents) {
-#if !defined(OS_WIN)
-  return;
-#endif
+  if (!g_ntp_bubble_enabled)
+    return;
+
+  // Acknowledge existing extensions if necessary.
+  NtpOverriddenBubbleDelegate::MaybeAcknowledgeExistingNtpExtensions(
+      browser->profile());
 
   content::NavigationEntry* entry =
       web_contents->GetController().GetActiveEntry();
diff --git a/chrome/browser/ui/extensions/settings_api_bubble_helpers.h b/chrome/browser/ui/extensions/settings_api_bubble_helpers.h
index 7c41c5a..b664513 100644
--- a/chrome/browser/ui/extensions/settings_api_bubble_helpers.h
+++ b/chrome/browser/ui/extensions/settings_api_bubble_helpers.h
@@ -15,6 +15,9 @@
 
 namespace extensions {
 
+// Sets whether the NTP bubble is enabled for testing purposes.
+void SetNtpBubbleEnabledForTesting(bool enabled);
+
 // Shows a bubble notifying the user that the homepage is controlled by an
 // extension. This bubble is shown only on the first use of the Home button
 // after the controlling extension takes effect.
diff --git a/chrome/browser/ui/views/extensions/extension_message_bubble_view_browsertest.cc b/chrome/browser/ui/views/extensions/extension_message_bubble_view_browsertest.cc
index 760f3659..935df03d 100644
--- a/chrome/browser/ui/views/extensions/extension_message_bubble_view_browsertest.cc
+++ b/chrome/browser/ui/views/extensions/extension_message_bubble_view_browsertest.cc
@@ -5,6 +5,7 @@
 #include "base/auto_reset.h"
 #include "base/macros.h"
 #include "chrome/browser/ui/extensions/extension_message_bubble_browsertest.h"
+#include "chrome/browser/ui/extensions/settings_api_bubble_helpers.h"
 #include "chrome/browser/ui/test/test_browser_dialog.h"
 #include "chrome/browser/ui/views/toolbar/toolbar_actions_bar_bubble_views.h"
 #include "ui/accessibility/ax_node_data.h"
@@ -191,11 +192,6 @@
 }
 
 IN_PROC_BROWSER_TEST_F(ExtensionMessageBubbleViewBrowserTest,
-                       TestControlledNewTabPageMessageBubbleLearnMore) {
-  TestControlledNewTabPageBubbleShown(true);
-}
-
-IN_PROC_BROWSER_TEST_F(ExtensionMessageBubbleViewBrowserTest,
                        TestControlledHomeMessageBubble) {
   TestControlledHomeBubbleShown();
 }
@@ -261,3 +257,27 @@
                        InvokeDialog_devmode_warning) {
   RunDialog();
 }
+
+class NtpExtensionBubbleViewBrowserTest
+    : public ExtensionMessageBubbleViewBrowserTest {
+ public:
+  void SetUpCommandLine(base::CommandLine* command_line) override {
+    ExtensionMessageBubbleViewBrowserTest::SetUpCommandLine(command_line);
+// The NTP bubble is disabled by default on non-windows platforms.
+#if !defined(OS_WIN)
+    extensions::SetNtpBubbleEnabledForTesting(true);
+#endif
+  }
+
+  void TearDownOnMainThread() override {
+#if !defined(OS_WIN)
+    extensions::SetNtpBubbleEnabledForTesting(false);
+#endif
+    ExtensionMessageBubbleViewBrowserTest::TearDownOnMainThread();
+  }
+};
+
+IN_PROC_BROWSER_TEST_F(NtpExtensionBubbleViewBrowserTest,
+                       TestControlledNewTabPageMessageBubbleLearnMore) {
+  TestControlledNewTabPageBubbleShown(true);
+}
diff --git a/chrome/browser/ui/views/extensions/extension_popup_aura.cc b/chrome/browser/ui/views/extensions/extension_popup_aura.cc
index 17ce502..cfc0a23 100644
--- a/chrome/browser/ui/views/extensions/extension_popup_aura.cc
+++ b/chrome/browser/ui/views/extensions/extension_popup_aura.cc
@@ -24,8 +24,7 @@
       native_view, wm::WINDOW_VISIBILITY_ANIMATION_TYPE_VERTICAL);
   wm::SetWindowVisibilityAnimationVerticalPosition(native_view, -3.0f);
 
-  aura::client::GetActivationClient(native_view->GetRootWindow())
-      ->AddObserver(popup);
+  wm::GetActivationClient(native_view->GetRootWindow())->AddObserver(popup);
 
   return popup;
 }
@@ -45,8 +44,8 @@
   ExtensionPopup::OnWidgetDestroying(widget);
 
   if (widget == GetWidget()) {
-    auto* activation_client = aura::client::GetActivationClient(
-        widget->GetNativeWindow()->GetRootWindow());
+    auto* activation_client =
+        wm::GetActivationClient(widget->GetNativeWindow()->GetRootWindow());
     // If the popup was being inspected with devtools and the browser window
     // was closed, then the root window and activation client are already
     // destroyed.
@@ -56,7 +55,7 @@
 }
 
 void ExtensionPopupAura::OnWindowActivated(
-    aura::client::ActivationChangeObserver::ActivationReason reason,
+    wm::ActivationChangeObserver::ActivationReason reason,
     aura::Window* gained_active,
     aura::Window* lost_active) {
   // Close on anchor window activation (ie. user clicked the browser window).
diff --git a/chrome/browser/ui/views/extensions/extension_popup_aura.h b/chrome/browser/ui/views/extensions/extension_popup_aura.h
index 431fa021..bf4e628 100644
--- a/chrome/browser/ui/views/extensions/extension_popup_aura.h
+++ b/chrome/browser/ui/views/extensions/extension_popup_aura.h
@@ -10,7 +10,7 @@
 #include "ui/wm/public/activation_change_observer.h"
 
 class ExtensionPopupAura : public ExtensionPopup,
-                           public aura::client::ActivationChangeObserver {
+                           public wm::ActivationChangeObserver {
  public:
   ExtensionPopupAura(extensions::ExtensionViewHost* host,
                      views::View* anchor_view,
@@ -21,11 +21,10 @@
   // views::WidgetObserver overrides.
   void OnWidgetDestroying(views::Widget* widget) override;
 
-  // aura::client::ActivationChangeObserver overrides.
-  void OnWindowActivated(
-      aura::client::ActivationChangeObserver::ActivationReason reason,
-      aura::Window* gained_active,
-      aura::Window* lost_active) override;
+  // wm::ActivationChangeObserver overrides.
+  void OnWindowActivated(wm::ActivationChangeObserver::ActivationReason reason,
+                         aura::Window* gained_active,
+                         aura::Window* lost_active) override;
 
  private:
   DISALLOW_COPY_AND_ASSIGN(ExtensionPopupAura);
diff --git a/chrome/browser/ui/views/permission_bubble/permission_prompt_impl.cc b/chrome/browser/ui/views/permission_bubble/permission_prompt_impl.cc
index bd8f75b..483f7f71 100644
--- a/chrome/browser/ui/views/permission_bubble/permission_prompt_impl.cc
+++ b/chrome/browser/ui/views/permission_bubble/permission_prompt_impl.cc
@@ -156,7 +156,6 @@
   const gfx::FontList& GetTitleFontList() const override;
   base::string16 GetWindowTitle() const override;
   void OnWidgetDestroying(views::Widget* widget) override;
-  gfx::Size CalculatePreferredSize() const override;
   void GetAccessibleNodeData(ui::AXNodeData* node_data) override;
   bool Cancel() override;
   bool Accept() override;
@@ -303,12 +302,6 @@
   }
 }
 
-gfx::Size PermissionsBubbleDialogDelegateView::CalculatePreferredSize() const {
-  // TODO(estade): bubbles should default to this width.
-  const int kWidth = 320 - GetInsets().width();
-  return gfx::Size(kWidth, GetHeightForWidth(kWidth));
-}
-
 void PermissionsBubbleDialogDelegateView::GetAccessibleNodeData(
     ui::AXNodeData* node_data) {
   views::BubbleDialogDelegateView::GetAccessibleNodeData(node_data);
diff --git a/chrome/browser/ui/webui/settings/md_settings_localized_strings_provider.cc b/chrome/browser/ui/webui/settings/md_settings_localized_strings_provider.cc
index 45c0d3f..be7a0af 100644
--- a/chrome/browser/ui/webui/settings/md_settings_localized_strings_provider.cc
+++ b/chrome/browser/ui/webui/settings/md_settings_localized_strings_provider.cc
@@ -50,6 +50,10 @@
 #include "chrome/browser/ui/webui/settings/system_handler.h"
 #endif
 
+#if defined(OS_WIN)
+#include "chrome/browser/safe_browsing/chrome_cleaner/srt_field_trial_win.h"
+#endif
+
 namespace settings {
 namespace {
 
@@ -756,6 +760,29 @@
                           arraysize(localized_strings));
 }
 
+#if defined(OS_WIN)
+void AddChromeCleanupStrings(content::WebUIDataSource* html_source) {
+  LocalizedString localized_strings[] = {
+      {"chromeCleanupExplanation", IDS_CHROME_CLEANUP_WEBUI_EXPLANATION},
+      {"chromeCleanupDoneButtonLabel",
+       IDS_CHROME_CLEANUP_WEBUI_DONE_BUTTON_LABEL},
+      {"chromeCleanupLinkShowFiles", IDS_CHROME_CLEANUP_WEBUI_LINK_SHOW_FILES},
+      {"chromeCleanupRemoveButtonLabel",
+       IDS_CHROME_CLEANUP_WEBUI_REMOVE_BUTTON_LABEL},
+      {"chromeCleanupRestartButtonLabel",
+       IDS_CHROME_CLEANUP_WEBUI_RESTART_BUTTON_LABEL},
+      {"chromeCleanupTitleErrorCantRemove",
+       IDS_CHROME_CLEANUP_WEBUI_TITLE_ERROR_CANT_REMOVE},
+      {"chromeCleanupTitleRemove", IDS_CHROME_CLEANUP_WEBUI_TITLE_REMOVE},
+      {"chromeCleanupTitleRemoved", IDS_CHROME_CLEANUP_WEBUI_TITLE_REMOVED},
+      {"chromeCleanupTitleRemoving", IDS_CHROME_CLEANUP_WEBUI_TITLE_REMOVING},
+      {"chromeCleanupTitleRestart", IDS_CHROME_CLEANUP_WEBUI_TITLE_RESTART},
+  };
+  AddLocalizedStringsBulk(html_source, localized_strings,
+                          arraysize(localized_strings));
+}
+#endif  // defined(OS_WIN)
+
 void AddResetStrings(content::WebUIDataSource* html_source) {
   LocalizedString localized_strings[] = {
     {"resetPageTitle", IDS_SETTINGS_RESET},
@@ -2078,6 +2105,11 @@
   AddA11yStrings(html_source);
   AddAboutStrings(html_source);
   AddAppearanceStrings(html_source, profile);
+
+#if defined(OS_WIN)
+  AddChromeCleanupStrings(html_source);
+#endif  // defined(OS_WIN)
+
   AddClearBrowsingDataStrings(html_source);
   AddCommonStrings(html_source, profile);
   AddDownloadsStrings(html_source);
diff --git a/chrome/browser/ui/window_sizer/window_sizer_ash_unittest.cc b/chrome/browser/ui/window_sizer/window_sizer_ash_unittest.cc
index 718c024..637f9cc 100644
--- a/chrome/browser/ui/window_sizer/window_sizer_ash_unittest.cc
+++ b/chrome/browser/ui/window_sizer/window_sizer_ash_unittest.cc
@@ -613,7 +613,7 @@
     browser_window->GetNativeWindow()->SetBoundsInScreen(
         gfx::Rect(secondary_bounds.CenterPoint().x() - 100, 10, 200, 200),
         second_display);
-    aura::client::GetActivationClient(native_window->GetRootWindow())
+    wm::GetActivationClient(native_window->GetRootWindow())
         ->ActivateWindow(native_window);
     EXPECT_NE(ash::Shell::GetPrimaryRootWindow(),
               ash::Shell::GetRootWindowForNewWindows());
@@ -632,7 +632,7 @@
   // Activate another window in the primary display and create a new window.
   // It should be created in the primary display.
   {
-    aura::client::GetActivationClient(another_native_window->GetRootWindow())
+    wm::GetActivationClient(another_native_window->GetRootWindow())
         ->ActivateWindow(another_native_window);
     EXPECT_EQ(ash::Shell::GetPrimaryRootWindow(),
               ash::Shell::GetRootWindowForNewWindows());
diff --git a/chrome/common/BUILD.gn b/chrome/common/BUILD.gn
index eafd8cd..47d8aff 100644
--- a/chrome/common/BUILD.gn
+++ b/chrome/common/BUILD.gn
@@ -113,8 +113,6 @@
     "page_load_metrics/page_load_metrics_messages.h",
     "page_load_metrics/page_load_metrics_param_traits.cc",
     "page_load_metrics/page_load_metrics_param_traits.h",
-    "page_load_metrics/page_load_metrics_util.cc",
-    "page_load_metrics/page_load_metrics_util.h",
     "page_load_metrics/page_load_timing.cc",
     "page_load_metrics/page_load_timing.h",
     "page_load_metrics/page_track_decider.cc",
@@ -656,8 +654,6 @@
   visibility = [ "//chrome/test:*" ]
 
   sources = [
-    "page_load_metrics/test/page_load_metrics_test_util.cc",
-    "page_load_metrics/test/page_load_metrics_test_util.h",
     "search/mock_searchbox.cc",
     "search/mock_searchbox.h",
   ]
diff --git a/chrome/common/page_load_metrics/page_load_metrics_util.cc b/chrome/common/page_load_metrics/page_load_metrics_util.cc
deleted file mode 100644
index 43e65e9..0000000
--- a/chrome/common/page_load_metrics/page_load_metrics_util.cc
+++ /dev/null
@@ -1,65 +0,0 @@
-// Copyright 2017 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "chrome/common/page_load_metrics/page_load_metrics_util.h"
-
-#include <algorithm>
-
-#include "base/strings/string_util.h"
-#include "net/base/registry_controlled_domains/registry_controlled_domain.h"
-
-namespace page_load_metrics {
-
-base::Optional<std::string> GetGoogleHostnamePrefix(const GURL& url) {
-  const size_t registry_length =
-      net::registry_controlled_domains::GetRegistryLength(
-          url,
-
-          // Do not include unknown registries (registries that don't have any
-          // matches in effective TLD names).
-          net::registry_controlled_domains::EXCLUDE_UNKNOWN_REGISTRIES,
-
-          // Do not include private registries, such as appspot.com. We don't
-          // want to match URLs like www.google.appspot.com.
-          net::registry_controlled_domains::EXCLUDE_PRIVATE_REGISTRIES);
-
-  const base::StringPiece hostname = url.host_piece();
-  if (registry_length == 0 || registry_length == std::string::npos ||
-      registry_length >= hostname.length()) {
-    return base::Optional<std::string>();
-  }
-
-  // Removes the tld and the preceding dot.
-  const base::StringPiece hostname_minus_registry =
-      hostname.substr(0, hostname.length() - (registry_length + 1));
-
-  if (hostname_minus_registry == "google")
-    return std::string("");
-
-  if (!base::EndsWith(hostname_minus_registry, ".google",
-                      base::CompareCase::INSENSITIVE_ASCII)) {
-    return base::Optional<std::string>();
-  }
-
-  return std::string(hostname_minus_registry.substr(
-      0, hostname_minus_registry.length() - strlen(".google")));
-}
-
-bool IsGoogleHostname(const GURL& url) {
-  return GetGoogleHostnamePrefix(url).has_value();
-}
-
-base::Optional<base::TimeDelta> OptionalMin(
-    const base::Optional<base::TimeDelta>& a,
-    const base::Optional<base::TimeDelta>& b) {
-  if (a && !b)
-    return a;
-  if (b && !a)
-    return b;
-  if (!a && !b)
-    return a;  // doesn't matter which
-  return base::Optional<base::TimeDelta>(std::min(a.value(), b.value()));
-}
-
-}  // namespace page_load_metrics
diff --git a/chrome/common/page_load_metrics/page_load_metrics_util.h b/chrome/common/page_load_metrics/page_load_metrics_util.h
deleted file mode 100644
index 03e4b830..0000000
--- a/chrome/common/page_load_metrics/page_load_metrics_util.h
+++ /dev/null
@@ -1,40 +0,0 @@
-// Copyright 2017 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef CHROME_COMMON_PAGE_LOAD_METRICS_PAGE_LOAD_METRICS_UTIL_H_
-#define CHROME_COMMON_PAGE_LOAD_METRICS_PAGE_LOAD_METRICS_UTIL_H_
-
-#include <string>
-
-#include "base/optional.h"
-#include "base/time/time.h"
-#include "url/gurl.h"
-
-namespace page_load_metrics {
-
-// Returns the minimum value of the optional TimeDeltas, if both values are
-// set. Otherwise, if one value is set, returns that value. Otherwise, returns
-// an unset value.
-base::Optional<base::TimeDelta> OptionalMin(
-    const base::Optional<base::TimeDelta>& a,
-    const base::Optional<base::TimeDelta>& b);
-
-// Whether the given url has a google hostname.
-bool IsGoogleHostname(const GURL& url);
-
-// If the given hostname is a google hostname, returns the portion of the
-// hostname before the google hostname. Otherwise, returns an unset optional
-// value.
-//
-// For example:
-//   https://example.com/foo => returns an unset optional value
-//   https://google.com/foo => returns ''
-//   https://www.google.com/foo => returns 'www'
-//   https://news.google.com/foo => returns 'news'
-//   https://a.b.c.google.com/foo => returns 'a.b.c'
-base::Optional<std::string> GetGoogleHostnamePrefix(const GURL& url);
-
-}  // namespace page_load_metrics
-
-#endif  // CHROME_COMMON_PAGE_LOAD_METRICS_PAGE_LOAD_METRICS_UTIL_H_
diff --git a/chrome/common/page_load_metrics/test/page_load_metrics_test_util.cc b/chrome/common/page_load_metrics/test/page_load_metrics_test_util.cc
deleted file mode 100644
index 4b587e8..0000000
--- a/chrome/common/page_load_metrics/test/page_load_metrics_test_util.cc
+++ /dev/null
@@ -1,79 +0,0 @@
-// Copyright 2017 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "chrome/common/page_load_metrics/test/page_load_metrics_test_util.h"
-
-#include "chrome/common/page_load_metrics/page_load_metrics.mojom.h"
-#include "chrome/common/page_load_metrics/page_load_metrics_util.h"
-
-using page_load_metrics::OptionalMin;
-
-void PopulateRequiredTimingFields(
-    page_load_metrics::mojom::PageLoadTiming* inout_timing) {
-  if (inout_timing->paint_timing->first_meaningful_paint &&
-      !inout_timing->paint_timing->first_contentful_paint) {
-    inout_timing->paint_timing->first_contentful_paint =
-        inout_timing->paint_timing->first_meaningful_paint;
-  }
-  if ((inout_timing->paint_timing->first_text_paint ||
-       inout_timing->paint_timing->first_image_paint ||
-       inout_timing->paint_timing->first_contentful_paint) &&
-      !inout_timing->paint_timing->first_paint) {
-    inout_timing->paint_timing->first_paint =
-        OptionalMin(OptionalMin(inout_timing->paint_timing->first_text_paint,
-                                inout_timing->paint_timing->first_image_paint),
-                    inout_timing->paint_timing->first_contentful_paint);
-  }
-  if (inout_timing->paint_timing->first_paint &&
-      !inout_timing->document_timing->first_layout) {
-    inout_timing->document_timing->first_layout =
-        inout_timing->paint_timing->first_paint;
-  }
-  if (inout_timing->document_timing->load_event_start &&
-      !inout_timing->document_timing->dom_content_loaded_event_start) {
-    inout_timing->document_timing->dom_content_loaded_event_start =
-        inout_timing->document_timing->load_event_start;
-  }
-  if (inout_timing->document_timing->first_layout &&
-      !inout_timing->parse_timing->parse_start) {
-    inout_timing->parse_timing->parse_start =
-        inout_timing->document_timing->first_layout;
-  }
-  if (inout_timing->document_timing->dom_content_loaded_event_start &&
-      !inout_timing->parse_timing->parse_stop) {
-    inout_timing->parse_timing->parse_stop =
-        inout_timing->document_timing->dom_content_loaded_event_start;
-  }
-  if (inout_timing->parse_timing->parse_stop &&
-      !inout_timing->parse_timing->parse_start) {
-    inout_timing->parse_timing->parse_start =
-        inout_timing->parse_timing->parse_stop;
-  }
-  if (inout_timing->parse_timing->parse_start &&
-      !inout_timing->response_start) {
-    inout_timing->response_start = inout_timing->parse_timing->parse_start;
-  }
-  if (inout_timing->parse_timing->parse_start) {
-    if (!inout_timing->parse_timing->parse_blocked_on_script_load_duration)
-      inout_timing->parse_timing->parse_blocked_on_script_load_duration =
-          base::TimeDelta();
-    if (!inout_timing->parse_timing
-             ->parse_blocked_on_script_execution_duration) {
-      inout_timing->parse_timing->parse_blocked_on_script_execution_duration =
-          base::TimeDelta();
-    }
-    if (!inout_timing->parse_timing
-             ->parse_blocked_on_script_load_from_document_write_duration) {
-      inout_timing->parse_timing
-          ->parse_blocked_on_script_load_from_document_write_duration =
-          base::TimeDelta();
-    }
-    if (!inout_timing->parse_timing
-             ->parse_blocked_on_script_execution_from_document_write_duration) {
-      inout_timing->parse_timing
-          ->parse_blocked_on_script_execution_from_document_write_duration =
-          base::TimeDelta();
-    }
-  }
-}
diff --git a/chrome/common/page_load_metrics/test/page_load_metrics_test_util.h b/chrome/common/page_load_metrics/test/page_load_metrics_test_util.h
deleted file mode 100644
index cd0d9c1a..0000000
--- a/chrome/common/page_load_metrics/test/page_load_metrics_test_util.h
+++ /dev/null
@@ -1,19 +0,0 @@
-// Copyright 2017 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef CHROME_COMMON_PAGE_LOAD_METRICS_TEST_PAGE_LOAD_METRICS_TEST_UTIL_H_
-#define CHROME_COMMON_PAGE_LOAD_METRICS_TEST_PAGE_LOAD_METRICS_TEST_UTIL_H_
-
-namespace page_load_metrics {
-namespace mojom {
-class PageLoadTiming;
-}  // namespace mojom
-}  // namespace page_load_metrics
-
-// Helper that fills in any timing fields that page load metrics requires but
-// that are currently missing.
-void PopulateRequiredTimingFields(
-    page_load_metrics::mojom::PageLoadTiming* inout_timing);
-
-#endif  // CHROME_COMMON_PAGE_LOAD_METRICS_TEST_PAGE_LOAD_METRICS_TEST_UTIL_H_
diff --git a/chrome/common/page_load_metrics/test/weak_mock_timer.cc b/chrome/common/page_load_metrics/test/weak_mock_timer.cc
deleted file mode 100644
index 0fe222af..0000000
--- a/chrome/common/page_load_metrics/test/weak_mock_timer.cc
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright 2017 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "chrome/common/page_load_metrics/test/weak_mock_timer.h"
-
-namespace page_load_metrics {
-namespace test {
-
-WeakMockTimer::WeakMockTimer()
-    : MockTimer(false /* retain_user_task */, false /* is_repeating */) {}
-
-WeakMockTimerProvider::WeakMockTimerProvider() {}
-WeakMockTimerProvider::~WeakMockTimerProvider() {}
-
-base::MockTimer* WeakMockTimerProvider::GetMockTimer() const {
-  return timer_.get();
-}
-
-void WeakMockTimerProvider::SetMockTimer(base::WeakPtr<WeakMockTimer> timer) {
-  timer_ = timer;
-}
-
-}  // namespace test
-}  // namespace page_load_metrics
diff --git a/chrome/common/page_load_metrics/test/weak_mock_timer.h b/chrome/common/page_load_metrics/test/weak_mock_timer.h
deleted file mode 100644
index 185b586..0000000
--- a/chrome/common/page_load_metrics/test/weak_mock_timer.h
+++ /dev/null
@@ -1,44 +0,0 @@
-// Copyright 2017 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef CHROME_COMMON_PAGE_LOAD_METRICS_TEST_WEAK_MOCK_TIMER_H_
-#define CHROME_COMMON_PAGE_LOAD_METRICS_TEST_WEAK_MOCK_TIMER_H_
-
-#include "base/macros.h"
-#include "base/memory/weak_ptr.h"
-#include "base/timer/mock_timer.h"
-
-namespace page_load_metrics {
-namespace test {
-
-// WeakMockTimer is a MockTimer that allows clients to keep WeakPtr<>s to it.
-class WeakMockTimer : public base::MockTimer,
-                      public base::SupportsWeakPtr<WeakMockTimer> {
- public:
-  WeakMockTimer();
-
- private:
-  DISALLOW_COPY_AND_ASSIGN(WeakMockTimer);
-};
-
-// WeakMockTimerProvider is a testing helper class that test classes can inherit
-// from to provide basic MockTimer tracking capabilities.
-class WeakMockTimerProvider {
- public:
-  WeakMockTimerProvider();
-  virtual ~WeakMockTimerProvider();
-
-  base::MockTimer* GetMockTimer() const;
-  void SetMockTimer(base::WeakPtr<WeakMockTimer> timer);
-
- private:
-  base::WeakPtr<WeakMockTimer> timer_;
-
-  DISALLOW_COPY_AND_ASSIGN(WeakMockTimerProvider);
-};
-
-}  // namespace test
-}  // namespace page_load_metrics
-
-#endif  // CHROME_COMMON_PAGE_LOAD_METRICS_TEST_WEAK_MOCK_TIMER_H_
diff --git a/chrome/renderer/page_load_metrics/metrics_render_frame_observer.cc b/chrome/renderer/page_load_metrics/metrics_render_frame_observer.cc
index 64352d06..9996789b 100644
--- a/chrome/renderer/page_load_metrics/metrics_render_frame_observer.cc
+++ b/chrome/renderer/page_load_metrics/metrics_render_frame_observer.cc
@@ -207,8 +207,8 @@
   return timing;
 }
 
-std::unique_ptr<base::Timer> MetricsRenderFrameObserver::CreateTimer() {
-  return base::MakeUnique<base::OneShotTimer>();
+std::unique_ptr<base::Timer> MetricsRenderFrameObserver::CreateTimer() const {
+  return base::WrapUnique(new base::OneShotTimer);
 }
 
 std::unique_ptr<PageTimingSender>
diff --git a/chrome/renderer/page_load_metrics/metrics_render_frame_observer.h b/chrome/renderer/page_load_metrics/metrics_render_frame_observer.h
index db52f07..78b8b3f 100644
--- a/chrome/renderer/page_load_metrics/metrics_render_frame_observer.h
+++ b/chrome/renderer/page_load_metrics/metrics_render_frame_observer.h
@@ -47,7 +47,7 @@
   void SendMetrics();
   virtual bool ShouldSendMetrics() const;
   virtual mojom::PageLoadTimingPtr GetTiming() const;
-  virtual std::unique_ptr<base::Timer> CreateTimer();
+  virtual std::unique_ptr<base::Timer> CreateTimer() const;
   virtual std::unique_ptr<PageTimingSender> CreatePageTimingSender();
   virtual bool HasNoRenderFrame() const;
 
diff --git a/chrome/renderer/page_load_metrics/metrics_render_frame_observer_unittest.cc b/chrome/renderer/page_load_metrics/metrics_render_frame_observer_unittest.cc
index 8dbb975..90f0859 100644
--- a/chrome/renderer/page_load_metrics/metrics_render_frame_observer_unittest.cc
+++ b/chrome/renderer/page_load_metrics/metrics_render_frame_observer_unittest.cc
@@ -11,7 +11,6 @@
 #include "base/time/time.h"
 #include "base/timer/mock_timer.h"
 #include "chrome/common/page_load_metrics/page_load_timing.h"
-#include "chrome/common/page_load_metrics/test/weak_mock_timer.h"
 #include "chrome/renderer/page_load_metrics/fake_page_timing_sender.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
@@ -20,15 +19,14 @@
 // Implementation of the MetricsRenderFrameObserver class we're testing,
 // with the GetTiming() and ShouldSendMetrics() methods stubbed out to make
 // the rest of the class more testable.
-class TestMetricsRenderFrameObserver : public MetricsRenderFrameObserver,
-                                       public test::WeakMockTimerProvider {
+class TestMetricsRenderFrameObserver : public MetricsRenderFrameObserver {
  public:
   TestMetricsRenderFrameObserver() : MetricsRenderFrameObserver(nullptr) {}
 
-  std::unique_ptr<base::Timer> CreateTimer() override {
-    auto timer = base::MakeUnique<test::WeakMockTimer>();
-    SetMockTimer(timer->AsWeakPtr());
-    return std::move(timer);
+  std::unique_ptr<base::Timer> CreateTimer() const override {
+    if (!mock_timer_)
+      ADD_FAILURE() << "CreateTimer() called, but no MockTimer available.";
+    return std::move(mock_timer_);
   }
 
   std::unique_ptr<PageTimingSender> CreatePageTimingSender() override {
@@ -36,6 +34,11 @@
         new FakePageTimingSender(&validator_));
   }
 
+  void set_mock_timer(std::unique_ptr<base::Timer> timer) {
+    ASSERT_EQ(nullptr, mock_timer_);
+    mock_timer_ = std::move(timer);
+  }
+
   void ExpectPageLoadTiming(const mojom::PageLoadTiming& timing) {
     SetFakePageLoadTiming(timing);
     validator_.ExpectPageLoadTiming(timing);
@@ -62,14 +65,18 @@
  private:
   FakePageTimingSender::PageTimingValidator validator_;
   mutable mojom::PageLoadTimingPtr fake_timing_;
+  mutable std::unique_ptr<base::Timer> mock_timer_;
 };
 
 typedef testing::Test MetricsRenderFrameObserverTest;
 
 TEST_F(MetricsRenderFrameObserverTest, NoMetrics) {
   TestMetricsRenderFrameObserver observer;
+  base::MockTimer* mock_timer = new base::MockTimer(false, false);
+  observer.set_mock_timer(base::WrapUnique(mock_timer));
+
   observer.DidChangePerformanceTiming();
-  ASSERT_EQ(nullptr, observer.GetMockTimer());
+  ASSERT_FALSE(mock_timer->IsRunning());
 }
 
 TEST_F(MetricsRenderFrameObserverTest, SingleMetric) {
@@ -77,19 +84,21 @@
   base::TimeDelta first_layout = base::TimeDelta::FromMillisecondsD(10);
 
   TestMetricsRenderFrameObserver observer;
+  base::MockTimer* mock_timer = new base::MockTimer(false, false);
+  observer.set_mock_timer(base::WrapUnique(mock_timer));
 
   mojom::PageLoadTiming timing;
   page_load_metrics::InitPageLoadTimingForTest(&timing);
   timing.navigation_start = nav_start;
   observer.ExpectPageLoadTiming(timing);
   observer.DidCommitProvisionalLoad(true, false);
-  observer.GetMockTimer()->Fire();
+  mock_timer->Fire();
 
   timing.document_timing->first_layout = first_layout;
   observer.ExpectPageLoadTiming(timing);
 
   observer.DidChangePerformanceTiming();
-  observer.GetMockTimer()->Fire();
+  mock_timer->Fire();
 }
 
 TEST_F(MetricsRenderFrameObserverTest, MultipleMetrics) {
@@ -99,20 +108,22 @@
   base::TimeDelta load_event = base::TimeDelta::FromMillisecondsD(2);
 
   TestMetricsRenderFrameObserver observer;
+  base::MockTimer* mock_timer = new base::MockTimer(false, false);
+  observer.set_mock_timer(base::WrapUnique(mock_timer));
 
   mojom::PageLoadTiming timing;
   page_load_metrics::InitPageLoadTimingForTest(&timing);
   timing.navigation_start = nav_start;
   observer.ExpectPageLoadTiming(timing);
   observer.DidCommitProvisionalLoad(true, false);
-  observer.GetMockTimer()->Fire();
+  mock_timer->Fire();
 
   timing.document_timing->first_layout = first_layout;
   timing.document_timing->dom_content_loaded_event_start = dom_event;
   observer.ExpectPageLoadTiming(timing);
 
   observer.DidChangePerformanceTiming();
-  observer.GetMockTimer()->Fire();
+  mock_timer->Fire();
 
   // At this point, we should have triggered the generation of two metrics.
   // Verify and reset the observer's expectations before moving on to the next
@@ -123,7 +134,7 @@
   observer.ExpectPageLoadTiming(timing);
 
   observer.DidChangePerformanceTiming();
-  observer.GetMockTimer()->Fire();
+  mock_timer->Fire();
 
   // Verify and reset the observer's expectations before moving on to the next
   // part of the test.
@@ -135,7 +146,7 @@
   // this invocation to generate any additional metrics.
   observer.SetFakePageLoadTiming(timing);
   observer.DidChangePerformanceTiming();
-  ASSERT_FALSE(observer.GetMockTimer()->IsRunning());
+  ASSERT_FALSE(mock_timer->IsRunning());
 }
 
 TEST_F(MetricsRenderFrameObserverTest, MultipleNavigations) {
@@ -145,20 +156,22 @@
   base::TimeDelta load_event = base::TimeDelta::FromMillisecondsD(2);
 
   TestMetricsRenderFrameObserver observer;
+  base::MockTimer* mock_timer = new base::MockTimer(false, false);
+  observer.set_mock_timer(base::WrapUnique(mock_timer));
 
   mojom::PageLoadTiming timing;
   page_load_metrics::InitPageLoadTimingForTest(&timing);
   timing.navigation_start = nav_start;
   observer.ExpectPageLoadTiming(timing);
   observer.DidCommitProvisionalLoad(true, false);
-  observer.GetMockTimer()->Fire();
+  mock_timer->Fire();
 
   timing.document_timing->first_layout = first_layout;
   timing.document_timing->dom_content_loaded_event_start = dom_event;
   timing.document_timing->load_event_start = load_event;
   observer.ExpectPageLoadTiming(timing);
   observer.DidChangePerformanceTiming();
-  observer.GetMockTimer()->Fire();
+  mock_timer->Fire();
 
   // At this point, we should have triggered the generation of two metrics.
   // Verify and reset the observer's expectations before moving on to the next
@@ -173,11 +186,12 @@
   page_load_metrics::InitPageLoadTimingForTest(&timing_2);
   timing_2.navigation_start = nav_start_2;
 
-  observer.SetMockTimer(nullptr);
+  base::MockTimer* mock_timer2 = new base::MockTimer(false, false);
+  observer.set_mock_timer(base::WrapUnique(mock_timer2));
 
   observer.ExpectPageLoadTiming(timing_2);
   observer.DidCommitProvisionalLoad(true, false);
-  observer.GetMockTimer()->Fire();
+  mock_timer2->Fire();
 
   timing_2.document_timing->first_layout = first_layout_2;
   timing_2.document_timing->dom_content_loaded_event_start = dom_event_2;
@@ -185,7 +199,7 @@
   observer.ExpectPageLoadTiming(timing_2);
 
   observer.DidChangePerformanceTiming();
-  observer.GetMockTimer()->Fire();
+  mock_timer2->Fire();
 }
 
 }  // namespace page_load_metrics
diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn
index 7c5e1dad..b621d062 100644
--- a/chrome/test/BUILD.gn
+++ b/chrome/test/BUILD.gn
@@ -1522,6 +1522,8 @@
       "../browser/ntp_snippets/content_suggestions_service_factory_browsertest.cc",
       "../browser/page_load_metrics/observers/ads_page_load_metrics_observer_browsertest.cc",
       "../browser/page_load_metrics/observers/https_engagement_metrics/https_engagement_page_load_metrics_observer_browsertest.cc",
+      "../browser/page_load_metrics/observers/page_load_metrics_observer_test_harness.cc",
+      "../browser/page_load_metrics/observers/page_load_metrics_observer_test_harness.h",
       "../browser/page_load_metrics/page_load_metrics_browsertest.cc",
       "../browser/password_manager/credential_manager_browsertest.cc",
       "../browser/password_manager/password_manager_browsertest.cc",
@@ -3321,8 +3323,6 @@
     "../common/media_router/media_source_helper_unittest.cc",
     "../common/media_router/media_source_unittest.cc",
     "../common/origin_trials/chrome_origin_trial_policy_unittest.cc",
-    "../common/page_load_metrics/test/weak_mock_timer.cc",
-    "../common/page_load_metrics/test/weak_mock_timer.h",
     "../common/partial_circular_buffer_unittest.cc",
     "../common/pref_names_util_unittest.cc",
     "../common/search/instant_types_unittest.cc",
@@ -3950,6 +3950,7 @@
       "../browser/extensions/favicon_downloader_unittest.cc",
       "../browser/extensions/install_tracker_unittest.cc",
       "../browser/extensions/menu_manager_unittest.cc",
+      "../browser/extensions/ntp_overridden_bubble_delegate_unittest.cc",
       "../browser/extensions/pack_extension_unittest.cc",
       "../browser/extensions/permission_message_combinations_unittest.cc",
       "../browser/extensions/permission_messages_unittest.cc",
diff --git a/chrome/test/data/webui/settings/chrome_cleanup_page_test.js b/chrome/test/data/webui/settings/chrome_cleanup_page_test.js
new file mode 100644
index 0000000..fb7fb53
--- /dev/null
+++ b/chrome/test/data/webui/settings/chrome_cleanup_page_test.js
@@ -0,0 +1,128 @@
+// Copyright 2017 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.
+
+/**
+ * @constructor
+ * @implements {settings.ChromeCleanupProxy}
+ * @extends {settings.TestBrowserProxy}
+ */
+var TestChromeCleanupProxy = function() {
+  settings.TestBrowserProxy.call(this, [
+    'dismissCleanupPage',
+    'getChromeCleanupVisibility',
+    'registerChromeCleanupObserver',
+    'restartComputer',
+    'startCleanup',
+  ]);
+};
+
+TestChromeCleanupProxy.prototype = {
+  __proto__: settings.TestBrowserProxy.prototype,
+
+  /** @override */
+  dismissCleanupPage: function() {
+    this.methodCalled('dismissCleanupPage');
+  },
+
+    /** @override */
+  getChromeCleanupVisibility: function() {
+    this.methodCalled('getChromeCleanupVisibility');
+  },
+
+    /** @override */
+  registerChromeCleanupObserver: function() {
+    this.methodCalled('registerChromeCleanupObserver');
+  },
+
+    /** @override */
+  restartComputer: function() {
+    this.methodCalled('restartComputer');
+  },
+
+    /** @override */
+  startCleanup: function() {
+    this.methodCalled('startCleanup');
+  },
+};
+
+var chromeCleanupPage = null;
+
+/** @type {?TestDownloadsBrowserProxy} */
+var ChromeCleanupProxy = null;
+
+suite('ChromeCleanupHandler', function() {
+  setup(function() {
+    ChromeCleanupProxy = new TestChromeCleanupProxy();
+    settings.ChromeCleanupProxyImpl.instance_ = ChromeCleanupProxy;
+
+    PolymerTest.clearBody();
+
+    chromeCleanupPage = document.createElement('settings-chrome-cleanup-page');
+    document.body.appendChild(chromeCleanupPage);
+  });
+
+  teardown(function() {
+    chromeCleanupPage.remove();
+  });
+
+  test('startCleanupFromInfected', function() {
+    cr.webUIListenerCallback(
+        'chrome-cleanup-on-infected', ['file 1', 'file 2', 'file 3']);
+    Polymer.dom.flush();
+
+    var showFilesButton = chromeCleanupPage.$$('#show-files-button');
+    assertTrue(!!showFilesButton);
+    MockInteractions.tap(showFilesButton);
+    filesToRemove = chromeCleanupPage.$$('#files-to-remove-list');
+    assertTrue(!!filesToRemove);
+    assertEquals(filesToRemove.getElementsByTagName('li').length, 3);
+
+    var actionButton = chromeCleanupPage.$$('#action-button');
+    assertTrue(!!actionButton);
+    MockInteractions.tap(actionButton);
+    ChromeCleanupProxy.whenCalled('startCleanup').then(function() {
+      cr.webUIListenerCallback('chrome-cleanup-on-cleaning', false);
+      Polymer.dom.flush();
+
+      var spinner = chromeCleanupPage.$$('#cleaning-spinner');
+      assertTrue(spinner.active);
+    })
+  });
+
+  test('rebootFromRebootRequired', function() {
+    cr.webUIListenerCallback('chrome-cleanup-on-reboot-required');
+    Polymer.dom.flush();
+
+    var actionButton = chromeCleanupPage.$$('#action-button');
+    assertTrue(!!actionButton);
+    MockInteractions.tap(actionButton);
+    return ChromeCleanupProxy.whenCalled('restartComputer');
+  });
+
+  test('dismissFromIdleCleaningFailure', function() {
+    cr.webUIListenerCallback('chrome-cleanup-on-cleaning', false);
+    cr.webUIListenerCallback(
+        'chrome-cleanup-on-idle',
+        settings.ChromeCleanupIdleReason.CLEANING_FAILED);
+    Polymer.dom.flush();
+
+    var actionButton = chromeCleanupPage.$$('#action-button');
+    assertTrue(!!actionButton);
+    MockInteractions.tap(actionButton);
+    return ChromeCleanupProxy.whenCalled('dismissCleanupPage');
+  });
+
+  test('dismissFromIdleCleaningSuccess', function() {
+    cr.webUIListenerCallback('chrome-cleanup-on-cleaning', false);
+    cr.webUIListenerCallback(
+        'chrome-cleanup-on-idle',
+        settings.ChromeCleanupIdleReason.CLEANING_SUCCEEDED);
+    Polymer.dom.flush();
+
+    var actionButton = chromeCleanupPage.$$('#action-button');
+    assertTrue(!!actionButton);
+    MockInteractions.tap(actionButton);
+    return ChromeCleanupProxy.whenCalled('dismissCleanupPage');
+  });
+});
diff --git a/chrome/test/data/webui/settings/cr_settings_browsertest.js b/chrome/test/data/webui/settings/cr_settings_browsertest.js
index cc38f86..1cf266d6 100644
--- a/chrome/test/data/webui/settings/cr_settings_browsertest.js
+++ b/chrome/test/data/webui/settings/cr_settings_browsertest.js
@@ -585,6 +585,32 @@
   mocha.run();
 });
 
+GEN('#if defined(OS_WIN)');
+/**
+ * @constructor
+ * @extends {CrSettingsBrowserTest}
+ */
+function CrSettingsChromeCleanupPageTest() {}
+
+CrSettingsChromeCleanupPageTest.prototype = {
+  __proto__: CrSettingsBrowserTest.prototype,
+
+  /** @override */
+  browsePreload:
+      'chrome://md-settings/chrome_cleanup_page/chrome_cleanup_page.html',
+
+  /** @override */
+  extraLibraries: CrSettingsBrowserTest.prototype.extraLibraries.concat([
+    'test_browser_proxy.js',
+    'chrome_cleanup_page_test.js',
+  ]),
+};
+
+TEST_F('CrSettingsChromeCleanupPageTest', 'All', function() {
+  mocha.run();
+});
+GEN('#endif');
+
 /**
  * @constructor
  * @extends {CrSettingsBrowserTest}
diff --git a/chromecast/graphics/BUILD.gn b/chromecast/graphics/BUILD.gn
index ad8699e0..cfb77a0 100644
--- a/chromecast/graphics/BUILD.gn
+++ b/chromecast/graphics/BUILD.gn
@@ -28,6 +28,7 @@
       "//ui/base/ime",
       "//ui/views",
       "//ui/wm",
+      "//ui/wm/public",
     ]
   } else {
     sources += [
diff --git a/chromecast/graphics/cast_focus_client_aura.cc b/chromecast/graphics/cast_focus_client_aura.cc
index 49afd14..50881616 100644
--- a/chromecast/graphics/cast_focus_client_aura.cc
+++ b/chromecast/graphics/cast_focus_client_aura.cc
@@ -223,11 +223,10 @@
   }
 }
 
-void CastFocusClientAura::AddObserver(
-    aura::client::ActivationChangeObserver* observer) {}
+void CastFocusClientAura::AddObserver(wm::ActivationChangeObserver* observer) {}
 
 void CastFocusClientAura::RemoveObserver(
-    aura::client::ActivationChangeObserver* observer) {}
+    wm::ActivationChangeObserver* observer) {}
 
 void CastFocusClientAura::ActivateWindow(aura::Window* window) {}
 
diff --git a/chromecast/graphics/cast_focus_client_aura.h b/chromecast/graphics/cast_focus_client_aura.h
index 72e00cf..5c56781a 100644
--- a/chromecast/graphics/cast_focus_client_aura.h
+++ b/chromecast/graphics/cast_focus_client_aura.h
@@ -22,7 +22,7 @@
 
 class CastFocusClientAura : public aura::WindowObserver,
                             public aura::client::FocusClient,
-                            public aura::client::ActivationClient {
+                            public wm::ActivationClient {
  public:
   CastFocusClientAura();
   ~CastFocusClientAura() override;
@@ -34,10 +34,9 @@
   void ResetFocusWithinActiveWindow(aura::Window* window) override;
   aura::Window* GetFocusedWindow() override;
 
-  // Overridden from aura::client::ActivationClient:
-  void AddObserver(aura::client::ActivationChangeObserver* observer) override;
-  void RemoveObserver(
-      aura::client::ActivationChangeObserver* observer) override;
+  // Overridden from wm::ActivationClient:
+  void AddObserver(wm::ActivationChangeObserver* observer) override;
+  void RemoveObserver(wm::ActivationChangeObserver* observer) override;
   void ActivateWindow(aura::Window* window) override;
   void DeactivateWindow(aura::Window* window) override;
   const aura::Window* GetActiveWindow() const override;
diff --git a/chromecast/graphics/cast_window_manager_aura.cc b/chromecast/graphics/cast_window_manager_aura.cc
index e60c9a0..d0f15598 100644
--- a/chromecast/graphics/cast_window_manager_aura.cc
+++ b/chromecast/graphics/cast_window_manager_aura.cc
@@ -205,8 +205,7 @@
   focus_client_.reset(new CastFocusClientAura());
   aura::client::SetFocusClient(window_tree_host_->window(),
                                focus_client_.get());
-  aura::client::SetActivationClient(window_tree_host_->window(),
-                                    focus_client_.get());
+  wm::SetActivationClient(window_tree_host_->window(), focus_client_.get());
   aura::client::SetWindowParentingClient(window_tree_host_->window(), this);
   capture_client_.reset(
       new aura::client::DefaultCaptureClient(window_tree_host_->window()));
@@ -220,7 +219,7 @@
   }
   capture_client_.reset();
   aura::client::SetWindowParentingClient(window_tree_host_->window(), nullptr);
-  aura::client::SetActivationClient(window_tree_host_->window(), nullptr);
+  wm::SetActivationClient(window_tree_host_->window(), nullptr);
   aura::client::SetFocusClient(window_tree_host_->window(), nullptr);
   focus_client_.reset();
   window_tree_host_.reset();
diff --git a/components/crash/android/javatests/src/org/chromium/components/crash/browser/CrashDumpManagerTest.java b/components/crash/android/javatests/src/org/chromium/components/crash/browser/CrashDumpManagerTest.java
index 53b91f6..8a23e99 100644
--- a/components/crash/android/javatests/src/org/chromium/components/crash/browser/CrashDumpManagerTest.java
+++ b/components/crash/android/javatests/src/org/chromium/components/crash/browser/CrashDumpManagerTest.java
@@ -8,10 +8,9 @@
 import android.test.InstrumentationTestCase;
 
 import org.chromium.base.ContextUtils;
+import org.chromium.base.FileUtils;
 import org.chromium.base.ThreadUtils;
-import org.chromium.base.test.util.DisabledTest;
 import org.chromium.base.test.util.Feature;
-import org.chromium.base.test.util.TestFileUtil;
 
 import java.io.File;
 import java.io.IOException;
@@ -25,26 +24,24 @@
     @Override
     protected void setUp() throws Exception {
         super.setUp();
+
         ContextUtils.initApplicationContextForTests(
                 getInstrumentation().getTargetContext().getApplicationContext());
-        mTempDir = ContextUtils.getApplicationContext().getCacheDir();
-        assert mTempDir.exists();
+        mTempDir = new File(ContextUtils.getApplicationContext().getCacheDir(), "crash-dump-test");
+        if (mTempDir.exists()) {
+            FileUtils.recursivelyDeleteFile(mTempDir);
+        }
+        assert mTempDir.mkdirs();
     }
 
     @Override
     protected void tearDown() throws Exception {
+        FileUtils.recursivelyDeleteFile(mTempDir);
         super.tearDown();
-        File[] files = mTempDir.listFiles();
-        if (files == null) return;
-
-        for (File file : files) {
-            TestFileUtil.deleteFile(file);
-        }
     }
 
     @SmallTest
     @Feature({"Android-AppBase"})
-    @DisabledTest // Flaky, crbug.com/725379.
     public void testUploadMinidump_NoCallback() throws IOException {
         File minidump = new File(mTempDir, "mini.dmp");
         assertTrue(minidump.createNewFile());
@@ -54,7 +51,6 @@
 
     @SmallTest
     @Feature({"Android-AppBase"})
-    @DisabledTest // Flaky, crbug.com/725379.
     public void testUploadMinidump_NullMinidumpPath() {
         registerUploadCallback(new CrashDumpManager.UploadMinidumpCallback() {
             @Override
@@ -66,9 +62,8 @@
         CrashDumpManager.tryToUploadMinidump(null);
     }
 
-    // @SmallTest
-    // @Feature({"Android-AppBase"})
-    @DisabledTest // Flaky, crbug.com/726976.
+    @SmallTest
+    @Feature({"Android-AppBase"})
     public void testUploadMinidump_FileDoesntExist() {
         registerUploadCallback(new CrashDumpManager.UploadMinidumpCallback() {
             @Override
diff --git a/components/exo/BUILD.gn b/components/exo/BUILD.gn
index 1b48931..889fb7b8 100644
--- a/components/exo/BUILD.gn
+++ b/components/exo/BUILD.gn
@@ -68,6 +68,7 @@
     "//ui/views",
     "//ui/views/mus",
     "//ui/wm",
+    "//ui/wm/public",
   ]
 
   if (use_ozone) {
@@ -101,7 +102,7 @@
     "//ui/compositor",
     "//ui/gfx/geometry",
     "//ui/views",
-    "//ui/wm:wm",
+    "//ui/wm",
   ]
 }
 
diff --git a/components/exo/shell_surface.cc b/components/exo/shell_surface.cc
index 955dc0a1..1ece422 100644
--- a/components/exo/shell_surface.cc
+++ b/components/exo/shell_surface.cc
@@ -1328,7 +1328,7 @@
     }
 
     resizer_ = ash::CreateWindowResizer(window, GetMouseLocation(), component,
-                                        aura::client::WINDOW_MOVE_SOURCE_MOUSE);
+                                        wm::WINDOW_MOVE_SOURCE_MOUSE);
     if (!resizer_)
       return;
 
@@ -1346,7 +1346,7 @@
     DCHECK(!window_state->drag_details());
     DCHECK(component == HTCAPTION);
     window_state->CreateDragDetails(GetMouseLocation(), component,
-                                    aura::client::WINDOW_MOVE_SOURCE_MOUSE);
+                                    wm::WINDOW_MOVE_SOURCE_MOUSE);
 
     // Chained with a CustomWindowResizer, DragWindowResizer does not handle
     // dragging. It only renders phantom windows and moves the window to the
diff --git a/components/exo/wm_helper_ash.cc b/components/exo/wm_helper_ash.cc
index e4b96bf..68965bd 100644
--- a/components/exo/wm_helper_ash.cc
+++ b/components/exo/wm_helper_ash.cc
@@ -107,7 +107,7 @@
 }
 
 void WMHelperAsh::OnWindowActivated(
-    aura::client::ActivationChangeObserver::ActivationReason reason,
+    wm::ActivationChangeObserver::ActivationReason reason,
     aura::Window* gained_active,
     aura::Window* lost_active) {
   NotifyWindowActivated(gained_active, lost_active);
diff --git a/components/exo/wm_helper_ash.h b/components/exo/wm_helper_ash.h
index 21bde11..340fdd4 100644
--- a/components/exo/wm_helper_ash.h
+++ b/components/exo/wm_helper_ash.h
@@ -18,7 +18,7 @@
 
 // A helper class for accessing WindowManager related features.
 class WMHelperAsh : public WMHelper,
-                    public aura::client::ActivationChangeObserver,
+                    public wm::ActivationChangeObserver,
                     public aura::client::FocusChangeObserver,
                     public aura::client::CursorClientObserver,
                     public ash::ShellObserver,
@@ -42,11 +42,10 @@
   void RemovePostTargetHandler(ui::EventHandler* handler) override;
   bool IsMaximizeModeWindowManagerEnabled() const override;
 
-  // Overridden from aura::client::ActivationChangeObserver:
-  void OnWindowActivated(
-      aura::client::ActivationChangeObserver::ActivationReason reason,
-      aura::Window* gained_active,
-      aura::Window* lost_active) override;
+  // Overridden from wm::ActivationChangeObserver:
+  void OnWindowActivated(wm::ActivationChangeObserver::ActivationReason reason,
+                         aura::Window* gained_active,
+                         aura::Window* lost_active) override;
 
   // Overridden from aura::client::FocusChangeObserver:
   void OnWindowFocused(aura::Window* gained_focus,
diff --git a/components/exo/wm_helper_mus.cc b/components/exo/wm_helper_mus.cc
index 105691c..64eebe8 100644
--- a/components/exo/wm_helper_mus.cc
+++ b/components/exo/wm_helper_mus.cc
@@ -139,9 +139,9 @@
   NotifyWindowFocused(focused_window_, lost_focus);
 }
 
-aura::client::ActivationClient* WMHelperMus::GetActivationClient() {
+wm::ActivationClient* WMHelperMus::GetActivationClient() {
   return root_with_active_focus_client_
-             ? aura::client::GetActivationClient(root_with_active_focus_client_)
+             ? wm::GetActivationClient(root_with_active_focus_client_)
              : nullptr;
 }
 
diff --git a/components/exo/wm_helper_mus.h b/components/exo/wm_helper_mus.h
index 4801e9d..4f1b9faa 100644
--- a/components/exo/wm_helper_mus.h
+++ b/components/exo/wm_helper_mus.h
@@ -11,11 +11,9 @@
 #include "ui/aura/mus/focus_synchronizer_observer.h"
 #include "ui/events/devices/input_device_event_observer.h"
 
-namespace aura {
-namespace client {
+namespace wm {
 class ActivationClient;
 }
-}
 
 namespace exo {
 
@@ -60,7 +58,7 @@
   void SetActiveWindow(aura::Window* window);
   void SetFocusedWindow(aura::Window* window);
 
-  aura::client::ActivationClient* GetActivationClient();
+  wm::ActivationClient* GetActivationClient();
 
   // Current FocusClient.
   aura::client::FocusClient* active_focus_client_ = nullptr;
diff --git a/components/minidump_uploader/android/java/src/org/chromium/components/minidump_uploader/MinidumpUploadCallable.java b/components/minidump_uploader/android/java/src/org/chromium/components/minidump_uploader/MinidumpUploadCallable.java
index 349de8e..ff4879c 100644
--- a/components/minidump_uploader/android/java/src/org/chromium/components/minidump_uploader/MinidumpUploadCallable.java
+++ b/components/minidump_uploader/android/java/src/org/chromium/components/minidump_uploader/MinidumpUploadCallable.java
@@ -123,7 +123,9 @@
             boolean success = handleExecutionResponse(connection);
 
             return success ? UPLOAD_SUCCESS : UPLOAD_FAILURE;
-        } catch (IOException e) {
+        } catch (IOException | ArrayIndexOutOfBoundsException e) {
+            // ArrayIndexOutOfBoundsException due to bad GZIPOutputStream implementation on some
+            // old sony devices.
             // For now just log the stack trace.
             Log.w(TAG, "Error while uploading " + mFileToUpload.getName(), e);
             return UPLOAD_FAILURE;
diff --git a/components/tracing/BUILD.gn b/components/tracing/BUILD.gn
index 8b0bd09..f0dc431 100644
--- a/components/tracing/BUILD.gn
+++ b/components/tracing/BUILD.gn
@@ -37,6 +37,10 @@
     "//ipc",
   ]
 
+  if (is_win) {
+    deps += [ "//base/win:pe_image" ]
+  }
+
   public_deps = [
     "//components/tracing/proto:protos",
   ]
diff --git a/components/tracing/common/process_metrics_memory_dump_provider.cc b/components/tracing/common/process_metrics_memory_dump_provider.cc
index 829f47e..1486eef 100644
--- a/components/tracing/common/process_metrics_memory_dump_provider.cc
+++ b/components/tracing/common/process_metrics_memory_dump_provider.cc
@@ -45,6 +45,7 @@
 #include <windows.h>
 
 #include <base/strings/sys_string_conversions.h>
+#include <base/win/pe_image.h>
 #include <base/win/win_util.h>
 #endif  // defined(OS_WIN)
 
@@ -273,6 +274,12 @@
     region.size_in_bytes = module_info.SizeOfImage;
     region.mapped_file = base::SysWideToNativeMB(module_name);
     region.start_address = reinterpret_cast<uint64_t>(module_info.lpBaseOfDll);
+
+    // The PE header field |TimeDateStamp| is required to build the PE code
+    // identifier which is used as a key to query symbols servers.
+    base::win::PEImage pe_image(module_info.lpBaseOfDll);
+    region.module_timestamp = pe_image.GetNTHeaders()->FileHeader.TimeDateStamp;
+
     pmd->process_mmaps()->AddVMRegion(region);
   }
   if (!pmd->process_mmaps()->vm_regions().empty())
diff --git a/content/browser/BUILD.gn b/content/browser/BUILD.gn
index 41eeec9..9c97fcc 100644
--- a/content/browser/BUILD.gn
+++ b/content/browser/BUILD.gn
@@ -2014,6 +2014,7 @@
       "//ui/aura_extra",
       "//ui/strings",
       "//ui/wm",
+      "//ui/wm/public",
     ]
     sources += [
       "renderer_host/delegated_frame_host_client_aura.cc",
diff --git a/content/browser/loader/OWNERS b/content/browser/loader/OWNERS
index e8096c7..466c500 100644
--- a/content/browser/loader/OWNERS
+++ b/content/browser/loader/OWNERS
@@ -1,6 +1,7 @@
 csharrison@chromium.org
 mmenke@chromium.org
 rdsmith@chromium.org
+yhirano@chromium.org
 
 # TEAM: net-dev@chromium.org
 # COMPONENT: Internals>Network
diff --git a/content/browser/media/capture/aura_window_capture_machine.cc b/content/browser/media/capture/aura_window_capture_machine.cc
index d3312c9b..b58f6f4 100644
--- a/content/browser/media/capture/aura_window_capture_machine.cc
+++ b/content/browser/media/capture/aura_window_capture_machine.cc
@@ -34,7 +34,6 @@
 #include "ui/compositor/compositor.h"
 #include "ui/compositor/dip_util.h"
 #include "ui/compositor/layer.h"
-#include "ui/wm/public/activation_client.h"
 
 namespace content {
 
diff --git a/content/browser/media/capture/cursor_renderer_aura.cc b/content/browser/media/capture/cursor_renderer_aura.cc
index c30f2900..ca0d7d3 100644
--- a/content/browser/media/capture/cursor_renderer_aura.cc
+++ b/content/browser/media/capture/cursor_renderer_aura.cc
@@ -49,8 +49,8 @@
   // render the mouse cursor. For ordinary window, we only render the mouse
   // cursor when the window is active.
   if (!window_->IsRootWindow()) {
-    aura::client::ActivationClient* activation_client =
-        aura::client::GetActivationClient(window_->GetRootWindow());
+    wm::ActivationClient* activation_client =
+        wm::GetActivationClient(window_->GetRootWindow());
     if (!activation_client) {
       DVLOG(2) << "Assume window inactive with invalid activation_client";
       return false;
diff --git a/content/browser/renderer_host/render_widget_host_view_aura.cc b/content/browser/renderer_host/render_widget_host_view_aura.cc
index 80a0d1d..f62e781 100644
--- a/content/browser/renderer_host/render_widget_host_view_aura.cc
+++ b/content/browser/renderer_host/render_widget_host_view_aura.cc
@@ -825,8 +825,7 @@
     const base::string16& tooltip_text) {
   tooltip_ = tooltip_text;
   aura::Window* root_window = window_->GetRootWindow();
-  aura::client::TooltipClient* tooltip_client =
-      aura::client::GetTooltipClient(root_window);
+  wm::TooltipClient* tooltip_client = wm::GetTooltipClient(root_window);
   if (tooltip_client) {
     tooltip_client->UpdateTooltip(window_);
     // Content tooltips should be visible indefinitely.
@@ -1738,7 +1737,7 @@
 }
 
 ////////////////////////////////////////////////////////////////////////////////
-// RenderWidgetHostViewAura, aura::client::ActivationDelegate implementation:
+// RenderWidgetHostViewAura, wm::ActivationDelegate implementation:
 
 bool RenderWidgetHostViewAura::ShouldActivate() const {
   aura::WindowTreeHost* host = window_->GetHost();
@@ -1865,7 +1864,7 @@
     if (window_->GetHost())
       window_->GetHost()->RemoveObserver(this);
     UnlockMouse();
-    aura::client::SetTooltipText(window_, NULL);
+    wm::SetTooltipText(window_, NULL);
     display::Screen::GetScreen()->RemoveObserver(this);
 
     // This call is usually no-op since |this| object is already removed from
@@ -1913,8 +1912,8 @@
   event_handler_->set_window(window_);
   window_observer_.reset(new WindowObserver(this));
 
-  aura::client::SetTooltipText(window_, &tooltip_);
-  aura::client::SetActivationDelegate(window_, this);
+  wm::SetTooltipText(window_, &tooltip_);
+  wm::SetActivationDelegate(window_, this);
   aura::client::SetFocusChangeObserver(window_, this);
   display::Screen::GetScreen()->AddObserver(this);
 
@@ -2064,7 +2063,7 @@
     tooltip_disabler_.reset();
   } else {
     tooltip_disabler_.reset(
-        new aura::client::ScopedTooltipDisabler(window_->GetRootWindow()));
+        new wm::ScopedTooltipDisabler(window_->GetRootWindow()));
   }
 }
 
diff --git a/content/browser/renderer_host/render_widget_host_view_aura.h b/content/browser/renderer_host/render_widget_host_view_aura.h
index f3d0eaf..9e8caf2 100644
--- a/content/browser/renderer_host/render_widget_host_view_aura.h
+++ b/content/browser/renderer_host/render_widget_host_view_aura.h
@@ -45,11 +45,9 @@
 #include "ui/gfx/selection_bound.h"
 #include "ui/wm/public/activation_delegate.h"
 
-namespace aura {
-namespace client {
+namespace wm {
 class ScopedTooltipDisabler;
 }
-}
 
 namespace gfx {
 class Display;
@@ -86,7 +84,7 @@
       public display::DisplayObserver,
       public aura::WindowTreeHostObserver,
       public aura::WindowDelegate,
-      public aura::client::ActivationDelegate,
+      public wm::ActivationDelegate,
       public aura::client::FocusChangeObserver,
       public aura::client::CursorClientObserver {
  public:
@@ -261,7 +259,7 @@
   void OnTouchEvent(ui::TouchEvent* event) override;
   void OnGestureEvent(ui::GestureEvent* event) override;
 
-  // Overridden from aura::client::ActivationDelegate:
+  // Overridden from wm::ActivationDelegate:
   bool ShouldActivate() const override;
 
   // Overridden from aura::client::CursorClientObserver:
@@ -586,7 +584,7 @@
 
   std::vector<ui::LatencyInfo> software_latency_info_;
 
-  std::unique_ptr<aura::client::ScopedTooltipDisabler> tooltip_disabler_;
+  std::unique_ptr<wm::ScopedTooltipDisabler> tooltip_disabler_;
 
   // True when this view acts as a platform view hack for a
   // RenderWidgetHostViewGuest.
diff --git a/content/browser/renderer_host/render_widget_host_view_aura_unittest.cc b/content/browser/renderer_host/render_widget_host_view_aura_unittest.cc
index 70dd0dc4..b6c9b0d4 100644
--- a/content/browser/renderer_host/render_widget_host_view_aura_unittest.cc
+++ b/content/browser/renderer_host/render_widget_host_view_aura_unittest.cc
@@ -1568,15 +1568,12 @@
 
   EXPECT_FALSE(view_->has_composition_text_);
 
-  EXPECT_EQ(2U, sink_->message_count());
+  ASSERT_EQ(2U, sink_->message_count());
 
-  if (sink_->message_count() == 2) {
-    // Verify mouse event happens after the finish composing text event.
-    EXPECT_EQ(InputMsg_ImeFinishComposingText::ID,
-              sink_->GetMessageAt(0)->type());
-    EXPECT_EQ(InputMsg_HandleInputEvent::ID,
-              sink_->GetMessageAt(1)->type());
-  }
+  // Verify mouse event happens after the finish composing text event.
+  EXPECT_EQ(InputMsg_ImeFinishComposingText::ID,
+            sink_->GetMessageAt(0)->type());
+  EXPECT_EQ(InputMsg_HandleInputEvent::ID, sink_->GetMessageAt(1)->type());
 }
 
 // Checks that touch-event state is maintained correctly.
diff --git a/content/browser/renderer_host/render_widget_host_view_event_handler.cc b/content/browser/renderer_host/render_widget_host_view_event_handler.cc
index 0401ce6..f0c1e1c 100644
--- a/content/browser/renderer_host/render_widget_host_view_event_handler.cc
+++ b/content/browser/renderer_host/render_widget_host_view_event_handler.cc
@@ -626,12 +626,11 @@
 }
 
 void RenderWidgetHostViewEventHandler::FinishImeCompositionSession() {
-  if (!host_view_->GetTextInputClient()->HasCompositionText())
-    return;
-
-  TextInputManager* text_input_manager = host_view_->GetTextInputManager();
-  if (!!text_input_manager && !!text_input_manager->GetActiveWidget())
-    text_input_manager->GetActiveWidget()->ImeFinishComposingText(false);
+  // RenderWidgetHostViewAura keeps track of existing composition texts. The
+  // call to finish composition text should be made through the RWHVA itself
+  // otherwise the following call to cancel composition will lead to an extra
+  // IPC for finishing the ongoing composition (see https://crbug.com/723024).
+  host_view_->GetTextInputClient()->ConfirmCompositionText();
   host_view_->ImeCancelComposition();
 }
 
diff --git a/extensions/shell/BUILD.gn b/extensions/shell/BUILD.gn
index 1f9d508..9a7d0678 100644
--- a/extensions/shell/BUILD.gn
+++ b/extensions/shell/BUILD.gn
@@ -181,7 +181,10 @@
       "browser/shell_screen.cc",
       "browser/shell_screen.h",
     ]
-    deps += [ "//ui/wm" ]
+    deps += [
+      "//ui/wm",
+      "//ui/wm/public",
+    ]
   }
 
   if (is_chromeos) {
diff --git a/extensions/shell/browser/shell_desktop_controller_aura.cc b/extensions/shell/browser/shell_desktop_controller_aura.cc
index ffcb511..36751ec 100644
--- a/extensions/shell/browser/shell_desktop_controller_aura.cc
+++ b/extensions/shell/browser/shell_desktop_controller_aura.cc
@@ -282,7 +282,7 @@
       new wm::FocusController(new AppsFocusRules());
   aura::client::SetFocusClient(host_->window(), focus_controller);
   host_->window()->AddPreTargetHandler(focus_controller);
-  aura::client::SetActivationClient(host_->window(), focus_controller);
+  wm::SetActivationClient(host_->window(), focus_controller);
   focus_client_.reset(focus_controller);
 
   capture_client_.reset(
@@ -348,7 +348,7 @@
       static_cast<wm::FocusController*>(focus_client_.get());
   if (focus_controller) {
     host_->window()->RemovePreTargetHandler(focus_controller);
-    aura::client::SetActivationClient(host_->window(), NULL);
+    wm::SetActivationClient(host_->window(), NULL);
   }
 
   host_->window()->RemovePreTargetHandler(root_window_event_filter_.get());
diff --git a/gpu/command_buffer/service/gles2_cmd_decoder_passthrough.cc b/gpu/command_buffer/service/gles2_cmd_decoder_passthrough.cc
index 7170b47..8e032b1 100644
--- a/gpu/command_buffer/service/gles2_cmd_decoder_passthrough.cc
+++ b/gpu/command_buffer/service/gles2_cmd_decoder_passthrough.cc
@@ -207,10 +207,17 @@
   active_texture_unit_ = 0;
   bound_textures_[GL_TEXTURE_2D].resize(num_texture_units, 0);
   bound_textures_[GL_TEXTURE_CUBE_MAP].resize(num_texture_units, 0);
-  if (feature_info_->IsWebGL2OrES3Context()) {
+  if (feature_info_->gl_version_info().IsAtLeastGLES(3, 0)) {
     bound_textures_[GL_TEXTURE_2D_ARRAY].resize(num_texture_units, 0);
     bound_textures_[GL_TEXTURE_3D].resize(num_texture_units, 0);
   }
+  if (feature_info_->gl_version_info().IsAtLeastGLES(3, 1)) {
+    bound_textures_[GL_TEXTURE_2D_MULTISAMPLE].resize(num_texture_units, 0);
+  }
+  if (feature_info_->feature_flags().oes_egl_image_external ||
+      feature_info_->feature_flags().nv_egl_stream_consumer_external) {
+    bound_textures_[GL_TEXTURE_EXTERNAL_OES].resize(num_texture_units, 0);
+  }
 
   if (group_->gpu_preferences().enable_gpu_driver_debug_logging &&
       feature_info_->feature_flags().khr_debug) {
diff --git a/ios/chrome/browser/ui/collection_view/cells/collection_view_detail_item.mm b/ios/chrome/browser/ui/collection_view/cells/collection_view_detail_item.mm
index 906b892..ef0f9e61 100644
--- a/ios/chrome/browser/ui/collection_view/cells/collection_view_detail_item.mm
+++ b/ios/chrome/browser/ui/collection_view/cells/collection_view_detail_item.mm
@@ -19,6 +19,9 @@
 // two labels.
 const CGFloat kHorizontalPadding = 16;
 
+// Padding used on the top and bottom edges of the cell.
+const CGFloat kVerticalPadding = 16;
+
 // Minimum proportion of the available width to guarantee to the main and detail
 // labels.
 const CGFloat kMinTextWidthRatio = 0.75f;
@@ -98,10 +101,12 @@
           constraintEqualToAnchor:contentView.trailingAnchor
                          constant:-kHorizontalPadding],
 
-      // Center the text label vertically and align the baselines of the two
-      // text labels.
-      [_textLabel.centerYAnchor
-          constraintEqualToAnchor:contentView.centerYAnchor],
+      // Set up the top and bottom constraints for |_textLabel| and align the
+      // baselines of the two text labels.
+      [_textLabel.topAnchor constraintEqualToAnchor:contentView.topAnchor
+                                           constant:kVerticalPadding],
+      [_textLabel.bottomAnchor constraintEqualToAnchor:contentView.bottomAnchor
+                                              constant:-kVerticalPadding],
       [_detailTextLabel.firstBaselineAnchor
           constraintEqualToAnchor:_textLabel.firstBaselineAnchor],
 
diff --git a/ios/chrome/browser/ui/ntp/BUILD.gn b/ios/chrome/browser/ui/ntp/BUILD.gn
index 221f8e59..5cd58c03 100644
--- a/ios/chrome/browser/ui/ntp/BUILD.gn
+++ b/ios/chrome/browser/ui/ntp/BUILD.gn
@@ -110,6 +110,7 @@
 }
 
 source_set("ntp_header") {
+  configs += [ "//build/config/compiler:enable_arc" ]
   sources = [
     "google_landing_data_source.h",
     "new_tab_page_header_constants.h",
diff --git a/ios/chrome/browser/ui/ntp/new_tab_page_header_constants.mm b/ios/chrome/browser/ui/ntp/new_tab_page_header_constants.mm
index 7265ad2..84fe665 100644
--- a/ios/chrome/browser/ui/ntp/new_tab_page_header_constants.mm
+++ b/ios/chrome/browser/ui/ntp/new_tab_page_header_constants.mm
@@ -4,6 +4,10 @@
 
 #import "ios/chrome/browser/ui/ntp/new_tab_page_header_constants.h"
 
+#if !defined(__has_feature) || !__has_feature(objc_arc)
+#error "This file requires ARC support."
+#endif
+
 namespace ntp_header {
 
 const CGFloat kMinHeaderHeight = 62;
diff --git a/ios/chrome/browser/ui/ntp/new_tab_page_header_view.mm b/ios/chrome/browser/ui/ntp/new_tab_page_header_view.mm
index 805d5a1..f7dc530 100644
--- a/ios/chrome/browser/ui/ntp/new_tab_page_header_view.mm
+++ b/ios/chrome/browser/ui/ntp/new_tab_page_header_view.mm
@@ -5,7 +5,6 @@
 #import "ios/chrome/browser/ui/ntp/new_tab_page_header_view.h"
 
 #include "base/logging.h"
-#include "base/mac/scoped_nsobject.h"
 #import "ios/chrome/browser/tabs/tab_model.h"
 #import "ios/chrome/browser/tabs/tab_model_observer.h"
 #import "ios/chrome/browser/ui/image_util.h"
@@ -17,6 +16,10 @@
 #include "ios/chrome/grit/ios_theme_resources.h"
 #import "ui/gfx/ios/uikit_util.h"
 
+#if !defined(__has_feature) || !__has_feature(objc_arc)
+#error "This file requires ARC support."
+#endif
+
 namespace {
 
 const CGFloat kOmniboxImageBottomInset = 1;
@@ -26,9 +29,9 @@
 }  // namespace
 
 @interface NewTabPageHeaderView () {
-  base::scoped_nsobject<NewTabPageToolbarController> _toolbarController;
-  base::scoped_nsobject<UIImageView> _searchBoxBorder;
-  base::scoped_nsobject<UIImageView> _shadow;
+  NewTabPageToolbarController* _toolbarController;
+  UIImageView* _searchBoxBorder;
+  UIImageView* _shadow;
 }
 
 @end
@@ -43,9 +46,6 @@
   return self;
 }
 
-- (void)dealloc {
-  [super dealloc];
-}
 
 - (UIView*)toolBarView {
   return [_toolbarController view];
@@ -55,7 +55,7 @@
   ToolbarController* relinquishedToolbarController = nil;
   if ([[_toolbarController view] isDescendantOfView:self]) {
     // Only relinquish the toolbar controller if it's in the hierarchy.
-    relinquishedToolbarController = _toolbarController.get();
+    relinquishedToolbarController = _toolbarController;
   }
   return relinquishedToolbarController;
 }
@@ -69,9 +69,9 @@
   DCHECK(!_toolbarController);
   DCHECK(dataSource);
 
-  _toolbarController.reset([[NewTabPageToolbarController alloc] init]);
+  _toolbarController = [[NewTabPageToolbarController alloc] init];
   [_toolbarController setDispatcher:dispatcher];
-  _toolbarController.get().readingListModel = [dataSource readingListModel];
+  _toolbarController.readingListModel = [dataSource readingListModel];
 
   UIView* toolbarView = [_toolbarController view];
   CGRect toolbarFrame = self.bounds;
@@ -105,14 +105,14 @@
   [searchField setBackgroundColor:[UIColor whiteColor]];
   UIImage* searchBorderImage =
       StretchableImageNamed(@"ntp_google_search_box", 12, 12);
-  _searchBoxBorder.reset([[UIImageView alloc] initWithImage:searchBorderImage]);
+  _searchBoxBorder = [[UIImageView alloc] initWithImage:searchBorderImage];
   [_searchBoxBorder setFrame:[searchField bounds]];
   [_searchBoxBorder setAutoresizingMask:UIViewAutoresizingFlexibleWidth |
                                         UIViewAutoresizingFlexibleHeight];
   [searchField insertSubview:_searchBoxBorder atIndex:0];
 
   UIImage* fullBleedShadow = NativeImage(IDR_IOS_TOOLBAR_SHADOW_FULL_BLEED);
-  _shadow.reset([[UIImageView alloc] initWithImage:fullBleedShadow]);
+  _shadow = [[UIImageView alloc] initWithImage:fullBleedShadow];
   CGRect shadowFrame = [searchField bounds];
   shadowFrame.origin.y =
       searchField.bounds.size.height - kOmniboxImageBottomInset;
diff --git a/ios/chrome/browser/ui/ntp/new_tab_page_toolbar_controller.h b/ios/chrome/browser/ui/ntp/new_tab_page_toolbar_controller.h
index 6cb49b3..8e90625 100644
--- a/ios/chrome/browser/ui/ntp/new_tab_page_toolbar_controller.h
+++ b/ios/chrome/browser/ui/ntp/new_tab_page_toolbar_controller.h
@@ -22,7 +22,7 @@
 // ToolbarControllerStyleLightMode.
 - (instancetype)init;
 
-@property(nonatomic, assign) id<UrlLoader, OmniboxFocuser, WebToolbarDelegate>
+@property(nonatomic, weak) id<UrlLoader, OmniboxFocuser, WebToolbarDelegate>
     dispatcher;
 
 // |YES| if the toolbar can show the forward arrow.
diff --git a/ios/chrome/browser/ui/ntp/new_tab_page_toolbar_controller.mm b/ios/chrome/browser/ui/ntp/new_tab_page_toolbar_controller.mm
index 57c3eb3..ef9a0fd 100644
--- a/ios/chrome/browser/ui/ntp/new_tab_page_toolbar_controller.mm
+++ b/ios/chrome/browser/ui/ntp/new_tab_page_toolbar_controller.mm
@@ -5,7 +5,6 @@
 #import "ios/chrome/browser/ui/ntp/new_tab_page_toolbar_controller.h"
 
 #include "base/logging.h"
-#include "base/mac/scoped_nsobject.h"
 #include "base/metrics/user_metrics.h"
 #include "base/metrics/user_metrics_action.h"
 #include "components/strings/grit/components_strings.h"
@@ -20,6 +19,10 @@
 #import "ios/chrome/browser/ui/uikit_ui_util.h"
 #include "ui/base/l10n/l10n_util.h"
 
+#if !defined(__has_feature) || !__has_feature(objc_arc)
+#error "This file requires ARC support."
+#endif
+
 using base::UserMetricsAction;
 
 namespace {
@@ -41,9 +44,9 @@
 }  // namespace
 
 @interface NewTabPageToolbarController () {
-  base::scoped_nsobject<UIButton> _backButton;
-  base::scoped_nsobject<UIButton> _forwardButton;
-  base::scoped_nsobject<UIButton> _omniboxFocuser;
+  UIButton* _backButton;
+  UIButton* _forwardButton;
+  UIButton* _omniboxFocuser;
 }
 
 // |YES| if the google landing toolbar can show the forward arrow.
@@ -69,24 +72,24 @@
     LayoutRect backButtonLayout =
         LayoutRectMake(kBackButtonLeading, boundingWidth, kButtonYOffset,
                        kBackButtonSize.width, kBackButtonSize.height);
-    _backButton.reset(
-        [[UIButton alloc] initWithFrame:LayoutRectGetRect(backButtonLayout)]);
+    _backButton =
+        [[UIButton alloc] initWithFrame:LayoutRectGetRect(backButtonLayout)];
     [_backButton
         setAutoresizingMask:UIViewAutoresizingFlexibleTrailingMargin() |
                             UIViewAutoresizingFlexibleBottomMargin];
     LayoutRect forwardButtonLayout =
         LayoutRectMake(kForwardButtonLeading, boundingWidth, kButtonYOffset,
                        kForwardButtonSize.width, kForwardButtonSize.height);
-    _forwardButton.reset([[UIButton alloc]
-        initWithFrame:LayoutRectGetRect(forwardButtonLayout)]);
+    _forwardButton =
+        [[UIButton alloc] initWithFrame:LayoutRectGetRect(forwardButtonLayout)];
     [_forwardButton
         setAutoresizingMask:UIViewAutoresizingFlexibleTrailingMargin() |
                             UIViewAutoresizingFlexibleBottomMargin];
     LayoutRect omniboxFocuserLayout =
         LayoutRectMake(kOmniboxFocuserLeading, boundingWidth, kButtonYOffset,
                        kOmniboxFocuserSize.width, kOmniboxFocuserSize.height);
-    _omniboxFocuser.reset([[UIButton alloc]
-        initWithFrame:LayoutRectGetRect(omniboxFocuserLayout)]);
+    _omniboxFocuser = [[UIButton alloc]
+        initWithFrame:LayoutRectGetRect(omniboxFocuserLayout)];
     [_omniboxFocuser
         setAccessibilityLabel:l10n_util::GetNSString(IDS_ACCNAME_LOCATION)];
 
@@ -110,15 +113,15 @@
         hasDisabledImage:YES
            synchronously:NO];
 
-    base::scoped_nsobject<UILongPressGestureRecognizer> backLongPress(
+    UILongPressGestureRecognizer* backLongPress =
         [[UILongPressGestureRecognizer alloc]
             initWithTarget:self
-                    action:@selector(handleLongPress:)]);
+                    action:@selector(handleLongPress:)];
     [_backButton addGestureRecognizer:backLongPress];
-    base::scoped_nsobject<UILongPressGestureRecognizer> forwardLongPress(
+    UILongPressGestureRecognizer* forwardLongPress =
         [[UILongPressGestureRecognizer alloc]
             initWithTarget:self
-                    action:@selector(handleLongPress:)]);
+                    action:@selector(handleLongPress:)];
     [_forwardButton addGestureRecognizer:forwardLongPress];
     [_backButton setTag:IDC_BACK];
     [_forwardButton setTag:IDC_FORWARD];
@@ -150,9 +153,9 @@
 }
 
 - (int)imageEnumForButton:(UIButton*)button {
-  if (button == _backButton.get())
+  if (button == _backButton)
     return NTPToolbarButtonNameBack;
-  if (button == _forwardButton.get())
+  if (button == _forwardButton)
     return NTPToolbarButtonNameForward;
   return [super imageEnumForButton:button];
 }
@@ -181,9 +184,9 @@
 }
 
 - (IBAction)recordUserMetrics:(id)sender {
-  if (sender == _backButton.get()) {
+  if (sender == _backButton) {
     base::RecordAction(UserMetricsAction("MobileToolbarBack"));
-  } else if (sender == _forwardButton.get()) {
+  } else if (sender == _forwardButton) {
     base::RecordAction(UserMetricsAction("MobileToolbarForward"));
   } else {
     [super recordUserMetrics:sender];
@@ -194,13 +197,13 @@
   if (gesture.state != UIGestureRecognizerStateBegan)
     return;
 
-  if (gesture.view == _backButton.get()) {
-    base::scoped_nsobject<GenericChromeCommand> command(
-        [[GenericChromeCommand alloc] initWithTag:IDC_SHOW_BACK_HISTORY]);
+  if (gesture.view == _backButton) {
+    GenericChromeCommand* command =
+        [[GenericChromeCommand alloc] initWithTag:IDC_SHOW_BACK_HISTORY];
     [_backButton chromeExecuteCommand:command];
-  } else if (gesture.view == _forwardButton.get()) {
-    base::scoped_nsobject<GenericChromeCommand> command(
-        [[GenericChromeCommand alloc] initWithTag:IDC_SHOW_FORWARD_HISTORY]);
+  } else if (gesture.view == _forwardButton) {
+    GenericChromeCommand* command =
+        [[GenericChromeCommand alloc] initWithTag:IDC_SHOW_FORWARD_HISTORY];
     [_forwardButton chromeExecuteCommand:command];
   }
 }
diff --git a/ios/chrome/browser/ui/qr_scanner/camera_controller.h b/ios/chrome/browser/ui/qr_scanner/camera_controller.h
index 9a346c2..fdbf560d 100644
--- a/ios/chrome/browser/ui/qr_scanner/camera_controller.h
+++ b/ios/chrome/browser/ui/qr_scanner/camera_controller.h
@@ -67,9 +67,9 @@
 
 - (instancetype)init NS_UNAVAILABLE;
 
-// Initializes the controller with the |delegate|.
-- (instancetype)initWithDelegate:(id<CameraControllerDelegate>)delegate
-    NS_DESIGNATED_INITIALIZER;
+// Returns a new controller with the |delegate|.
++ (instancetype)cameraControllerWithDelegate:
+    (id<CameraControllerDelegate>)delegate;
 
 // Returns the app's authorization in regards to the camera.
 - (AVAuthorizationStatus)getAuthorizationStatus;
diff --git a/ios/chrome/browser/ui/qr_scanner/camera_controller.mm b/ios/chrome/browser/ui/qr_scanner/camera_controller.mm
index b4fded5..e5ecb32 100644
--- a/ios/chrome/browser/ui/qr_scanner/camera_controller.mm
+++ b/ios/chrome/browser/ui/qr_scanner/camera_controller.mm
@@ -34,6 +34,10 @@
 @property(nonatomic, readwrite, assign, getter=isTorchAvailable)
     BOOL torchAvailable;
 
+// Initializes the controller with the |delegate|.
+- (instancetype)initWithDelegate:(id<CameraControllerDelegate>)delegate
+    NS_DESIGNATED_INITIALIZER;
+
 // YES if |cameraState| is CAMERA_AVAILABLE.
 - (BOOL)isCameraAvailable;
 // Starts receiving notfications about changes to the capture session and to the
@@ -58,6 +62,13 @@
 
 #pragma mark lifecycle
 
++ (instancetype)cameraControllerWithDelegate:
+    (id<CameraControllerDelegate>)delegate {
+  CameraController* cameraController =
+      [[CameraController alloc] initWithDelegate:delegate];
+  return cameraController;
+}
+
 - (instancetype)initWithDelegate:(id<CameraControllerDelegate>)delegate {
   self = [super init];
   if (self) {
diff --git a/ios/chrome/browser/ui/qr_scanner/qr_scanner_view_controller.mm b/ios/chrome/browser/ui/qr_scanner/qr_scanner_view_controller.mm
index 99912a1..c39eec38 100644
--- a/ios/chrome/browser/ui/qr_scanner/qr_scanner_view_controller.mm
+++ b/ios/chrome/browser/ui/qr_scanner/qr_scanner_view_controller.mm
@@ -81,7 +81,7 @@
   if (self) {
     DCHECK(delegate);
     _delegate = delegate;
-    _cameraController = [[CameraController alloc] initWithDelegate:self];
+    _cameraController = [CameraController cameraControllerWithDelegate:self];
   }
   return self;
 }
diff --git a/ios/chrome/browser/ui/qr_scanner/qr_scanner_view_controller_egtest.mm b/ios/chrome/browser/ui/qr_scanner/qr_scanner_view_controller_egtest.mm
index 31aabe3..e656803c 100644
--- a/ios/chrome/browser/ui/qr_scanner/qr_scanner_view_controller_egtest.mm
+++ b/ios/chrome/browser/ui/qr_scanner/qr_scanner_view_controller_egtest.mm
@@ -396,13 +396,11 @@
 - (void)swizzleCameraController:(id)cameraControllerMock {
   CameraController* (^swizzleCameraControllerBlock)(
       id<CameraControllerDelegate>) = ^(id<CameraControllerDelegate> delegate) {
-    // |initWithDelegate:| must return an object with a return count of 1
-    // because it is preceded by a call to |alloc|.
-    return [cameraControllerMock retain];
+    return cameraControllerMock;
   };
 
   camera_controller_swizzler_.reset(new ScopedBlockSwizzler(
-      [CameraController class], @selector(initWithDelegate:),
+      [CameraController class], @selector(cameraControllerWithDelegate:),
       swizzleCameraControllerBlock));
 }
 
diff --git a/mash/simple_wm/BUILD.gn b/mash/simple_wm/BUILD.gn
index bfb156a3..b1fb47a 100644
--- a/mash/simple_wm/BUILD.gn
+++ b/mash/simple_wm/BUILD.gn
@@ -48,6 +48,7 @@
     "//ui/views",
     "//ui/views/mus:mus",
     "//ui/wm",
+    "//ui/wm/public",
   ]
 
   public_deps = [
diff --git a/mash/simple_wm/simple_wm.cc b/mash/simple_wm/simple_wm.cc
index 22d64a6..8850a38 100644
--- a/mash/simple_wm/simple_wm.cc
+++ b/mash/simple_wm/simple_wm.cc
@@ -526,7 +526,7 @@
       std::move(frame_decoration_values));
   focus_controller_ = base::MakeUnique<wm::FocusController>(this);
   aura::client::SetFocusClient(display_root_, focus_controller_.get());
-  aura::client::SetActivationClient(display_root_, focus_controller_.get());
+  wm::SetActivationClient(display_root_, focus_controller_.get());
   display_root_->AddPreTargetHandler(focus_controller_.get());
 }
 
@@ -589,8 +589,8 @@
 
 void SimpleWM::OnWindowListViewItemActivated(aura::Window* window) {
   window->Show();
-  aura::client::ActivationClient* activation_client =
-      aura::client::GetActivationClient(window->GetRootWindow());
+  wm::ActivationClient* activation_client =
+      wm::GetActivationClient(window->GetRootWindow());
   activation_client->ActivateWindow(window);
 }
 
diff --git a/testing/buildbot/filters/mojo.fyi.browser_tests.filter b/testing/buildbot/filters/mojo.fyi.browser_tests.filter
index e12b2122..7b564c9 100644
--- a/testing/buildbot/filters/mojo.fyi.browser_tests.filter
+++ b/testing/buildbot/filters/mojo.fyi.browser_tests.filter
@@ -11,11 +11,8 @@
 -BrowserTest.Title
 
 # Trying to whitelist
-BluetoothInternalsTest.Startup_BluetoothInternals
 BootstrapTest.CleanUpFailedUser
-BootstrapTest.PRE_CleanUpFailedUser
 BrowserDialogTest.Invoke
-BrowsingDataRemoverTransportSecurityStateBrowserTest.ClearTransportSecurityState
 CastSessionBrowserTest.CreateAndDestroy
 ChromeContentRendererClientSearchBoxTest.RewriteThumbnailURL
 ChromeRenderFrameObserverTest.SkipCapturingSubFrames
@@ -24,25 +21,11 @@
 ChromeRenderViewTest.ImagesBlockedByDefault
 ChromeRenderViewTest.JSBlockSentAfterPageLoad
 ChromeRenderViewTest.PluginsTemporarilyAllowed
-ChromeServiceWorkerManifestFetchTest.OtherOrigin
-ChromeServiceWorkerManifestFetchTest.OtherOriginUseCredentials
-ChromeServiceWorkerManifestFetchTest.SameOrigin
-ChromeServiceWorkerManifestFetchTest.SameOriginUseCredentials
-ChromeServiceWorkerTest.CanCloseIncognitoWindowWithServiceWorkerController
-ChromeServiceWorkerTest.CanShutDownWithRegisteredServiceWorker
-ChromeServiceWorkerTest.FailRegisterServiceWorkerWhenJSDisabled
-ChromeServiceWorkerTest.FallbackMainResourceRequestWhenJSDisabled
-ConstrainedWebDialogBrowserTest.ReleaseWebContents
-ContentVerifierPolicyTest.FailedUpdateRetries
-ContentVerifierPolicyTest.PRE_PolicyCorruptedOnStartup
 ContentVerifierPolicyTest.PolicyCorruptedOnStartup
 CreateNewFolder/FileManagerBrowserTest.Test/0
 CreateNewFolder/FileManagerBrowserTest.Test/1
 CreateNewFolder/FileManagerBrowserTest.Test/2
 CreateNewFolder/FileManagerBrowserTest.Test/3
-DefaultTaskDialog/FileManagerBrowserTest.Test/0
-DefaultTaskDialog/FileManagerBrowserTest.Test/1
-DefaultTaskDialog/FileManagerBrowserTest.Test/2
 DeviceStatusCollectorNetworkInterfacesTest.NetworkInterfaces
 DeviceStatusCollectorNetworkInterfacesTest.ReportIfPublicSession
 DeviceStatusCollectorTest.ActivityCrossingMidnight
@@ -107,16 +90,6 @@
 InstantProcessNavigationTest.ForkForNavigationsFromInstantProcess
 InstantProcessNavigationTest.ForkForNavigationsToSearchURLs
 MultiProfileFileManagerBrowserTest.BasicDownloads
-MultiProfileFileManagerBrowserTest.BasicDrive
-MultiProfileFileManagerBrowserTest.PRE_BasicDownloads
-OpenAudioFiles/FileManagerBrowserTest.Test/1
-OpenAudioFiles/FileManagerBrowserTest.Test/2
-OpenAudioFiles/FileManagerBrowserTest.Test/3
-OpenAudioFiles/FileManagerBrowserTest.Test/4
-OpenAudioFiles/FileManagerBrowserTest.Test/5
-OpenAudioFiles/FileManagerBrowserTest.Test/6
-OpenAudioFiles/FileManagerBrowserTest.Test/7
-OpenAudioFiles/FileManagerBrowserTest.Test/8
 PageClickTrackerTest.PageClickTrackerClickDisabledInputDoesNotResetClickCounter
 PageClickTrackerTest.PageClickTrackerDisabledInputClickedNoEvent
 PageClickTrackerTest.PageClickTrackerInputClicked
@@ -166,9 +139,5 @@
 PolicyCertVerifierTest.VerifyTrustedCert
 PolicyCertVerifierTest.VerifyUntrustedCert
 PolicyCertVerifierTest.VerifyUsingAdditionalTrustAnchor
-PrerenderBrowserTestWithNaCl.PrerenderNaClPluginEnabled
-PrintPreviewDestinationSearchTest.Select
-RestoreGeometry/FileManagerBrowserTest.Test/0
-RestoreGeometry/FileManagerBrowserTest.Test/1
 ScriptContextTest.GetEffectiveDocumentURL
 SiteEngagementUiBrowserTest.Basic
diff --git a/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-features=LayoutNG b/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-features=LayoutNG
index 9cb5500..416640b 100644
--- a/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-features=LayoutNG
+++ b/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-features=LayoutNG
@@ -5106,91 +5106,14 @@
 crbug.com/591099 external/wpt/css/css-grid-1/abspos/positioned-grid-items-015.html [ Failure ]
 crbug.com/591099 external/wpt/css/css-grid-1/abspos/positioned-grid-items-016.html [ Failure ]
 crbug.com/591099 external/wpt/css/css-grid-1/abspos/positioned-grid-items-017.html [ Failure ]
-crbug.com/591099 external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-001.html [ Crash ]
-crbug.com/591099 external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-002.html [ Crash ]
-crbug.com/591099 external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-003.html [ Crash ]
-crbug.com/591099 external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-004.html [ Crash ]
-crbug.com/591099 external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-005.html [ Crash ]
-crbug.com/591099 external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-006.html [ Crash ]
-crbug.com/591099 external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-007.html [ Crash ]
-crbug.com/591099 external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-008.html [ Crash ]
-crbug.com/591099 external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-009.html [ Crash ]
-crbug.com/591099 external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-010.html [ Crash ]
-crbug.com/591099 external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-011.html [ Crash ]
-crbug.com/591099 external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-012.html [ Crash ]
-crbug.com/591099 external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-013.html [ Crash ]
-crbug.com/591099 external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-014.html [ Crash ]
-crbug.com/591099 external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-015.html [ Crash ]
-crbug.com/591099 external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-016.html [ Crash ]
-crbug.com/591099 external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-vertical-lr-001.html [ Crash ]
-crbug.com/591099 external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-vertical-lr-002.html [ Crash ]
-crbug.com/591099 external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-vertical-lr-003.html [ Crash ]
-crbug.com/591099 external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-vertical-lr-004.html [ Crash ]
-crbug.com/591099 external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-vertical-lr-005.html [ Crash ]
-crbug.com/591099 external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-vertical-lr-006.html [ Crash ]
-crbug.com/591099 external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-vertical-lr-007.html [ Crash ]
-crbug.com/591099 external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-vertical-lr-008.html [ Crash ]
-crbug.com/591099 external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-vertical-lr-009.html [ Crash ]
-crbug.com/591099 external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-vertical-lr-010.html [ Crash ]
-crbug.com/591099 external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-vertical-lr-011.html [ Crash ]
-crbug.com/591099 external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-vertical-lr-012.html [ Crash ]
-crbug.com/591099 external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-vertical-lr-013.html [ Crash ]
-crbug.com/591099 external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-vertical-lr-014.html [ Crash ]
-crbug.com/591099 external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-vertical-lr-015.html [ Crash ]
-crbug.com/591099 external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-vertical-lr-016.html [ Crash ]
-crbug.com/591099 external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-vertical-rl-001.html [ Crash ]
-crbug.com/591099 external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-vertical-rl-002.html [ Crash ]
-crbug.com/591099 external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-vertical-rl-003.html [ Crash ]
-crbug.com/591099 external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-vertical-rl-004.html [ Crash ]
-crbug.com/591099 external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-vertical-rl-005.html [ Crash ]
-crbug.com/591099 external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-vertical-rl-006.html [ Crash ]
-crbug.com/591099 external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-vertical-rl-007.html [ Crash ]
-crbug.com/591099 external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-vertical-rl-008.html [ Crash ]
-crbug.com/591099 external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-vertical-rl-009.html [ Crash ]
-crbug.com/591099 external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-vertical-rl-010.html [ Crash ]
-crbug.com/591099 external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-vertical-rl-011.html [ Crash ]
-crbug.com/591099 external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-vertical-rl-012.html [ Crash ]
-crbug.com/591099 external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-vertical-rl-013.html [ Crash ]
-crbug.com/591099 external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-vertical-rl-014.html [ Crash ]
-crbug.com/591099 external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-vertical-rl-015.html [ Crash ]
-crbug.com/591099 external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-vertical-rl-016.html [ Crash ]
 crbug.com/591099 external/wpt/css/css-grid-1/grid-definition/fr-unit.html [ Failure ]
 crbug.com/591099 external/wpt/css/css-grid-1/grid-definition/fr-unit-with-percentage.html [ Failure ]
-crbug.com/591099 external/wpt/css/css-grid-1/grid-definition/grid-inline-template-columns-rows-resolved-values-001.xht [ Failure Pass ]
 crbug.com/591099 external/wpt/css/css-grid-1/grid-definition/grid-layout-auto-tracks.html [ Failure Pass ]
-crbug.com/591099 external/wpt/css/css-grid-1/grid-definition/grid-template-columns-rows-resolved-values-001.xht [ Failure Pass ]
-crbug.com/591099 external/wpt/css/css-grid-1/grid-items/grid-inline-order-property-auto-placement-001.xht [ Failure Pass ]
-crbug.com/591099 external/wpt/css/css-grid-1/grid-items/grid-inline-order-property-auto-placement-002.xht [ Failure Pass ]
-crbug.com/591099 external/wpt/css/css-grid-1/grid-items/grid-inline-order-property-auto-placement-003.xht [ Failure Pass ]
-crbug.com/591099 external/wpt/css/css-grid-1/grid-items/grid-inline-order-property-auto-placement-004.xht [ Failure Pass ]
-crbug.com/591099 external/wpt/css/css-grid-1/grid-items/grid-inline-order-property-auto-placement-005.xht [ Failure Pass ]
-crbug.com/591099 external/wpt/css/css-grid-1/grid-items/grid-inline-z-axis-ordering-overlapped-items-006.xht [ Failure ]
 crbug.com/591099 external/wpt/css/css-grid-1/grid-items/grid-item-containing-block-001.html [ Failure ]
 crbug.com/591099 external/wpt/css/css-grid-1/grid-items/grid-item-containing-block-002.html [ Failure ]
 crbug.com/591099 external/wpt/css/css-grid-1/grid-items/grid-item-containing-block-003.html [ Failure ]
 crbug.com/591099 external/wpt/css/css-grid-1/grid-items/grid-item-containing-block-004.html [ Failure ]
 crbug.com/591099 external/wpt/css/css-grid-1/grid-items/grid-items-sizing-alignment-001.html [ Failure Pass ]
-crbug.com/591099 external/wpt/css/css-grid-1/grid-items/grid-order-property-auto-placement-001.xht [ Crash Failure Pass ]
-crbug.com/591099 external/wpt/css/css-grid-1/grid-items/grid-order-property-auto-placement-002.xht [ Failure Pass ]
-crbug.com/591099 external/wpt/css/css-grid-1/grid-items/grid-order-property-auto-placement-003.xht [ Failure Pass ]
-crbug.com/591099 external/wpt/css/css-grid-1/grid-items/grid-order-property-auto-placement-004.xht [ Failure Pass ]
-crbug.com/591099 external/wpt/css/css-grid-1/grid-items/grid-order-property-auto-placement-005.xht [ Failure Pass ]
-crbug.com/591099 external/wpt/css/css-grid-1/grid-items/grid-z-axis-ordering-overlapped-items-006.xht [ Failure ]
-crbug.com/591099 external/wpt/css/css-grid-1/grid-model/grid-first-letter-001.xht [ Failure Pass ]
-crbug.com/591099 external/wpt/css/css-grid-1/grid-model/grid-first-letter-002.xht [ Failure Pass ]
-crbug.com/591099 external/wpt/css/css-grid-1/grid-model/grid-first-letter-003.xht [ Failure Pass ]
-crbug.com/591099 external/wpt/css/css-grid-1/grid-model/grid-first-line-001.xht [ Failure Pass ]
-crbug.com/591099 external/wpt/css/css-grid-1/grid-model/grid-first-line-002.xht [ Failure Pass ]
-crbug.com/591099 external/wpt/css/css-grid-1/grid-model/grid-first-line-003.xht [ Failure Pass ]
-crbug.com/591099 external/wpt/css/css-grid-1/grid-model/grid-inline-first-letter-001.xht [ Failure Pass ]
-crbug.com/591099 external/wpt/css/css-grid-1/grid-model/grid-inline-first-letter-002.xht [ Failure Pass ]
-crbug.com/591099 external/wpt/css/css-grid-1/grid-model/grid-inline-first-letter-003.xht [ Failure Pass ]
-crbug.com/591099 external/wpt/css/css-grid-1/grid-model/grid-inline-first-line-001.xht [ Failure Pass ]
-crbug.com/591099 external/wpt/css/css-grid-1/grid-model/grid-inline-first-line-002.xht [ Failure Pass ]
-crbug.com/591099 external/wpt/css/css-grid-1/grid-model/grid-inline-first-line-003.xht [ Failure Pass ]
-crbug.com/591099 external/wpt/css/css-grid-1/grid-model/grid-inline-margins-no-collapse-001.xht [ Failure ]
-crbug.com/591099 external/wpt/css/css-grid-1/grid-model/grid-margins-no-collapse-001.xht [ Failure ]
-crbug.com/591099 external/wpt/css/css-grid-1/grid-model/grid-support-display-001.xht [ Crash ]
 crbug.com/591099 external/wpt/css/css-position-3/position-sticky-left.html [ Crash Failure ]
 crbug.com/591099 external/wpt/css/css-position-3/position-sticky-table-th-bottom.html [ Failure ]
 crbug.com/591099 external/wpt/css/css-position-3/position-sticky-table-th-left.html [ Failure ]
diff --git a/third_party/WebKit/LayoutTests/FlagExpectations/enable-network-service b/third_party/WebKit/LayoutTests/FlagExpectations/enable-network-service
index 0deddd4..b764ccd 100644
--- a/third_party/WebKit/LayoutTests/FlagExpectations/enable-network-service
+++ b/third_party/WebKit/LayoutTests/FlagExpectations/enable-network-service
@@ -107,6 +107,7 @@
 Bug(none) dom/legacy_dom_conformance/svg/level3/xpath/XPathResult_snapshotLength_UNORDERED_NODE_SNAPSHOT_TYPE.svg [ Failure ]
 Bug(none) dom/legacy_dom_conformance/svg/level3/xpath/XPathResult_stringValue.svg [ Failure ]
 Bug(none) dom/legacy_dom_conformance/svg/level3/xpath/XPathResult_TYPE_ERR.svg [ Failure ]
+Bug(none) editing/input/drag_in_unselectable.html [ Failure ]
 Bug(none) editing/input/text-input-controller-leak-document.html [ Timeout ]
 Bug(none) editing/inserting/delete-insignificant-text-crash.html [ Timeout ]
 Bug(none) editing/inserting/insert-html-crash.html [ Timeout ]
@@ -191,6 +192,7 @@
 Bug(none) external/wpt/cors/simple-requests.htm [ Failure ]
 Bug(none) external/wpt/credential-management/credentialscontainer-create-basics.https.html [ Timeout ]
 Bug(none) external/wpt/credential-management/idl.https.html [ Timeout ]
+Bug(none) external/wpt/css-font-display/font-display.html [ Timeout ]
 Bug(none) external/wpt/css/css-grid-1/alignment/grid-content-distribution-018.html [ Timeout ]
 Bug(none) external/wpt/css/css-shapes-1/shape-outside/shape-box/shape-outside-box-003.html [ Timeout ]
 Bug(none) external/wpt/css/css-shapes-1/shape-outside/values/shape-outside-ellipse-004.html [ Timeout ]
@@ -293,13 +295,24 @@
 Bug(none) external/wpt/IndexedDB/idbcursor-advance-invalid.htm [ Timeout ]
 Bug(none) external/wpt/IndexedDB/idbcursor-advance.htm [ Failure Timeout ]
 Bug(none) external/wpt/IndexedDB/idbcursor-continue.htm [ Failure ]
+Bug(none) external/wpt/IndexedDB/idbcursor-delete-exception-order.htm [ Failure ]
+Bug(none) external/wpt/IndexedDB/idbcursor-direction-index.htm [ Failure ]
+Bug(none) external/wpt/IndexedDB/idbcursor-direction-objectstore.htm [ Failure ]
 Bug(none) external/wpt/IndexedDB/idbcursor-direction.htm [ Failure ]
+Bug(none) external/wpt/IndexedDB/idbcursor-source.htm [ Failure ]
 Bug(none) external/wpt/IndexedDB/idbcursor-update-exception-order.htm [ Failure ]
 Bug(none) external/wpt/IndexedDB/idbcursor_advance_index.htm [ Failure ]
+Bug(none) external/wpt/IndexedDB/idbcursor_advance_index5.htm [ Failure ]
+Bug(none) external/wpt/IndexedDB/idbcursor_advance_objectstore2.htm [ Failure ]
 Bug(none) external/wpt/IndexedDB/idbcursor_advance_objectstore4.htm [ Failure ]
+Bug(none) external/wpt/IndexedDB/idbcursor_continue_index.htm [ Failure ]
 Bug(none) external/wpt/IndexedDB/idbcursor_continue_index3.htm [ Failure ]
+Bug(none) external/wpt/IndexedDB/idbcursor_continue_index4.htm [ Failure ]
+Bug(none) external/wpt/IndexedDB/idbcursor_continue_index5.htm [ Failure ]
 Bug(none) external/wpt/IndexedDB/idbcursor_continue_invalid.htm [ Failure ]
+Bug(none) external/wpt/IndexedDB/idbcursor_continue_objectstore.htm [ Failure ]
 Bug(none) external/wpt/IndexedDB/idbcursor_continue_objectstore3.htm [ Failure ]
+Bug(none) external/wpt/IndexedDB/idbcursor_continue_objectstore5.htm [ Failure ]
 Bug(none) external/wpt/IndexedDB/idbcursor_delete_index.htm [ Failure Timeout ]
 Bug(none) external/wpt/IndexedDB/idbcursor_delete_index2.htm [ Failure ]
 Bug(none) external/wpt/IndexedDB/idbcursor_delete_index3.htm [ Failure ]
@@ -307,46 +320,80 @@
 Bug(none) external/wpt/IndexedDB/idbcursor_iterating_index.htm [ Failure ]
 Bug(none) external/wpt/IndexedDB/idbcursor_iterating_index2.htm [ Failure ]
 Bug(none) external/wpt/IndexedDB/idbcursor_iterating_objectstore.htm [ Failure ]
+Bug(none) external/wpt/IndexedDB/idbcursor_iterating_objectstore2.htm [ Failure ]
 Bug(none) external/wpt/IndexedDB/idbcursor_update_index2.htm [ Failure ]
+Bug(none) external/wpt/IndexedDB/idbcursor_update_index5.htm [ Failure ]
 Bug(none) external/wpt/IndexedDB/idbcursor_update_index6.htm [ Failure ]
 Bug(none) external/wpt/IndexedDB/idbcursor_update_index7.htm [ Failure ]
+Bug(none) external/wpt/IndexedDB/idbcursor_update_objectstore.htm [ Failure ]
+Bug(none) external/wpt/IndexedDB/idbcursor_update_objectstore2.htm [ Failure ]
 Bug(none) external/wpt/IndexedDB/idbcursor_update_objectstore3.htm [ Timeout ]
+Bug(none) external/wpt/IndexedDB/idbcursor_update_objectstore6.htm [ Failure ]
 Bug(none) external/wpt/IndexedDB/idbcursor_update_objectstore7.htm [ Failure ]
 Bug(none) external/wpt/IndexedDB/idbcursor_update_objectstore9.htm [ Failure ]
 Bug(none) external/wpt/IndexedDB/idbdatabase_createObjectStore10-1000ends.htm [ Failure ]
-Bug(none) external/wpt/IndexedDB/idbindex-rename-errors.html [ Timeout ]
+Bug(none) external/wpt/IndexedDB/idbdatabase_deleteObjectStore4-not_reused.htm [ Failure ]
+Bug(none) external/wpt/IndexedDB/idbindex-rename-errors.html [ Failure Timeout ]
 Bug(none) external/wpt/IndexedDB/idbindex_count2.htm [ Failure ]
 Bug(none) external/wpt/IndexedDB/idbindex_get4.htm [ Failure ]
+Bug(none) external/wpt/IndexedDB/idbindex_get7.htm [ Failure ]
 Bug(none) external/wpt/IndexedDB/idbindex_getAll.html [ Failure ]
 Bug(none) external/wpt/IndexedDB/idbindex_getAllKeys.html [ Timeout ]
+Bug(none) external/wpt/IndexedDB/idbindex_getKey.htm [ Failure ]
+Bug(none) external/wpt/IndexedDB/idbindex_getKey4.htm [ Failure ]
 Bug(none) external/wpt/IndexedDB/idbindex_getKey7.htm [ Failure ]
 Bug(none) external/wpt/IndexedDB/idbindex_openCursor2.htm [ Failure ]
 Bug(none) external/wpt/IndexedDB/idbobjectstore-rename-errors.html [ Timeout ]
 Bug(none) external/wpt/IndexedDB/idbobjectstore_add.htm [ Failure ]
+Bug(none) external/wpt/IndexedDB/idbobjectstore_add2.htm [ Failure ]
 Bug(none) external/wpt/IndexedDB/idbobjectstore_add5.htm [ Failure ]
 Bug(none) external/wpt/IndexedDB/idbobjectstore_add8.htm [ Failure ]
+Bug(none) external/wpt/IndexedDB/idbobjectstore_clear3.htm [ Failure ]
+Bug(none) external/wpt/IndexedDB/idbobjectstore_count.htm [ Failure ]
 Bug(none) external/wpt/IndexedDB/idbobjectstore_createIndex15-autoincrement.htm [ Failure ]
+Bug(none) external/wpt/IndexedDB/idbobjectstore_createIndex3-usable-right-away.htm [ Failure ]
+Bug(none) external/wpt/IndexedDB/idbobjectstore_createIndex5-emptykeypath.htm [ Failure ]
+Bug(none) external/wpt/IndexedDB/idbobjectstore_createIndex9-emptyname.htm [ Failure ]
+Bug(none) external/wpt/IndexedDB/idbobjectstore_delete.htm [ Failure ]
+Bug(none) external/wpt/IndexedDB/idbobjectstore_delete3.htm [ Failure ]
+Bug(none) external/wpt/IndexedDB/idbobjectstore_delete4.htm [ Failure ]
 Bug(none) external/wpt/IndexedDB/idbobjectstore_delete5.htm [ Failure ]
+Bug(none) external/wpt/IndexedDB/idbobjectstore_delete6.htm [ Failure ]
 Bug(none) external/wpt/IndexedDB/idbobjectstore_deleted.htm [ Failure ]
 Bug(none) external/wpt/IndexedDB/idbobjectstore_get.htm [ Failure ]
-Bug(none) external/wpt/IndexedDB/idbobjectstore_getAll.html [ Timeout ]
-Bug(none) external/wpt/IndexedDB/idbobjectstore_getAllKeys.html [ Timeout ]
+Bug(none) external/wpt/IndexedDB/idbobjectstore_get2.htm [ Failure ]
+Bug(none) external/wpt/IndexedDB/idbobjectstore_getAll.html [ Failure Timeout ]
+Bug(none) external/wpt/IndexedDB/idbobjectstore_getAllKeys.html [ Failure Timeout ]
 Bug(none) external/wpt/IndexedDB/idbobjectstore_getKey.html [ Failure ]
+Bug(none) external/wpt/IndexedDB/idbobjectstore_openCursor.htm [ Failure ]
 Bug(none) external/wpt/IndexedDB/idbobjectstore_openCursor_invalid.htm [ Failure ]
+Bug(none) external/wpt/IndexedDB/idbobjectstore_put.htm [ Failure ]
 Bug(none) external/wpt/IndexedDB/idbobjectstore_put2.htm [ Timeout ]
-Bug(none) external/wpt/IndexedDB/idbtransaction_objectStoreNames.html [ Timeout ]
+Bug(none) external/wpt/IndexedDB/idbobjectstore_put3.htm [ Failure ]
+Bug(none) external/wpt/IndexedDB/idbobjectstore_put4.htm [ Failure ]
+Bug(none) external/wpt/IndexedDB/idbtransaction_objectStoreNames.html [ Failure Timeout ]
+Bug(none) external/wpt/IndexedDB/index_sort_order.htm [ Failure ]
 Bug(none) external/wpt/IndexedDB/key_invalid.htm [ Timeout ]
 Bug(none) external/wpt/IndexedDB/keygenerator-constrainterror.htm [ Failure ]
+Bug(none) external/wpt/IndexedDB/keygenerator-overflow.htm [ Failure ]
 Bug(none) external/wpt/IndexedDB/keygenerator.htm [ Failure ]
 Bug(none) external/wpt/IndexedDB/keypath-exceptions.htm [ Failure ]
 Bug(none) external/wpt/IndexedDB/keypath_maxsize.htm [ Failure ]
 Bug(none) external/wpt/IndexedDB/large-nested-cloning.html [ Failure ]
 Bug(none) external/wpt/IndexedDB/large-requests-abort.html [ Failure ]
+Bug(none) external/wpt/IndexedDB/name-scopes.html [ Failure ]
+Bug(none) external/wpt/IndexedDB/parallel-cursors-upgrade.html [ Failure ]
 Bug(none) external/wpt/IndexedDB/request-event-ordering.html [ Failure ]
 Bug(none) external/wpt/IndexedDB/request_bubble-and-capture.htm [ Failure ]
+Bug(none) external/wpt/IndexedDB/transaction-abort-generator-revert.html [ Failure ]
+Bug(none) external/wpt/IndexedDB/transaction-abort-index-metadata-revert.html [ Failure ]
+Bug(none) external/wpt/IndexedDB/transaction-abort-multiple-metadata-revert.html [ Failure ]
 Bug(none) external/wpt/IndexedDB/transaction-create_in_versionchange.htm [ Failure ]
 Bug(none) external/wpt/IndexedDB/transaction-lifetime-empty.html [ Failure ]
+Bug(none) external/wpt/IndexedDB/transaction-requestqueue.htm [ Failure ]
 Bug(none) external/wpt/IndexedDB/transaction_bubble-and-capture.htm [ Failure ]
+Bug(none) external/wpt/IndexedDB/value.htm [ Failure ]
+Bug(none) external/wpt/IndexedDB/value_recursive.htm [ Failure ]
 Bug(none) external/wpt/media-source/mediasource-activesourcebuffers.html [ Timeout ]
 Bug(none) external/wpt/media-source/mediasource-append-buffer.html [ Timeout ]
 Bug(none) external/wpt/media-source/mediasource-appendwindow.html [ Timeout ]
@@ -1349,6 +1396,7 @@
 Bug(none) external/wpt/service-workers/service-worker/update.https.html [ Timeout ]
 Bug(none) external/wpt/service-workers/service-worker/waiting.https.html [ Timeout ]
 Bug(none) external/wpt/service-workers/service-worker/websocket.https.html [ Timeout ]
+Bug(none) external/wpt/service-workers/service-worker/windowclient-navigate.https.html [ Timeout ]
 Bug(none) external/wpt/service-workers/service-worker/worker-interception.https.html [ Timeout ]
 Bug(none) external/wpt/service-workers/service-worker/xhr.https.html [ Timeout ]
 Bug(none) external/wpt/storage/estimate-indexeddb-worker.https.html [ Timeout ]
@@ -1666,9 +1714,11 @@
 Bug(none) fast/forms/select/option-add-crash.html [ Timeout ]
 Bug(none) fast/forms/select/select-set-length-with-mutation-remove.html [ Timeout ]
 Bug(none) fast/frames/content-opacity-1.html [ Failure ]
+Bug(none) fast/frames/frame-navigation.html [ Failure ]
 Bug(none) fast/frames/frame-src-attribute.html [ Timeout ]
 Bug(none) fast/frames/frameset-style-recalc.html [ Failure ]
 Bug(none) fast/frames/negative-remaining-length-crash.html [ Failure ]
+Bug(none) fast/frames/sandboxed-iframe-plugins.html [ Failure ]
 Bug(none) fast/harness/internals-observe-gc.html [ Timeout ]
 Bug(none) fast/harness/perftests/measure-time.html [ Timeout ]
 Bug(none) fast/harness/perftests/runs-per-second-iterations.html [ Timeout ]
@@ -1970,7 +2020,7 @@
 Bug(none) http/tests/fetch/serviceworker/headers-base-https-other-https.html [ Timeout ]
 Bug(none) http/tests/fetch/serviceworker/headers-guard-base-https-other-https.html [ Timeout ]
 Bug(none) http/tests/fetch/serviceworker/headers-guard.html [ Failure Timeout ]
-Bug(none) http/tests/fetch/serviceworker/headers.html [ Failure ]
+Bug(none) http/tests/fetch/serviceworker/headers.html [ Failure Timeout ]
 Bug(none) http/tests/fetch/serviceworker/referrer-base-https-other-https.html [ Timeout ]
 Bug(none) http/tests/fetch/serviceworker/referrer.html [ Failure Timeout ]
 Bug(none) http/tests/fetch/serviceworker/request-base-https-other-https.html [ Timeout ]
@@ -2380,82 +2430,83 @@
 Bug(none) http/tests/navigation/same-and-different-back.html [ Failure ]
 Bug(none) http/tests/navigation/same-url-iframes-defer-crash.html [ Timeout ]
 Bug(none) http/tests/navigation/start-load-during-provisional-loader-detach.html [ Timeout ]
-Bug(none) http/tests/notifications/request-permission-in-service-workers.html [ Failure ]
+Bug(none) http/tests/notifications/request-permission-in-service-workers.html [ Failure Timeout ]
 Bug(none) http/tests/notifications/serviceworker-notification-event.html [ Failure ]
 Bug(none) http/tests/notifications/serviceworker-notification-properties.html [ Failure Timeout ]
-Bug(none) http/tests/notifications/serviceworker-notificationclick-event-action-reflection.html [ Failure ]
-Bug(none) http/tests/notifications/serviceworker-notificationclick-event-data-reflection.html [ Failure ]
+Bug(none) http/tests/notifications/serviceworker-notificationclick-event-action-reflection.html [ Failure Timeout ]
+Bug(none) http/tests/notifications/serviceworker-notificationclick-event-data-reflection.html [ Failure Timeout ]
 Bug(none) http/tests/notifications/serviceworker-notificationclick-event-reply-reflection.html [ Failure Timeout ]
-Bug(none) http/tests/notifications/serviceworker-notificationclick-openwindow-crash.html [ Failure ]
-Bug(none) http/tests/notifications/serviceworker-notificationclose-event-data-reflection.html [ Failure ]
+Bug(none) http/tests/notifications/serviceworker-notificationclick-openwindow-crash.html [ Failure Timeout ]
+Bug(none) http/tests/notifications/serviceworker-notificationclose-event-data-reflection.html [ Failure Timeout ]
 Bug(none) http/tests/notifications/serviceworker-throw-constructor.html [ Failure Timeout ]
-Bug(none) http/tests/notifications/serviceworkerregistration-document-actions-throw.html [ Failure ]
-Bug(none) http/tests/notifications/serviceworkerregistration-document-click.html [ Failure ]
-Bug(none) http/tests/notifications/serviceworkerregistration-document-close.html [ Failure ]
-Bug(none) http/tests/notifications/serviceworkerregistration-document-data-invalid.html [ Failure ]
-Bug(none) http/tests/notifications/serviceworkerregistration-document-data-throw.html [ Failure ]
+Bug(none) http/tests/notifications/serviceworkerregistration-document-actions-throw.html [ Failure Timeout ]
+Bug(none) http/tests/notifications/serviceworkerregistration-document-click.html [ Failure Timeout ]
+Bug(none) http/tests/notifications/serviceworkerregistration-document-close.html [ Failure Timeout ]
+Bug(none) http/tests/notifications/serviceworkerregistration-document-data-invalid.html [ Failure Timeout ]
+Bug(none) http/tests/notifications/serviceworkerregistration-document-data-throw.html [ Failure Timeout ]
 Bug(none) http/tests/notifications/serviceworkerregistration-document-direction.html [ Failure Timeout ]
-Bug(none) http/tests/notifications/serviceworkerregistration-document-fetch-resources.html [ Failure ]
-Bug(none) http/tests/notifications/serviceworkerregistration-document-image-404.html [ Failure ]
-Bug(none) http/tests/notifications/serviceworkerregistration-document-image-redirect-loop.html [ Failure ]
-Bug(none) http/tests/notifications/serviceworkerregistration-document-image-redirect.html [ Failure ]
-Bug(none) http/tests/notifications/serviceworkerregistration-document-image-slow-404.html [ Failure ]
-Bug(none) http/tests/notifications/serviceworkerregistration-document-image-slow.html [ Failure ]
-Bug(none) http/tests/notifications/serviceworkerregistration-document-no-permission.html [ Failure ]
+Bug(none) http/tests/notifications/serviceworkerregistration-document-fetch-resources.html [ Failure Timeout ]
+Bug(none) http/tests/notifications/serviceworkerregistration-document-image-404.html [ Failure Timeout ]
+Bug(none) http/tests/notifications/serviceworkerregistration-document-image-redirect-loop.html [ Failure Timeout ]
+Bug(none) http/tests/notifications/serviceworkerregistration-document-image-redirect.html [ Failure Timeout ]
+Bug(none) http/tests/notifications/serviceworkerregistration-document-image-slow-404.html [ Failure Timeout ]
+Bug(none) http/tests/notifications/serviceworkerregistration-document-image-slow.html [ Failure Timeout ]
+Bug(none) http/tests/notifications/serviceworkerregistration-document-no-permission.html [ Failure Timeout ]
 Bug(none) http/tests/notifications/serviceworkerregistration-document-not-activated.html [ Failure ]
-Bug(none) http/tests/notifications/serviceworkerregistration-document-vibrate-throw.html [ Failure ]
-Bug(none) http/tests/notifications/serviceworkerregistration-get-close.html [ Failure ]
-Bug(none) http/tests/notifications/serviceworkerregistration-get-empty.html [ Failure ]
-Bug(none) http/tests/notifications/serviceworkerregistration-get-filter.html [ Failure ]
-Bug(none) http/tests/notifications/serviceworkerregistration-get-from-service-worker.html [ Failure ]
-Bug(none) http/tests/notifications/serviceworkerregistration-get-replacement.html [ Failure ]
-Bug(none) http/tests/notifications/serviceworkerregistration-get.html [ Failure ]
-Bug(none) http/tests/notifications/serviceworkerregistration-page-notification-fetch-resources.html [ Failure ]
-Bug(none) http/tests/notifications/serviceworkerregistration-service-worker-click.html [ Failure ]
-Bug(none) http/tests/notifications/serviceworkerregistration-service-worker-fetch-resources.html [ Failure ]
-Bug(none) http/tests/notifications/serviceworkerregistration-service-worker-get-filter.html [ Failure ]
-Bug(none) http/tests/notifications/serviceworkerregistration-service-worker-get.html [ Failure ]
-Bug(none) http/tests/notifications/serviceworkerregistration-service-worker-image-404.html [ Failure ]
-Bug(none) http/tests/notifications/serviceworkerregistration-service-worker-image-abort.html [ Failure ]
-Bug(none) http/tests/notifications/serviceworkerregistration-service-worker-image-redirect-loop.html [ Failure ]
-Bug(none) http/tests/notifications/serviceworkerregistration-service-worker-image-redirect.html [ Failure ]
-Bug(none) http/tests/notifications/serviceworkerregistration-service-worker-image-slow-404.html [ Failure ]
-Bug(none) http/tests/notifications/serviceworkerregistration-service-worker-image-slow.html [ Failure ]
-Bug(none) http/tests/notifications/serviceworkerregistration-service-worker-no-permission.html [ Failure ]
+Bug(none) http/tests/notifications/serviceworkerregistration-document-vibrate-throw.html [ Failure Timeout ]
+Bug(none) http/tests/notifications/serviceworkerregistration-get-close.html [ Failure Timeout ]
+Bug(none) http/tests/notifications/serviceworkerregistration-get-empty.html [ Failure Timeout ]
+Bug(none) http/tests/notifications/serviceworkerregistration-get-filter.html [ Failure Timeout ]
+Bug(none) http/tests/notifications/serviceworkerregistration-get-from-service-worker.html [ Failure Timeout ]
+Bug(none) http/tests/notifications/serviceworkerregistration-get-replacement.html [ Failure Timeout ]
+Bug(none) http/tests/notifications/serviceworkerregistration-get.html [ Failure Timeout ]
+Bug(none) http/tests/notifications/serviceworkerregistration-page-notification-fetch-resources.html [ Failure Timeout ]
+Bug(none) http/tests/notifications/serviceworkerregistration-service-worker-click.html [ Failure Timeout ]
+Bug(none) http/tests/notifications/serviceworkerregistration-service-worker-fetch-resources.html [ Failure Timeout ]
+Bug(none) http/tests/notifications/serviceworkerregistration-service-worker-get-filter.html [ Failure Timeout ]
+Bug(none) http/tests/notifications/serviceworkerregistration-service-worker-get.html [ Failure Timeout ]
+Bug(none) http/tests/notifications/serviceworkerregistration-service-worker-image-404.html [ Failure Timeout ]
+Bug(none) http/tests/notifications/serviceworkerregistration-service-worker-image-abort.html [ Failure Timeout ]
+Bug(none) http/tests/notifications/serviceworkerregistration-service-worker-image-redirect-loop.html [ Failure Timeout ]
+Bug(none) http/tests/notifications/serviceworkerregistration-service-worker-image-redirect.html [ Failure Timeout ]
+Bug(none) http/tests/notifications/serviceworkerregistration-service-worker-image-slow-404.html [ Failure Timeout ]
+Bug(none) http/tests/notifications/serviceworkerregistration-service-worker-image-slow.html [ Failure Timeout ]
+Bug(none) http/tests/notifications/serviceworkerregistration-service-worker-no-permission.html [ Failure Timeout ]
 Bug(none) http/tests/origin_trials/sample-api-workers.html [ Failure ]
 Bug(none) http/tests/origin_trials/webexposed/budget-api-origin-trial-interfaces.html [ Failure ]
 Bug(none) http/tests/origin_trials/webexposed/foreignfetch-origin-trial-interfaces.html [ Failure ]
 Bug(none) http/tests/payments/payment-app-interfaces.html [ Failure ]
-Bug(none) http/tests/payments/payment-instruments.html [ Failure ]
-Bug(none) http/tests/payments/payment-request-event.html [ Failure ]
+Bug(none) http/tests/payments/payment-instruments.html [ Failure Timeout ]
+Bug(none) http/tests/payments/payment-request-event.html [ Failure Timeout ]
+Bug(none) http/tests/performance-timing/paint-timing/first-contentful-paint.html [ Failure ]
 Bug(none) http/tests/permissions/test-api-surface.html [ Failure ]
 Bug(none) http/tests/permissions/test-query.html [ Failure ]
-Bug(none) http/tests/push_messaging/application-server-key-format-test.html [ Failure ]
-Bug(none) http/tests/push_messaging/application-server-key-standard-endpoint.html [ Failure ]
-Bug(none) http/tests/push_messaging/get-subscription-in-document.html [ Failure ]
-Bug(none) http/tests/push_messaging/get-subscription-in-service-worker.html [ Failure ]
+Bug(none) http/tests/push_messaging/application-server-key-format-test.html [ Failure Timeout ]
+Bug(none) http/tests/push_messaging/application-server-key-standard-endpoint.html [ Failure Timeout ]
+Bug(none) http/tests/push_messaging/get-subscription-in-document.html [ Failure Timeout ]
+Bug(none) http/tests/push_messaging/get-subscription-in-service-worker.html [ Failure Timeout ]
 Bug(none) http/tests/push_messaging/permission-state-denied-in-document.html [ Failure ]
-Bug(none) http/tests/push_messaging/permission-state-denied-in-service-worker.html [ Failure ]
+Bug(none) http/tests/push_messaging/permission-state-denied-in-service-worker.html [ Failure Timeout ]
 Bug(none) http/tests/push_messaging/permission-state-exception-in-document.html [ Failure ]
-Bug(none) http/tests/push_messaging/permission-state-exception-in-service-worker.html [ Failure ]
-Bug(none) http/tests/push_messaging/permission-state-granted-in-service-worker.html [ Failure ]
+Bug(none) http/tests/push_messaging/permission-state-exception-in-service-worker.html [ Failure Timeout ]
+Bug(none) http/tests/push_messaging/permission-state-granted-in-service-worker.html [ Failure Timeout ]
 Bug(none) http/tests/push_messaging/permission-state-prompt-in-document.html [ Failure ]
-Bug(none) http/tests/push_messaging/permission-state-prompt-in-service-worker.html [ Failure ]
-Bug(none) http/tests/push_messaging/push-subscription-options.html [ Failure ]
-Bug(none) http/tests/push_messaging/push-subscription-stringification.html [ Failure ]
-Bug(none) http/tests/push_messaging/pushevent-extendable-event.html [ Failure ]
-Bug(none) http/tests/push_messaging/pushmessagedata.html [ Failure ]
-Bug(none) http/tests/push_messaging/subscribe-encryption-public-key.html [ Failure ]
-Bug(none) http/tests/push_messaging/subscribe-failure-mismatched-sender-id.html [ Failure ]
-Bug(none) http/tests/push_messaging/subscribe-failure-no-manifest-in-service-worker.html [ Failure ]
-Bug(none) http/tests/push_messaging/subscribe-failure-permission-default-in-service-worker.html [ Failure ]
-Bug(none) http/tests/push_messaging/subscribe-failure-permission-denied-in-document.html [ Failure ]
-Bug(none) http/tests/push_messaging/subscribe-failure-permission-denied-in-service-worker.html [ Failure ]
+Bug(none) http/tests/push_messaging/permission-state-prompt-in-service-worker.html [ Failure Timeout ]
+Bug(none) http/tests/push_messaging/push-subscription-options.html [ Failure Timeout ]
+Bug(none) http/tests/push_messaging/push-subscription-stringification.html [ Failure Timeout ]
+Bug(none) http/tests/push_messaging/pushevent-extendable-event.html [ Failure Timeout ]
+Bug(none) http/tests/push_messaging/pushmessagedata.html [ Failure Timeout ]
+Bug(none) http/tests/push_messaging/subscribe-encryption-public-key.html [ Failure Timeout ]
+Bug(none) http/tests/push_messaging/subscribe-failure-mismatched-sender-id.html [ Failure Timeout ]
+Bug(none) http/tests/push_messaging/subscribe-failure-no-manifest-in-service-worker.html [ Failure Timeout ]
+Bug(none) http/tests/push_messaging/subscribe-failure-permission-default-in-service-worker.html [ Failure Timeout ]
+Bug(none) http/tests/push_messaging/subscribe-failure-permission-denied-in-document.html [ Failure Timeout ]
+Bug(none) http/tests/push_messaging/subscribe-failure-permission-denied-in-service-worker.html [ Failure Timeout ]
 Bug(none) http/tests/push_messaging/subscribe-failure-worker-not-activated.html [ Failure ]
-Bug(none) http/tests/push_messaging/subscribe-success-in-document.html [ Failure ]
-Bug(none) http/tests/push_messaging/subscribe-success-in-service-worker.html [ Failure ]
-Bug(none) http/tests/push_messaging/unsubscribe-in-document.html [ Failure ]
-Bug(none) http/tests/push_messaging/unsubscribe-in-service-worker.html [ Failure ]
+Bug(none) http/tests/push_messaging/subscribe-success-in-document.html [ Failure Timeout ]
+Bug(none) http/tests/push_messaging/subscribe-success-in-service-worker.html [ Failure Timeout ]
+Bug(none) http/tests/push_messaging/unsubscribe-in-document.html [ Failure Timeout ]
+Bug(none) http/tests/push_messaging/unsubscribe-in-service-worker.html [ Failure Timeout ]
 Bug(none) http/tests/security/contentSecurityPolicy/1.1/form-action-src-get-blocked-with-redirect.html [ Failure ]
 Bug(none) http/tests/security/contentSecurityPolicy/1.1/form-action-src-redirect-blocked.html [ Failure ]
 Bug(none) http/tests/security/contentSecurityPolicy/block-mixed-content-hides-warning.html [ Failure ]
@@ -2705,7 +2756,6 @@
 Bug(none) http/tests/webaudio/autoplay-crossorigin.html [ Timeout ]
 Bug(none) http/tests/webfont/crbug-655076.html [ Timeout ]
 Bug(none) http/tests/webfont/font-display-intervention.html [ Timeout ]
-Bug(none) external/wpt/css-font-display/font-display.html [ Timeout ]
 Bug(none) http/tests/webfont/same-origin-credentials.html [ Failure ]
 Bug(none) http/tests/webfont/slow-loading.html [ Timeout ]
 Bug(none) http/tests/websocket/bufferedAmount-after-send.html [ Failure ]
@@ -2926,6 +2976,7 @@
 Bug(none) inspector-protocol/heap-profiler/heap-snapshot-with-active-dom-object.html [ Failure ]
 Bug(none) inspector-protocol/heap-profiler/heap-snapshot-with-detached-dom-tree.html [ Failure ]
 Bug(none) inspector-protocol/heap-profiler/heap-snapshot-with-event-listener.html [ Failure ]
+Bug(none) inspector-protocol/layout-fonts/unicode-range-combining-chars-fallback.html [ Failure ]
 Bug(none) inspector-protocol/network/resource-type.html [ Timeout ]
 Bug(none) inspector-protocol/network/websocket-initiator.html [ Timeout ]
 Bug(none) inspector-protocol/worker/exception-from-worker-contains-stack.html [ Timeout ]
@@ -3091,6 +3142,7 @@
 Bug(none) inspector/tabbed-pane-closeable-persistence.html [ Timeout ]
 Bug(none) inspector/tabbed-pane-max-tab-width-calculation.html [ Timeout ]
 Bug(none) inspector/tracing-session-id.html [ Timeout ]
+Bug(none) inspector/tracing/console-timeline.html [ Failure ]
 Bug(none) inspector/tracing/timeline-network/timeline-network-resource-details.html [ Failure ]
 Bug(none) inspector/tracing/timeline-network/timeline-network-resource.html [ Failure ]
 Bug(none) inspector/user-agent-setting.html [ Timeout ]
@@ -3235,7 +3287,7 @@
 Bug(none) media/sources-fallback-codecs.html [ Timeout ]
 Bug(none) media/track/css-cue-for-video-in-shadow-2.html [ Timeout ]
 Bug(none) media/track/css-cue-for-video-in-shadow.html [ Timeout ]
-Bug(none) media/track/cue-style-invalidation.html [ Timeout ]
+Bug(none) media/track/cue-style-invalidation.html [ Failure Timeout ]
 Bug(none) media/track/regions-webvtt/vtt-region-display.html [ Timeout ]
 Bug(none) media/track/regions-webvtt/vtt-region-dom-layout.html [ Timeout ]
 Bug(none) media/track/regions-webvtt/vtt-region-parser.html [ Timeout ]
@@ -3262,7 +3314,7 @@
 Bug(none) media/track/track-cue-rendering-overscan.html [ Timeout ]
 Bug(none) media/track/track-cue-rendering-position-auto-rtl.html [ Timeout ]
 Bug(none) media/track/track-cue-rendering-position-auto.html [ Timeout ]
-Bug(none) media/track/track-cue-rendering-rtl.html [ Timeout ]
+Bug(none) media/track/track-cue-rendering-rtl.html [ Failure Timeout ]
 Bug(none) media/track/track-cue-rendering-snap-to-lines-not-set.html [ Timeout ]
 Bug(none) media/track/track-cue-rendering-transformed-video.html [ Timeout ]
 Bug(none) media/track/track-cue-rendering-tree-is-removed-properly.html [ Timeout ]
@@ -3487,6 +3539,8 @@
 Bug(none) payments/payment-request-interface.html [ Failure ]
 Bug(none) payments/promises-keep-request-alive.html [ Timeout ]
 Bug(none) plugins/createScriptableObject-before-start.html [ Failure ]
+Bug(none) plugins/focus-change-3-change-blur.html [ Failure ]
+Bug(none) plugins/focus-change-4-change-focus-and-blur.html [ Failure ]
 Bug(none) plugins/gesture-events-scrolled.html [ Timeout Failure ]
 Bug(none) plugins/gesture-events.html [ Timeout ]
 Bug(none) plugins/iframe-plugin-bgcolor.html [ Timeout ]
@@ -3562,6 +3616,7 @@
 Bug(none) virtual/android/media/mediadocument/media-document-with-download-button.html [ Failure Timeout ]
 Bug(none) virtual/disable-spinvalidation/compositing/animation/busy-indicator.html [ Timeout ]
 Bug(none) virtual/disable-spinvalidation/compositing/iframes/iframe-in-composited-layer.html [ Failure Timeout ]
+Bug(none) virtual/disable-spinvalidation/compositing/overflow/do-not-crash-use-after-free-update-widget-positions.html [ Failure ]
 Bug(none) virtual/disable-spinvalidation/compositing/video/video-reflection.html [ Timeout ]
 Bug(none) virtual/disable-spinvalidation/paint/invalidation/media-audio-no-spurious-repaints.html [ Timeout ]
 Bug(none) virtual/disable-spinvalidation/paint/invalidation/video-mute-repaint.html [ Timeout ]
@@ -3821,7 +3876,7 @@
 Bug(none) virtual/mojo-loading/http/tests/fetch/serviceworker/fetch.html [ Failure Timeout ]
 Bug(none) virtual/mojo-loading/http/tests/fetch/serviceworker/filtered-response-base-https-other-https.html [ Timeout ]
 Bug(none) virtual/mojo-loading/http/tests/fetch/serviceworker/filtered-response-other-https.html [ Failure Timeout ]
-Bug(none) virtual/mojo-loading/http/tests/fetch/serviceworker/filtered-response.html [ Failure ]
+Bug(none) virtual/mojo-loading/http/tests/fetch/serviceworker/filtered-response.html [ Failure Timeout ]
 Bug(none) virtual/mojo-loading/http/tests/fetch/serviceworker/headers-base-https-other-https.html [ Timeout ]
 Bug(none) virtual/mojo-loading/http/tests/fetch/serviceworker/headers-guard-base-https-other-https.html [ Timeout ]
 Bug(none) virtual/mojo-loading/http/tests/fetch/serviceworker/headers-guard.html [ Timeout Failure ]
@@ -4027,6 +4082,7 @@
 Bug(none) virtual/mojo-loading/http/tests/inspector-protocol/request-mixed-content-status-blockable.html [ Timeout ]
 Bug(none) virtual/mojo-loading/http/tests/inspector-protocol/request-mixed-content-status-none.html [ Timeout ]
 Bug(none) virtual/mojo-loading/http/tests/inspector-protocol/request-mixed-content-status-optionally-blockable.html [ Timeout ]
+Bug(none) virtual/mojo-loading/http/tests/inspector-protocol/request-referrer-policy.html [ Timeout ]
 Bug(none) virtual/mojo-loading/http/tests/inspector/appcache/appcache-iframe-manifests.html [ Timeout ]
 Bug(none) virtual/mojo-loading/http/tests/inspector/appcache/appcache-manifest-with-non-existing-file.html [ Timeout ]
 Bug(none) virtual/mojo-loading/http/tests/inspector/appcache/appcache-swap.html [ Timeout ]
@@ -4044,7 +4100,7 @@
 Bug(none) virtual/mojo-loading/http/tests/inspector/network/network-columns-sorted.html [ Timeout ]
 Bug(none) virtual/mojo-loading/http/tests/inspector/network/network-content-replacement-xhr.html [ Timeout ]
 Bug(none) virtual/mojo-loading/http/tests/inspector/network/network-cyrillic-xhr.html [ Timeout ]
-Bug(none) virtual/mojo-loading/http/tests/inspector/network/network-datareceived.html [ Failure ]
+Bug(none) virtual/mojo-loading/http/tests/inspector/network/network-datareceived.html [ Failure Timeout ]
 Bug(none) virtual/mojo-loading/http/tests/inspector/network/network-disable-cache-memory.html [ Timeout ]
 Bug(none) virtual/mojo-loading/http/tests/inspector/network/network-empty-xhr.html [ Timeout ]
 Bug(none) virtual/mojo-loading/http/tests/inspector/network/network-filters.html [ Timeout Failure ]
@@ -4209,6 +4265,7 @@
 Bug(none) virtual/mojo-loading/http/tests/misc/tests-finishing-simultaneously.html [ Timeout ]
 Bug(none) virtual/mojo-loading/http/tests/misc/webtiming-ssl.php [ Timeout ]
 Bug(none) virtual/mojo-loading/http/tests/misc/xhtml.php [ Failure ]
+Bug(none) virtual/mojo-loading/http/tests/navigation/image-load-in-unload-handler.html [ Failure ]
 Bug(none) virtual/mojo-loading/http/tests/navigation/multiple-back-forward-entries.html [ Timeout ]
 Bug(none) virtual/mojo-loading/http/tests/navigation/navigation-interrupted-by-fragment.html [ Timeout ]
 Bug(none) virtual/mojo-loading/http/tests/navigation/onload-navigation-iframe-2.html [ Timeout ]
@@ -4216,9 +4273,12 @@
 Bug(none) virtual/mojo-loading/http/tests/navigation/onload-navigation-iframe.html [ Timeout ]
 Bug(none) virtual/mojo-loading/http/tests/navigation/ping-cookie.html [ Failure ]
 Bug(none) virtual/mojo-loading/http/tests/navigation/ping-cross-origin-from-https.html [ Timeout ]
+Bug(none) virtual/mojo-loading/http/tests/navigation/post-basic.html [ Failure ]
+Bug(none) virtual/mojo-loading/http/tests/navigation/post-frames-goback1.html [ Failure ]
 Bug(none) virtual/mojo-loading/http/tests/navigation/pushstate-whitelisted-at-blob-denied.html [ Timeout ]
 Bug(none) virtual/mojo-loading/http/tests/navigation/redirect-on-back-updates-history-item.html [ Timeout ]
 Bug(none) virtual/mojo-loading/http/tests/navigation/redirect-on-reload-updates-history-item.html [ Timeout ]
+Bug(none) virtual/mojo-loading/http/tests/navigation/rename-subframe-goback.html [ Failure ]
 Bug(none) virtual/mojo-loading/http/tests/navigation/same-and-different-back.html [ Failure ]
 Bug(none) virtual/mojo-loading/http/tests/navigation/same-url-iframes-defer-crash.html [ Timeout ]
 Bug(none) virtual/mojo-loading/http/tests/navigation/start-load-during-provisional-loader-detach.html [ Timeout ]
@@ -4266,38 +4326,38 @@
 Bug(none) virtual/mojo-loading/http/tests/notifications/serviceworkerregistration-service-worker-no-permission.html [ Failure Timeout ]
 Bug(none) virtual/mojo-loading/http/tests/origin_trials/sample-api-workers.html [ Failure ]
 Bug(none) virtual/mojo-loading/http/tests/origin_trials/webexposed/budget-api-origin-trial-interfaces.html [ Failure ]
-Bug(none) virtual/mojo-loading/http/tests/origin_trials/webexposed/foreignfetch-origin-trial-interfaces.html [ Failure ]
-Bug(none) virtual/mojo-loading/http/tests/payments/payment-app-interfaces.html [ Failure ]
-Bug(none) virtual/mojo-loading/http/tests/payments/payment-instruments.html [ Failure ]
-Bug(none) virtual/mojo-loading/http/tests/payments/payment-request-event.html [ Failure ]
+Bug(none) virtual/mojo-loading/http/tests/origin_trials/webexposed/foreignfetch-origin-trial-interfaces.html [ Failure Timeout ]
+Bug(none) virtual/mojo-loading/http/tests/payments/payment-app-interfaces.html [ Failure Timeout ]
+Bug(none) virtual/mojo-loading/http/tests/payments/payment-instruments.html [ Failure Timeout ]
+Bug(none) virtual/mojo-loading/http/tests/payments/payment-request-event.html [ Failure Timeout ]
 Bug(none) virtual/mojo-loading/http/tests/permissions/test-api-surface.html [ Failure ]
 Bug(none) virtual/mojo-loading/http/tests/permissions/test-query.html [ Failure ]
-Bug(none) virtual/mojo-loading/http/tests/push_messaging/application-server-key-format-test.html [ Failure ]
-Bug(none) virtual/mojo-loading/http/tests/push_messaging/application-server-key-standard-endpoint.html [ Failure ]
-Bug(none) virtual/mojo-loading/http/tests/push_messaging/get-subscription-in-document.html [ Failure ]
-Bug(none) virtual/mojo-loading/http/tests/push_messaging/get-subscription-in-service-worker.html [ Failure ]
+Bug(none) virtual/mojo-loading/http/tests/push_messaging/application-server-key-format-test.html [ Failure Timeout ]
+Bug(none) virtual/mojo-loading/http/tests/push_messaging/application-server-key-standard-endpoint.html [ Failure Timeout ]
+Bug(none) virtual/mojo-loading/http/tests/push_messaging/get-subscription-in-document.html [ Failure Timeout ]
+Bug(none) virtual/mojo-loading/http/tests/push_messaging/get-subscription-in-service-worker.html [ Failure Timeout ]
 Bug(none) virtual/mojo-loading/http/tests/push_messaging/permission-state-denied-in-document.html [ Failure ]
-Bug(none) virtual/mojo-loading/http/tests/push_messaging/permission-state-denied-in-service-worker.html [ Failure ]
+Bug(none) virtual/mojo-loading/http/tests/push_messaging/permission-state-denied-in-service-worker.html [ Failure Timeout ]
 Bug(none) virtual/mojo-loading/http/tests/push_messaging/permission-state-exception-in-document.html [ Failure ]
-Bug(none) virtual/mojo-loading/http/tests/push_messaging/permission-state-exception-in-service-worker.html [ Failure ]
-Bug(none) virtual/mojo-loading/http/tests/push_messaging/permission-state-granted-in-service-worker.html [ Failure ]
+Bug(none) virtual/mojo-loading/http/tests/push_messaging/permission-state-exception-in-service-worker.html [ Failure Timeout ]
+Bug(none) virtual/mojo-loading/http/tests/push_messaging/permission-state-granted-in-service-worker.html [ Failure Timeout ]
 Bug(none) virtual/mojo-loading/http/tests/push_messaging/permission-state-prompt-in-document.html [ Failure ]
-Bug(none) virtual/mojo-loading/http/tests/push_messaging/permission-state-prompt-in-service-worker.html [ Failure ]
-Bug(none) virtual/mojo-loading/http/tests/push_messaging/push-subscription-options.html [ Failure ]
-Bug(none) virtual/mojo-loading/http/tests/push_messaging/push-subscription-stringification.html [ Failure ]
-Bug(none) virtual/mojo-loading/http/tests/push_messaging/pushevent-extendable-event.html [ Failure ]
-Bug(none) virtual/mojo-loading/http/tests/push_messaging/pushmessagedata.html [ Failure ]
-Bug(none) virtual/mojo-loading/http/tests/push_messaging/subscribe-encryption-public-key.html [ Failure ]
-Bug(none) virtual/mojo-loading/http/tests/push_messaging/subscribe-failure-mismatched-sender-id.html [ Failure ]
-Bug(none) virtual/mojo-loading/http/tests/push_messaging/subscribe-failure-no-manifest-in-service-worker.html [ Failure ]
-Bug(none) virtual/mojo-loading/http/tests/push_messaging/subscribe-failure-permission-default-in-service-worker.html [ Failure ]
-Bug(none) virtual/mojo-loading/http/tests/push_messaging/subscribe-failure-permission-denied-in-document.html [ Failure ]
-Bug(none) virtual/mojo-loading/http/tests/push_messaging/subscribe-failure-permission-denied-in-service-worker.html [ Failure ]
+Bug(none) virtual/mojo-loading/http/tests/push_messaging/permission-state-prompt-in-service-worker.html [ Failure Timeout ]
+Bug(none) virtual/mojo-loading/http/tests/push_messaging/push-subscription-options.html [ Failure Timeout ]
+Bug(none) virtual/mojo-loading/http/tests/push_messaging/push-subscription-stringification.html [ Failure Timeout ]
+Bug(none) virtual/mojo-loading/http/tests/push_messaging/pushevent-extendable-event.html [ Failure Timeout ]
+Bug(none) virtual/mojo-loading/http/tests/push_messaging/pushmessagedata.html [ Failure Timeout ]
+Bug(none) virtual/mojo-loading/http/tests/push_messaging/subscribe-encryption-public-key.html [ Failure Timeout ]
+Bug(none) virtual/mojo-loading/http/tests/push_messaging/subscribe-failure-mismatched-sender-id.html [ Failure Timeout ]
+Bug(none) virtual/mojo-loading/http/tests/push_messaging/subscribe-failure-no-manifest-in-service-worker.html [ Failure Timeout ]
+Bug(none) virtual/mojo-loading/http/tests/push_messaging/subscribe-failure-permission-default-in-service-worker.html [ Failure Timeout ]
+Bug(none) virtual/mojo-loading/http/tests/push_messaging/subscribe-failure-permission-denied-in-document.html [ Failure Timeout ]
+Bug(none) virtual/mojo-loading/http/tests/push_messaging/subscribe-failure-permission-denied-in-service-worker.html [ Failure Timeout ]
 Bug(none) virtual/mojo-loading/http/tests/push_messaging/subscribe-failure-worker-not-activated.html [ Failure ]
-Bug(none) virtual/mojo-loading/http/tests/push_messaging/subscribe-success-in-document.html [ Failure ]
-Bug(none) virtual/mojo-loading/http/tests/push_messaging/subscribe-success-in-service-worker.html [ Failure ]
-Bug(none) virtual/mojo-loading/http/tests/push_messaging/unsubscribe-in-document.html [ Failure ]
-Bug(none) virtual/mojo-loading/http/tests/push_messaging/unsubscribe-in-service-worker.html [ Failure ]
+Bug(none) virtual/mojo-loading/http/tests/push_messaging/subscribe-success-in-document.html [ Failure Timeout ]
+Bug(none) virtual/mojo-loading/http/tests/push_messaging/subscribe-success-in-service-worker.html [ Failure Timeout ]
+Bug(none) virtual/mojo-loading/http/tests/push_messaging/unsubscribe-in-document.html [ Failure Timeout ]
+Bug(none) virtual/mojo-loading/http/tests/push_messaging/unsubscribe-in-service-worker.html [ Failure Timeout ]
 Bug(none) virtual/mojo-loading/http/tests/security/contentSecurityPolicy/1.1/form-action-src-get-blocked-with-redirect.html [ Failure ]
 Bug(none) virtual/mojo-loading/http/tests/security/contentSecurityPolicy/1.1/form-action-src-redirect-blocked.html [ Failure Timeout ]
 Bug(none) virtual/mojo-loading/http/tests/security/contentSecurityPolicy/block-mixed-content-hides-warning.html [ Failure ]
@@ -4456,7 +4516,7 @@
 Bug(none) virtual/mojo-loading/http/tests/security/secureContexts/unauthenticated_srcdoc.html [ Timeout ]
 Bug(none) virtual/mojo-loading/http/tests/security/secureContexts/unauthenticated_worker.html [ Timeout ]
 Bug(none) virtual/mojo-loading/http/tests/security/suborigins/suborigin-cookies.php [ Timeout ]
-Bug(none) virtual/mojo-loading/http/tests/security/suborigins/suborigin-service-worker-fetch-event.html [ Timeout ]
+Bug(none) virtual/mojo-loading/http/tests/security/suborigins/suborigin-service-worker-fetch-event.html [ Failure Timeout ]
 Bug(none) virtual/mojo-loading/http/tests/security/suborigins/suborigin-service-worker-no-xorigin-caching.html [ Timeout ]
 Bug(none) virtual/mojo-loading/http/tests/security/suborigins/suborigin-unsafe-cookies.php [ Timeout ]
 Bug(none) virtual/mojo-loading/http/tests/security/upgrade-insecure-requests/basic-upgrade.https.html [ Timeout ]
@@ -4474,9 +4534,10 @@
 Bug(none) virtual/mojo-loading/http/tests/security/xssAuditor/base-href-unterminated.html [ Timeout ]
 Bug(none) virtual/mojo-loading/http/tests/security/xssAuditor/no-protection-script-tag.html [ Timeout ]
 Bug(none) virtual/mojo-loading/http/tests/sendbeacon/beacon-cookie.html [ Failure ]
+Bug(none) virtual/mojo-loading/http/tests/sendbeacon/beacon-cross-origin.html [ Failure ]
 Bug(none) virtual/mojo-loading/http/tests/sendbeacon/beacon-cross-origin.https.html [ Timeout ]
 Bug(none) virtual/mojo-loading/http/tests/sendbeacon/beacon-same-origin.html [ Failure ]
-Bug(none) virtual/mojo-loading/http/tests/serviceworker/chromium.fetch-canvas-tainting.html [ Failure ]
+Bug(none) virtual/mojo-loading/http/tests/serviceworker/chromium.fetch-canvas-tainting.html [ Failure Timeout ]
 Bug(none) virtual/mojo-loading/http/tests/serviceworker/chromium.fetch-cors-xhr.html [ Failure ]
 Bug(none) virtual/mojo-loading/http/tests/serviceworker/chromium.fetch-csp.html [ Failure ]
 Bug(none) virtual/mojo-loading/http/tests/serviceworker/chromium.fetch-event-async-respond-with.html [ Failure ]
@@ -4484,14 +4545,16 @@
 Bug(none) virtual/mojo-loading/http/tests/serviceworker/chromium.fetch-event-respond-with-stops-propagation.html [ Failure ]
 Bug(none) virtual/mojo-loading/http/tests/serviceworker/chromium.fetch-request-css-base-url.html [ Failure ]
 Bug(none) virtual/mojo-loading/http/tests/serviceworker/chromium.fetch-request-resources.html [ Failure ]
-Bug(none) virtual/mojo-loading/http/tests/serviceworker/chromium.fetch-request-xhr.html [ Failure ]
-Bug(none) virtual/mojo-loading/http/tests/serviceworker/chromium.fetch-response-xhr.html [ Failure ]
+Bug(none) virtual/mojo-loading/http/tests/serviceworker/chromium.fetch-request-xhr.html [ Failure Timeout ]
+Bug(none) virtual/mojo-loading/http/tests/serviceworker/chromium.fetch-response-xhr.html [ Failure Timeout ]
 Bug(none) virtual/mojo-loading/http/tests/serviceworker/chromium.getregistrations.html [ Timeout ]
+Bug(none) virtual/mojo-loading/http/tests/serviceworker/chromium.http-to-https-redirect-and-register-iframe.html [ Crash ]
 Bug(none) virtual/mojo-loading/http/tests/serviceworker/chromium.performance-timeline.html [ Failure ]
-Bug(none) virtual/mojo-loading/http/tests/serviceworker/chromium.redirected-response.html [ Failure ]
+Bug(none) virtual/mojo-loading/http/tests/serviceworker/chromium.redirected-response.html [ Failure Timeout ]
 Bug(none) virtual/mojo-loading/http/tests/serviceworker/chromium.referer.html [ Failure ]
 Bug(none) virtual/mojo-loading/http/tests/serviceworker/chromium.register-wait-forever-in-install-worker.html [ Failure ]
 Bug(none) virtual/mojo-loading/http/tests/serviceworker/chromium.request-end-to-end.html [ Failure ]
+Bug(none) virtual/mojo-loading/http/tests/serviceworker/chromium.update-served-from-cache.html [ Timeout ]
 Bug(none) virtual/mojo-loading/http/tests/serviceworker/chromium/claim-with-redirect.html [ Failure ]
 Bug(none) virtual/mojo-loading/http/tests/serviceworker/chromium/clients-openwindow.html [ Failure ]
 Bug(none) virtual/mojo-loading/http/tests/serviceworker/chromium/css-import-crash.html [ Failure ]
@@ -4530,7 +4593,7 @@
 Bug(none) virtual/mojo-loading/http/tests/serviceworker/chromium/window-close-during-registration.html [ Failure ]
 Bug(none) virtual/mojo-loading/http/tests/serviceworker/chromium/windowclient-focus.html [ Failure ]
 Bug(none) virtual/mojo-loading/http/tests/serviceworker/chromium/xhr-is-not-exposed-to-service-workers.html [ Failure ]
-Bug(none) virtual/mojo-loading/http/tests/serviceworker/immutable-prototype-serviceworker.html [ Failure ]
+Bug(none) virtual/mojo-loading/http/tests/serviceworker/immutable-prototype-serviceworker.html [ Failure Timeout ]
 Bug(none) virtual/mojo-loading/http/tests/serviceworker/indexeddb.html [ Failure ]
 Bug(none) virtual/mojo-loading/http/tests/serviceworker/insecure-parent-frame.html [ Failure ]
 Bug(none) virtual/mojo-loading/http/tests/serviceworker/navigation-preload/chromium/navigation-preload-after-gc.html [ Failure ]
@@ -5147,7 +5210,9 @@
 Bug(none) virtual/stable/http/tests/serviceworker/webexposed/global-interface-listing-service-worker.html [ Failure ]
 Bug(none) virtual/stable/media/stable/video-object-fit-stable.html [ Timeout ]
 Bug(none) virtual/threaded/animations/animation-end-event-destroy-renderer.html [ Timeout ]
+Bug(none) virtual/threaded/animations/delay-start-event.html [ Failure ]
 Bug(none) virtual/threaded/animations/responsive-neutral-keyframe.html [ Timeout ]
+Bug(none) virtual/threaded/animations/svg-animation-affects-use-elements.html [ Timeout ]
 Bug(none) virtual/threaded/animations/visited-link-color-animation.html [ Timeout ]
 Bug(none) virtual/threaded/fast/compositorworker/animation-worklet-animator-registration.html [ Timeout ]
 Bug(none) virtual/threaded/fast/compositorworker/basic-plumbing-worker-to-main.html [ Failure Timeout ]
@@ -5163,6 +5228,7 @@
 Bug(none) virtual/threaded/transitions/mismatched-shadow-styles.html [ Timeout ]
 Bug(none) virtual/threaded/transitions/move-after-transition.html [ Timeout ]
 Bug(none) virtual/threaded/transitions/transition-end-event-multiple-03.html [ Failure Timeout ]
+Bug(none) virtual/threaded/transitions/transition-end-event-rendering.html [ Timeout ]
 Bug(none) virtual/wheelscrolllatching/fast/events/wheel/mainthread-touchpad-fling-latching.html [ Failure Timeout ]
 Bug(none) vr/events_vrdisplayactivate.html [ Timeout ]
 Bug(none) vr/events_vrdisplayconnect.html [ Timeout ]
diff --git a/third_party/WebKit/LayoutTests/TestExpectations b/third_party/WebKit/LayoutTests/TestExpectations
index 9dee835..81658f9 100644
--- a/third_party/WebKit/LayoutTests/TestExpectations
+++ b/third_party/WebKit/LayoutTests/TestExpectations
@@ -120,8 +120,6 @@
 # ====== Paint team owned tests to here ======
 
 #### external/wpt/css/css-position-3
-crbug.com/702927 external/wpt/css/css-position-3/position-sticky-table-tfoot-bottom.html [ Failure ]
-crbug.com/702927 external/wpt/css/css-position-3/position-sticky-table-thead-top.html [ Failure ]
 crbug.com/702927 external/wpt/css/css-position-3/position-sticky-table-tr-top.html [ Failure ]
 crbug.com/702927 external/wpt/css/css-position-3/position-sticky-table-tr-bottom.html [ Failure ]
 
@@ -1985,6 +1983,10 @@
 crbug.com/594639 external/wpt/html/semantics/scripting-1/the-script-element/module/evaluation-error-3.html [ Failure ]
 crbug.com/594639 external/wpt/html/semantics/scripting-1/the-script-element/module/evaluation-error-4.html [ Failure ]
 crbug.com/594639 external/wpt/html/semantics/scripting-1/the-script-element/module/specifier-error.html [ Failure ]
+crbug.com/721070 http/tests/htmlimports/import-and-script-module-inline.html [ Crash ]
+crbug.com/721070 http/tests/htmlimports/import-and-script-module-external.html [ Crash ]
+crbug.com/721070 virtual/mojo-loading/http/tests/htmlimports/import-and-script-module-inline.html [ Crash ]
+crbug.com/721070 virtual/mojo-loading/http/tests/htmlimports/import-and-script-module-external.html [ Crash ]
 
 # This test has a failure console message with specific performance
 # numbers so a consistent baseline cannot be added. This test could be
@@ -2134,6 +2136,7 @@
 crbug.com/724251 virtual/threaded/animations/svg-attribute-interpolation/svg-startOffset-interpolation.html [ Failure Pass ]
 
 # ====== New tests from wpt-importer added here ======
+crbug.com/626703 external/wpt/scroll-into-view/check-scroll-position.html [ Timeout ]
 crbug.com/626703 [ Android Linux Mac Retina Win ] external/wpt/2dcontext/building-paths/canvas_complexshapes_arcto_001.htm [ Failure ]
 crbug.com/626703 [ Android Linux Mac Retina Win ] external/wpt/2dcontext/building-paths/canvas_complexshapes_beziercurveto_001.htm [ Failure ]
 crbug.com/626703 [ Android Linux Mac Retina Win ] external/wpt/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_11.html [ Failure ]
diff --git a/third_party/WebKit/LayoutTests/external/WPT_BASE_MANIFEST.json b/third_party/WebKit/LayoutTests/external/WPT_BASE_MANIFEST.json
index 11622f9..96816a1 100644
--- a/third_party/WebKit/LayoutTests/external/WPT_BASE_MANIFEST.json
+++ b/third_party/WebKit/LayoutTests/external/WPT_BASE_MANIFEST.json
@@ -3301,6 +3301,18 @@
      {}
     ]
    ],
+   "pointerevents/pointerlock/pointerevent_pointerlock_after_pointercapture-manual.html": [
+    [
+     "/pointerevents/pointerlock/pointerevent_pointerlock_after_pointercapture-manual.html",
+     {}
+    ]
+   ],
+   "pointerevents/pointerlock/pointerevent_pointerlock_supercedes_capture-manual.html": [
+    [
+     "/pointerevents/pointerlock/pointerevent_pointerlock_supercedes_capture-manual.html",
+     {}
+    ]
+   ],
    "pointerlock/movementX_Y_basic-manual.html": [
     [
      "/pointerlock/movementX_Y_basic-manual.html",
@@ -29485,9 +29497,9 @@
      {}
     ]
    ],
-   "css/css-grid-1/grid-items/grid-inline-items-001.xht": [
+   "css/css-grid-1/grid-items/grid-inline-items-001.html": [
     [
-     "/css/css-grid-1/grid-items/grid-inline-items-001.xht",
+     "/css/css-grid-1/grid-items/grid-inline-items-001.html",
      [
       [
        "/css/reference/ref-filled-green-100px-square.xht",
@@ -29497,9 +29509,9 @@
      {}
     ]
    ],
-   "css/css-grid-1/grid-items/grid-inline-items-002.xht": [
+   "css/css-grid-1/grid-items/grid-inline-items-002.html": [
     [
-     "/css/css-grid-1/grid-items/grid-inline-items-002.xht",
+     "/css/css-grid-1/grid-items/grid-inline-items-002.html",
      [
       [
        "/css/reference/ref-filled-green-100px-square.xht",
@@ -29509,9 +29521,9 @@
      {}
     ]
    ],
-   "css/css-grid-1/grid-items/grid-inline-items-003.xht": [
+   "css/css-grid-1/grid-items/grid-inline-items-003.html": [
     [
-     "/css/css-grid-1/grid-items/grid-inline-items-003.xht",
+     "/css/css-grid-1/grid-items/grid-inline-items-003.html",
      [
       [
        "/css/reference/ref-filled-green-100px-square.xht",
@@ -29521,9 +29533,9 @@
      {}
     ]
    ],
-   "css/css-grid-1/grid-items/grid-inline-items-inline-blocks-001.xht": [
+   "css/css-grid-1/grid-items/grid-inline-items-inline-blocks-001.html": [
     [
-     "/css/css-grid-1/grid-items/grid-inline-items-inline-blocks-001.xht",
+     "/css/css-grid-1/grid-items/grid-inline-items-inline-blocks-001.html",
      [
       [
        "/css/reference/ref-filled-green-100px-square.xht",
@@ -29533,69 +29545,69 @@
      {}
     ]
    ],
-   "css/css-grid-1/grid-items/grid-inline-order-property-auto-placement-001.xht": [
+   "css/css-grid-1/grid-items/grid-inline-order-property-auto-placement-001.html": [
     [
-     "/css/css-grid-1/grid-items/grid-inline-order-property-auto-placement-001.xht",
+     "/css/css-grid-1/grid-items/grid-inline-order-property-auto-placement-001.html",
      [
       [
-       "/css/css-grid-1/reference/grid-2x2-blue-yellow-lime-magenta.xht",
+       "/css/css-grid-1/reference/grid-2x2-blue-yellow-lime-magenta.html",
        "=="
       ]
      ],
      {}
     ]
    ],
-   "css/css-grid-1/grid-items/grid-inline-order-property-auto-placement-002.xht": [
+   "css/css-grid-1/grid-items/grid-inline-order-property-auto-placement-002.html": [
     [
-     "/css/css-grid-1/grid-items/grid-inline-order-property-auto-placement-002.xht",
+     "/css/css-grid-1/grid-items/grid-inline-order-property-auto-placement-002.html",
      [
       [
-       "/css/css-grid-1/reference/grid-2x2-blue-yellow-lime-magenta.xht",
+       "/css/css-grid-1/reference/grid-2x2-blue-yellow-lime-magenta.html",
        "=="
       ]
      ],
      {}
     ]
    ],
-   "css/css-grid-1/grid-items/grid-inline-order-property-auto-placement-003.xht": [
+   "css/css-grid-1/grid-items/grid-inline-order-property-auto-placement-003.html": [
     [
-     "/css/css-grid-1/grid-items/grid-inline-order-property-auto-placement-003.xht",
+     "/css/css-grid-1/grid-items/grid-inline-order-property-auto-placement-003.html",
      [
       [
-       "/css/css-grid-1/reference/grid-2x2-blue-yellow-lime-magenta.xht",
+       "/css/css-grid-1/reference/grid-2x2-blue-yellow-lime-magenta.html",
        "=="
       ]
      ],
      {}
     ]
    ],
-   "css/css-grid-1/grid-items/grid-inline-order-property-auto-placement-004.xht": [
+   "css/css-grid-1/grid-items/grid-inline-order-property-auto-placement-004.html": [
     [
-     "/css/css-grid-1/grid-items/grid-inline-order-property-auto-placement-004.xht",
+     "/css/css-grid-1/grid-items/grid-inline-order-property-auto-placement-004.html",
      [
       [
-       "/css/css-grid-1/reference/grid-2x2-blue-yellow-lime-magenta.xht",
+       "/css/css-grid-1/reference/grid-2x2-blue-yellow-lime-magenta.html",
        "=="
       ]
      ],
      {}
     ]
    ],
-   "css/css-grid-1/grid-items/grid-inline-order-property-auto-placement-005.xht": [
+   "css/css-grid-1/grid-items/grid-inline-order-property-auto-placement-005.html": [
     [
-     "/css/css-grid-1/grid-items/grid-inline-order-property-auto-placement-005.xht",
+     "/css/css-grid-1/grid-items/grid-inline-order-property-auto-placement-005.html",
      [
       [
-       "/css/css-grid-1/reference/grid-2x2-blue-yellow-lime-magenta.xht",
+       "/css/css-grid-1/reference/grid-2x2-blue-yellow-lime-magenta.html",
        "=="
       ]
      ],
      {}
     ]
    ],
-   "css/css-grid-1/grid-items/grid-inline-order-property-painting-001.xht": [
+   "css/css-grid-1/grid-items/grid-inline-order-property-painting-001.html": [
     [
-     "/css/css-grid-1/grid-items/grid-inline-order-property-painting-001.xht",
+     "/css/css-grid-1/grid-items/grid-inline-order-property-painting-001.html",
      [
       [
        "/css/reference/ref-filled-green-100px-square.xht",
@@ -29605,9 +29617,9 @@
      {}
     ]
    ],
-   "css/css-grid-1/grid-items/grid-inline-order-property-painting-002.xht": [
+   "css/css-grid-1/grid-items/grid-inline-order-property-painting-002.html": [
     [
-     "/css/css-grid-1/grid-items/grid-inline-order-property-painting-002.xht",
+     "/css/css-grid-1/grid-items/grid-inline-order-property-painting-002.html",
      [
       [
        "/css/reference/ref-filled-green-100px-square.xht",
@@ -29617,9 +29629,9 @@
      {}
     ]
    ],
-   "css/css-grid-1/grid-items/grid-inline-order-property-painting-003.xht": [
+   "css/css-grid-1/grid-items/grid-inline-order-property-painting-003.html": [
     [
-     "/css/css-grid-1/grid-items/grid-inline-order-property-painting-003.xht",
+     "/css/css-grid-1/grid-items/grid-inline-order-property-painting-003.html",
      [
       [
        "/css/reference/ref-filled-green-100px-square.xht",
@@ -29629,9 +29641,9 @@
      {}
     ]
    ],
-   "css/css-grid-1/grid-items/grid-inline-order-property-painting-004.xht": [
+   "css/css-grid-1/grid-items/grid-inline-order-property-painting-004.html": [
     [
-     "/css/css-grid-1/grid-items/grid-inline-order-property-painting-004.xht",
+     "/css/css-grid-1/grid-items/grid-inline-order-property-painting-004.html",
      [
       [
        "/css/reference/ref-filled-green-100px-square.xht",
@@ -29641,9 +29653,9 @@
      {}
     ]
    ],
-   "css/css-grid-1/grid-items/grid-inline-order-property-painting-005.xht": [
+   "css/css-grid-1/grid-items/grid-inline-order-property-painting-005.html": [
     [
-     "/css/css-grid-1/grid-items/grid-inline-order-property-painting-005.xht",
+     "/css/css-grid-1/grid-items/grid-inline-order-property-painting-005.html",
      [
       [
        "/css/reference/ref-filled-green-100px-square.xht",
@@ -29653,9 +29665,9 @@
      {}
     ]
    ],
-   "css/css-grid-1/grid-items/grid-inline-z-axis-ordering-001.xht": [
+   "css/css-grid-1/grid-items/grid-inline-z-axis-ordering-001.html": [
     [
-     "/css/css-grid-1/grid-items/grid-inline-z-axis-ordering-001.xht",
+     "/css/css-grid-1/grid-items/grid-inline-z-axis-ordering-001.html",
      [
       [
        "/css/reference/ref-filled-green-100px-square.xht",
@@ -29665,9 +29677,9 @@
      {}
     ]
    ],
-   "css/css-grid-1/grid-items/grid-inline-z-axis-ordering-002.xht": [
+   "css/css-grid-1/grid-items/grid-inline-z-axis-ordering-002.html": [
     [
-     "/css/css-grid-1/grid-items/grid-inline-z-axis-ordering-002.xht",
+     "/css/css-grid-1/grid-items/grid-inline-z-axis-ordering-002.html",
      [
       [
        "/css/reference/ref-filled-green-100px-square.xht",
@@ -29677,9 +29689,9 @@
      {}
     ]
    ],
-   "css/css-grid-1/grid-items/grid-inline-z-axis-ordering-003.xht": [
+   "css/css-grid-1/grid-items/grid-inline-z-axis-ordering-003.html": [
     [
-     "/css/css-grid-1/grid-items/grid-inline-z-axis-ordering-003.xht",
+     "/css/css-grid-1/grid-items/grid-inline-z-axis-ordering-003.html",
      [
       [
        "/css/reference/ref-filled-green-100px-square.xht",
@@ -29689,9 +29701,9 @@
      {}
     ]
    ],
-   "css/css-grid-1/grid-items/grid-inline-z-axis-ordering-004.xht": [
+   "css/css-grid-1/grid-items/grid-inline-z-axis-ordering-004.html": [
     [
-     "/css/css-grid-1/grid-items/grid-inline-z-axis-ordering-004.xht",
+     "/css/css-grid-1/grid-items/grid-inline-z-axis-ordering-004.html",
      [
       [
        "/css/reference/ref-filled-green-100px-square.xht",
@@ -29701,9 +29713,9 @@
      {}
     ]
    ],
-   "css/css-grid-1/grid-items/grid-inline-z-axis-ordering-005.xht": [
+   "css/css-grid-1/grid-items/grid-inline-z-axis-ordering-005.html": [
     [
-     "/css/css-grid-1/grid-items/grid-inline-z-axis-ordering-005.xht",
+     "/css/css-grid-1/grid-items/grid-inline-z-axis-ordering-005.html",
      [
       [
        "/css/reference/ref-filled-green-100px-square.xht",
@@ -29713,72 +29725,72 @@
      {}
     ]
    ],
-   "css/css-grid-1/grid-items/grid-inline-z-axis-ordering-overlapped-items-001.xht": [
+   "css/css-grid-1/grid-items/grid-inline-z-axis-ordering-overlapped-items-001.html": [
     [
-     "/css/css-grid-1/grid-items/grid-inline-z-axis-ordering-overlapped-items-001.xht",
+     "/css/css-grid-1/grid-items/grid-inline-z-axis-ordering-overlapped-items-001.html",
      [
       [
-       "/css/css-grid-1/reference/grid-filled-blue-yellow-green-overlapped-100px-squares.xht",
+       "/css/css-grid-1/reference/grid-filled-blue-yellow-green-overlapped-100px-squares.html",
        "=="
       ]
      ],
      {}
     ]
    ],
-   "css/css-grid-1/grid-items/grid-inline-z-axis-ordering-overlapped-items-002.xht": [
+   "css/css-grid-1/grid-items/grid-inline-z-axis-ordering-overlapped-items-002.html": [
     [
-     "/css/css-grid-1/grid-items/grid-inline-z-axis-ordering-overlapped-items-002.xht",
+     "/css/css-grid-1/grid-items/grid-inline-z-axis-ordering-overlapped-items-002.html",
      [
       [
-       "/css/css-grid-1/reference/grid-filled-blue-yellow-green-overlapped-100px-squares.xht",
+       "/css/css-grid-1/reference/grid-filled-blue-yellow-green-overlapped-100px-squares.html",
        "=="
       ]
      ],
      {}
     ]
    ],
-   "css/css-grid-1/grid-items/grid-inline-z-axis-ordering-overlapped-items-003.xht": [
+   "css/css-grid-1/grid-items/grid-inline-z-axis-ordering-overlapped-items-003.html": [
     [
-     "/css/css-grid-1/grid-items/grid-inline-z-axis-ordering-overlapped-items-003.xht",
+     "/css/css-grid-1/grid-items/grid-inline-z-axis-ordering-overlapped-items-003.html",
      [
       [
-       "/css/css-grid-1/reference/grid-filled-blue-yellow-green-overlapped-100px-squares.xht",
+       "/css/css-grid-1/reference/grid-filled-blue-yellow-green-overlapped-100px-squares.html",
        "=="
       ]
      ],
      {}
     ]
    ],
-   "css/css-grid-1/grid-items/grid-inline-z-axis-ordering-overlapped-items-004.xht": [
+   "css/css-grid-1/grid-items/grid-inline-z-axis-ordering-overlapped-items-004.html": [
     [
-     "/css/css-grid-1/grid-items/grid-inline-z-axis-ordering-overlapped-items-004.xht",
+     "/css/css-grid-1/grid-items/grid-inline-z-axis-ordering-overlapped-items-004.html",
      [
       [
-       "/css/css-grid-1/reference/grid-filled-blue-yellow-green-overlapped-100px-squares.xht",
+       "/css/css-grid-1/reference/grid-filled-blue-yellow-green-overlapped-100px-squares.html",
        "=="
       ]
      ],
      {}
     ]
    ],
-   "css/css-grid-1/grid-items/grid-inline-z-axis-ordering-overlapped-items-005.xht": [
+   "css/css-grid-1/grid-items/grid-inline-z-axis-ordering-overlapped-items-005.html": [
     [
-     "/css/css-grid-1/grid-items/grid-inline-z-axis-ordering-overlapped-items-005.xht",
+     "/css/css-grid-1/grid-items/grid-inline-z-axis-ordering-overlapped-items-005.html",
      [
       [
-       "/css/css-grid-1/reference/grid-filled-blue-yellow-green-overlapped-100px-squares.xht",
+       "/css/css-grid-1/reference/grid-filled-blue-yellow-green-overlapped-100px-squares.html",
        "=="
       ]
      ],
      {}
     ]
    ],
-   "css/css-grid-1/grid-items/grid-inline-z-axis-ordering-overlapped-items-006.xht": [
+   "css/css-grid-1/grid-items/grid-inline-z-axis-ordering-overlapped-items-006.html": [
     [
-     "/css/css-grid-1/grid-items/grid-inline-z-axis-ordering-overlapped-items-006.xht",
+     "/css/css-grid-1/grid-items/grid-inline-z-axis-ordering-overlapped-items-006.html",
      [
       [
-       "/css/css-grid-1/reference/grid-filled-blue-yellow-green-overlapped-100px-squares.xht",
+       "/css/css-grid-1/reference/grid-filled-blue-yellow-green-overlapped-100px-squares.html",
        "=="
       ]
      ],
@@ -29833,9 +29845,9 @@
      {}
     ]
    ],
-   "css/css-grid-1/grid-items/grid-items-001.xht": [
+   "css/css-grid-1/grid-items/grid-items-001.html": [
     [
-     "/css/css-grid-1/grid-items/grid-items-001.xht",
+     "/css/css-grid-1/grid-items/grid-items-001.html",
      [
       [
        "/css/reference/ref-filled-green-100px-square.xht",
@@ -29845,9 +29857,9 @@
      {}
     ]
    ],
-   "css/css-grid-1/grid-items/grid-items-002.xht": [
+   "css/css-grid-1/grid-items/grid-items-002.html": [
     [
-     "/css/css-grid-1/grid-items/grid-items-002.xht",
+     "/css/css-grid-1/grid-items/grid-items-002.html",
      [
       [
        "/css/reference/ref-filled-green-100px-square.xht",
@@ -29857,9 +29869,9 @@
      {}
     ]
    ],
-   "css/css-grid-1/grid-items/grid-items-003.xht": [
+   "css/css-grid-1/grid-items/grid-items-003.html": [
     [
-     "/css/css-grid-1/grid-items/grid-items-003.xht",
+     "/css/css-grid-1/grid-items/grid-items-003.html",
      [
       [
        "/css/reference/ref-filled-green-100px-square.xht",
@@ -29869,9 +29881,9 @@
      {}
     ]
    ],
-   "css/css-grid-1/grid-items/grid-items-inline-blocks-001.xht": [
+   "css/css-grid-1/grid-items/grid-items-inline-blocks-001.html": [
     [
-     "/css/css-grid-1/grid-items/grid-items-inline-blocks-001.xht",
+     "/css/css-grid-1/grid-items/grid-items-inline-blocks-001.html",
      [
       [
        "/css/reference/ref-filled-green-100px-square.xht",
@@ -29929,9 +29941,9 @@
      {}
     ]
    ],
-   "css/css-grid-1/grid-items/grid-minimum-size-grid-items-001.xht": [
+   "css/css-grid-1/grid-items/grid-minimum-size-grid-items-001.html": [
     [
-     "/css/css-grid-1/grid-items/grid-minimum-size-grid-items-001.xht",
+     "/css/css-grid-1/grid-items/grid-minimum-size-grid-items-001.html",
      [
       [
        "/css/reference/ref-filled-green-100px-square.xht",
@@ -29941,9 +29953,9 @@
      {}
     ]
    ],
-   "css/css-grid-1/grid-items/grid-minimum-size-grid-items-002.xht": [
+   "css/css-grid-1/grid-items/grid-minimum-size-grid-items-002.html": [
     [
-     "/css/css-grid-1/grid-items/grid-minimum-size-grid-items-002.xht",
+     "/css/css-grid-1/grid-items/grid-minimum-size-grid-items-002.html",
      [
       [
        "/css/reference/ref-filled-green-100px-square.xht",
@@ -29953,9 +29965,9 @@
      {}
     ]
    ],
-   "css/css-grid-1/grid-items/grid-minimum-size-grid-items-003.xht": [
+   "css/css-grid-1/grid-items/grid-minimum-size-grid-items-003.html": [
     [
-     "/css/css-grid-1/grid-items/grid-minimum-size-grid-items-003.xht",
+     "/css/css-grid-1/grid-items/grid-minimum-size-grid-items-003.html",
      [
       [
        "/css/reference/ref-filled-green-100px-square.xht",
@@ -29965,9 +29977,9 @@
      {}
     ]
    ],
-   "css/css-grid-1/grid-items/grid-minimum-size-grid-items-004.xht": [
+   "css/css-grid-1/grid-items/grid-minimum-size-grid-items-004.html": [
     [
-     "/css/css-grid-1/grid-items/grid-minimum-size-grid-items-004.xht",
+     "/css/css-grid-1/grid-items/grid-minimum-size-grid-items-004.html",
      [
       [
        "/css/reference/ref-filled-green-100px-square.xht",
@@ -29977,9 +29989,9 @@
      {}
     ]
    ],
-   "css/css-grid-1/grid-items/grid-minimum-size-grid-items-005.xht": [
+   "css/css-grid-1/grid-items/grid-minimum-size-grid-items-005.html": [
     [
-     "/css/css-grid-1/grid-items/grid-minimum-size-grid-items-005.xht",
+     "/css/css-grid-1/grid-items/grid-minimum-size-grid-items-005.html",
      [
       [
        "/css/css-grid-1/grid-items/ref-filled-green-100px-square-image.html",
@@ -29989,9 +30001,9 @@
      {}
     ]
    ],
-   "css/css-grid-1/grid-items/grid-minimum-size-grid-items-006.xht": [
+   "css/css-grid-1/grid-items/grid-minimum-size-grid-items-006.html": [
     [
-     "/css/css-grid-1/grid-items/grid-minimum-size-grid-items-006.xht",
+     "/css/css-grid-1/grid-items/grid-minimum-size-grid-items-006.html",
      [
       [
        "/css/css-grid-1/grid-items/ref-filled-green-100px-square-image.html",
@@ -30001,9 +30013,9 @@
      {}
     ]
    ],
-   "css/css-grid-1/grid-items/grid-minimum-size-grid-items-007.xht": [
+   "css/css-grid-1/grid-items/grid-minimum-size-grid-items-007.html": [
     [
-     "/css/css-grid-1/grid-items/grid-minimum-size-grid-items-007.xht",
+     "/css/css-grid-1/grid-items/grid-minimum-size-grid-items-007.html",
      [
       [
        "/css/css-grid-1/grid-items/ref-filled-green-100px-square-image.html",
@@ -30013,9 +30025,9 @@
      {}
     ]
    ],
-   "css/css-grid-1/grid-items/grid-minimum-size-grid-items-008.xht": [
+   "css/css-grid-1/grid-items/grid-minimum-size-grid-items-008.html": [
     [
-     "/css/css-grid-1/grid-items/grid-minimum-size-grid-items-008.xht",
+     "/css/css-grid-1/grid-items/grid-minimum-size-grid-items-008.html",
      [
       [
        "/css/css-grid-1/grid-items/ref-filled-green-100px-square-image.html",
@@ -30025,9 +30037,9 @@
      {}
     ]
    ],
-   "css/css-grid-1/grid-items/grid-minimum-size-grid-items-009.xht": [
+   "css/css-grid-1/grid-items/grid-minimum-size-grid-items-009.html": [
     [
-     "/css/css-grid-1/grid-items/grid-minimum-size-grid-items-009.xht",
+     "/css/css-grid-1/grid-items/grid-minimum-size-grid-items-009.html",
      [
       [
        "/css/css-grid-1/grid-items/ref-filled-green-100px-square-image.html",
@@ -30169,69 +30181,69 @@
      {}
     ]
    ],
-   "css/css-grid-1/grid-items/grid-order-property-auto-placement-001.xht": [
+   "css/css-grid-1/grid-items/grid-order-property-auto-placement-001.html": [
     [
-     "/css/css-grid-1/grid-items/grid-order-property-auto-placement-001.xht",
+     "/css/css-grid-1/grid-items/grid-order-property-auto-placement-001.html",
      [
       [
-       "/css/css-grid-1/reference/grid-2x2-blue-yellow-lime-magenta.xht",
+       "/css/css-grid-1/reference/grid-2x2-blue-yellow-lime-magenta.html",
        "=="
       ]
      ],
      {}
     ]
    ],
-   "css/css-grid-1/grid-items/grid-order-property-auto-placement-002.xht": [
+   "css/css-grid-1/grid-items/grid-order-property-auto-placement-002.html": [
     [
-     "/css/css-grid-1/grid-items/grid-order-property-auto-placement-002.xht",
+     "/css/css-grid-1/grid-items/grid-order-property-auto-placement-002.html",
      [
       [
-       "/css/css-grid-1/reference/grid-2x2-blue-yellow-lime-magenta.xht",
+       "/css/css-grid-1/reference/grid-2x2-blue-yellow-lime-magenta.html",
        "=="
       ]
      ],
      {}
     ]
    ],
-   "css/css-grid-1/grid-items/grid-order-property-auto-placement-003.xht": [
+   "css/css-grid-1/grid-items/grid-order-property-auto-placement-003.html": [
     [
-     "/css/css-grid-1/grid-items/grid-order-property-auto-placement-003.xht",
+     "/css/css-grid-1/grid-items/grid-order-property-auto-placement-003.html",
      [
       [
-       "/css/css-grid-1/reference/grid-2x2-blue-yellow-lime-magenta.xht",
+       "/css/css-grid-1/reference/grid-2x2-blue-yellow-lime-magenta.html",
        "=="
       ]
      ],
      {}
     ]
    ],
-   "css/css-grid-1/grid-items/grid-order-property-auto-placement-004.xht": [
+   "css/css-grid-1/grid-items/grid-order-property-auto-placement-004.html": [
     [
-     "/css/css-grid-1/grid-items/grid-order-property-auto-placement-004.xht",
+     "/css/css-grid-1/grid-items/grid-order-property-auto-placement-004.html",
      [
       [
-       "/css/css-grid-1/reference/grid-2x2-blue-yellow-lime-magenta.xht",
+       "/css/css-grid-1/reference/grid-2x2-blue-yellow-lime-magenta.html",
        "=="
       ]
      ],
      {}
     ]
    ],
-   "css/css-grid-1/grid-items/grid-order-property-auto-placement-005.xht": [
+   "css/css-grid-1/grid-items/grid-order-property-auto-placement-005.html": [
     [
-     "/css/css-grid-1/grid-items/grid-order-property-auto-placement-005.xht",
+     "/css/css-grid-1/grid-items/grid-order-property-auto-placement-005.html",
      [
       [
-       "/css/css-grid-1/reference/grid-2x2-blue-yellow-lime-magenta.xht",
+       "/css/css-grid-1/reference/grid-2x2-blue-yellow-lime-magenta.html",
        "=="
       ]
      ],
      {}
     ]
    ],
-   "css/css-grid-1/grid-items/grid-order-property-painting-001.xht": [
+   "css/css-grid-1/grid-items/grid-order-property-painting-001.html": [
     [
-     "/css/css-grid-1/grid-items/grid-order-property-painting-001.xht",
+     "/css/css-grid-1/grid-items/grid-order-property-painting-001.html",
      [
       [
        "/css/reference/ref-filled-green-100px-square.xht",
@@ -30241,9 +30253,9 @@
      {}
     ]
    ],
-   "css/css-grid-1/grid-items/grid-order-property-painting-002.xht": [
+   "css/css-grid-1/grid-items/grid-order-property-painting-002.html": [
     [
-     "/css/css-grid-1/grid-items/grid-order-property-painting-002.xht",
+     "/css/css-grid-1/grid-items/grid-order-property-painting-002.html",
      [
       [
        "/css/reference/ref-filled-green-100px-square.xht",
@@ -30253,9 +30265,9 @@
      {}
     ]
    ],
-   "css/css-grid-1/grid-items/grid-order-property-painting-003.xht": [
+   "css/css-grid-1/grid-items/grid-order-property-painting-003.html": [
     [
-     "/css/css-grid-1/grid-items/grid-order-property-painting-003.xht",
+     "/css/css-grid-1/grid-items/grid-order-property-painting-003.html",
      [
       [
        "/css/reference/ref-filled-green-100px-square.xht",
@@ -30265,9 +30277,9 @@
      {}
     ]
    ],
-   "css/css-grid-1/grid-items/grid-order-property-painting-004.xht": [
+   "css/css-grid-1/grid-items/grid-order-property-painting-004.html": [
     [
-     "/css/css-grid-1/grid-items/grid-order-property-painting-004.xht",
+     "/css/css-grid-1/grid-items/grid-order-property-painting-004.html",
      [
       [
        "/css/reference/ref-filled-green-100px-square.xht",
@@ -30277,9 +30289,9 @@
      {}
     ]
    ],
-   "css/css-grid-1/grid-items/grid-order-property-painting-005.xht": [
+   "css/css-grid-1/grid-items/grid-order-property-painting-005.html": [
     [
-     "/css/css-grid-1/grid-items/grid-order-property-painting-005.xht",
+     "/css/css-grid-1/grid-items/grid-order-property-painting-005.html",
      [
       [
        "/css/reference/ref-filled-green-100px-square.xht",
@@ -30289,9 +30301,9 @@
      {}
     ]
    ],
-   "css/css-grid-1/grid-items/grid-z-axis-ordering-001.xht": [
+   "css/css-grid-1/grid-items/grid-z-axis-ordering-001.html": [
     [
-     "/css/css-grid-1/grid-items/grid-z-axis-ordering-001.xht",
+     "/css/css-grid-1/grid-items/grid-z-axis-ordering-001.html",
      [
       [
        "/css/reference/ref-filled-green-100px-square.xht",
@@ -30301,9 +30313,9 @@
      {}
     ]
    ],
-   "css/css-grid-1/grid-items/grid-z-axis-ordering-002.xht": [
+   "css/css-grid-1/grid-items/grid-z-axis-ordering-002.html": [
     [
-     "/css/css-grid-1/grid-items/grid-z-axis-ordering-002.xht",
+     "/css/css-grid-1/grid-items/grid-z-axis-ordering-002.html",
      [
       [
        "/css/reference/ref-filled-green-100px-square.xht",
@@ -30313,9 +30325,9 @@
      {}
     ]
    ],
-   "css/css-grid-1/grid-items/grid-z-axis-ordering-003.xht": [
+   "css/css-grid-1/grid-items/grid-z-axis-ordering-003.html": [
     [
-     "/css/css-grid-1/grid-items/grid-z-axis-ordering-003.xht",
+     "/css/css-grid-1/grid-items/grid-z-axis-ordering-003.html",
      [
       [
        "/css/reference/ref-filled-green-100px-square.xht",
@@ -30325,9 +30337,9 @@
      {}
     ]
    ],
-   "css/css-grid-1/grid-items/grid-z-axis-ordering-004.xht": [
+   "css/css-grid-1/grid-items/grid-z-axis-ordering-004.html": [
     [
-     "/css/css-grid-1/grid-items/grid-z-axis-ordering-004.xht",
+     "/css/css-grid-1/grid-items/grid-z-axis-ordering-004.html",
      [
       [
        "/css/reference/ref-filled-green-100px-square.xht",
@@ -30337,9 +30349,9 @@
      {}
     ]
    ],
-   "css/css-grid-1/grid-items/grid-z-axis-ordering-005.xht": [
+   "css/css-grid-1/grid-items/grid-z-axis-ordering-005.html": [
     [
-     "/css/css-grid-1/grid-items/grid-z-axis-ordering-005.xht",
+     "/css/css-grid-1/grid-items/grid-z-axis-ordering-005.html",
      [
       [
        "/css/reference/ref-filled-green-100px-square.xht",
@@ -30349,72 +30361,72 @@
      {}
     ]
    ],
-   "css/css-grid-1/grid-items/grid-z-axis-ordering-overlapped-items-001.xht": [
+   "css/css-grid-1/grid-items/grid-z-axis-ordering-overlapped-items-001.html": [
     [
-     "/css/css-grid-1/grid-items/grid-z-axis-ordering-overlapped-items-001.xht",
+     "/css/css-grid-1/grid-items/grid-z-axis-ordering-overlapped-items-001.html",
      [
       [
-       "/css/css-grid-1/reference/grid-filled-blue-yellow-green-overlapped-100px-squares.xht",
+       "/css/css-grid-1/reference/grid-filled-blue-yellow-green-overlapped-100px-squares.html",
        "=="
       ]
      ],
      {}
     ]
    ],
-   "css/css-grid-1/grid-items/grid-z-axis-ordering-overlapped-items-002.xht": [
+   "css/css-grid-1/grid-items/grid-z-axis-ordering-overlapped-items-002.html": [
     [
-     "/css/css-grid-1/grid-items/grid-z-axis-ordering-overlapped-items-002.xht",
+     "/css/css-grid-1/grid-items/grid-z-axis-ordering-overlapped-items-002.html",
      [
       [
-       "/css/css-grid-1/reference/grid-filled-blue-yellow-green-overlapped-100px-squares.xht",
+       "/css/css-grid-1/reference/grid-filled-blue-yellow-green-overlapped-100px-squares.html",
        "=="
       ]
      ],
      {}
     ]
    ],
-   "css/css-grid-1/grid-items/grid-z-axis-ordering-overlapped-items-003.xht": [
+   "css/css-grid-1/grid-items/grid-z-axis-ordering-overlapped-items-003.html": [
     [
-     "/css/css-grid-1/grid-items/grid-z-axis-ordering-overlapped-items-003.xht",
+     "/css/css-grid-1/grid-items/grid-z-axis-ordering-overlapped-items-003.html",
      [
       [
-       "/css/css-grid-1/reference/grid-filled-blue-yellow-green-overlapped-100px-squares.xht",
+       "/css/css-grid-1/reference/grid-filled-blue-yellow-green-overlapped-100px-squares.html",
        "=="
       ]
      ],
      {}
     ]
    ],
-   "css/css-grid-1/grid-items/grid-z-axis-ordering-overlapped-items-004.xht": [
+   "css/css-grid-1/grid-items/grid-z-axis-ordering-overlapped-items-004.html": [
     [
-     "/css/css-grid-1/grid-items/grid-z-axis-ordering-overlapped-items-004.xht",
+     "/css/css-grid-1/grid-items/grid-z-axis-ordering-overlapped-items-004.html",
      [
       [
-       "/css/css-grid-1/reference/grid-filled-blue-yellow-green-overlapped-100px-squares.xht",
+       "/css/css-grid-1/reference/grid-filled-blue-yellow-green-overlapped-100px-squares.html",
        "=="
       ]
      ],
      {}
     ]
    ],
-   "css/css-grid-1/grid-items/grid-z-axis-ordering-overlapped-items-005.xht": [
+   "css/css-grid-1/grid-items/grid-z-axis-ordering-overlapped-items-005.html": [
     [
-     "/css/css-grid-1/grid-items/grid-z-axis-ordering-overlapped-items-005.xht",
+     "/css/css-grid-1/grid-items/grid-z-axis-ordering-overlapped-items-005.html",
      [
       [
-       "/css/css-grid-1/reference/grid-filled-blue-yellow-green-overlapped-100px-squares.xht",
+       "/css/css-grid-1/reference/grid-filled-blue-yellow-green-overlapped-100px-squares.html",
        "=="
       ]
      ],
      {}
     ]
    ],
-   "css/css-grid-1/grid-items/grid-z-axis-ordering-overlapped-items-006.xht": [
+   "css/css-grid-1/grid-items/grid-z-axis-ordering-overlapped-items-006.html": [
     [
-     "/css/css-grid-1/grid-items/grid-z-axis-ordering-overlapped-items-006.xht",
+     "/css/css-grid-1/grid-items/grid-z-axis-ordering-overlapped-items-006.html",
      [
       [
-       "/css/css-grid-1/reference/grid-filled-blue-yellow-green-overlapped-100px-squares.xht",
+       "/css/css-grid-1/reference/grid-filled-blue-yellow-green-overlapped-100px-squares.html",
        "=="
       ]
      ],
@@ -30445,9 +30457,9 @@
      {}
     ]
    ],
-   "css/css-grid-1/grid-model/grid-display-grid-001.xht": [
+   "css/css-grid-1/grid-model/grid-display-grid-001.html": [
     [
-     "/css/css-grid-1/grid-model/grid-display-grid-001.xht",
+     "/css/css-grid-1/grid-model/grid-display-grid-001.html",
      [
       [
        "/css/reference/ref-filled-green-100px-square.xht",
@@ -30457,9 +30469,9 @@
      {}
     ]
    ],
-   "css/css-grid-1/grid-model/grid-display-inline-grid-001.xht": [
+   "css/css-grid-1/grid-model/grid-display-inline-grid-001.html": [
     [
-     "/css/css-grid-1/grid-model/grid-display-inline-grid-001.xht",
+     "/css/css-grid-1/grid-model/grid-display-inline-grid-001.html",
      [
       [
        "/css/reference/ref-filled-green-100px-square.xht",
@@ -30469,81 +30481,81 @@
      {}
     ]
    ],
-   "css/css-grid-1/grid-model/grid-first-letter-001.xht": [
+   "css/css-grid-1/grid-model/grid-first-letter-001.html": [
     [
-     "/css/css-grid-1/grid-model/grid-first-letter-001.xht",
+     "/css/css-grid-1/grid-model/grid-first-letter-001.html",
      [
       [
-       "/css/css-grid-1/reference/grid-text-green-margin-no-collapse-ref.xht",
+       "/css/css-grid-1/reference/grid-text-green-margin-no-collapse-ref.html",
        "=="
       ]
      ],
      {}
     ]
    ],
-   "css/css-grid-1/grid-model/grid-first-letter-002.xht": [
+   "css/css-grid-1/grid-model/grid-first-letter-002.html": [
     [
-     "/css/css-grid-1/grid-model/grid-first-letter-002.xht",
+     "/css/css-grid-1/grid-model/grid-first-letter-002.html",
      [
       [
-       "/css/css-grid-1/reference/grid-text-green-margin-no-collapse-ref.xht",
+       "/css/css-grid-1/reference/grid-text-green-margin-no-collapse-ref.html",
        "=="
       ]
      ],
      {}
     ]
    ],
-   "css/css-grid-1/grid-model/grid-first-letter-003.xht": [
+   "css/css-grid-1/grid-model/grid-first-letter-003.html": [
     [
-     "/css/css-grid-1/grid-model/grid-first-letter-003.xht",
+     "/css/css-grid-1/grid-model/grid-first-letter-003.html",
      [
       [
-       "/css/css-grid-1/reference/grid-first-letter-green-margin-no-collapse-ref.xht",
+       "/css/css-grid-1/reference/grid-first-letter-green-margin-no-collapse-ref.html",
        "=="
       ]
      ],
      {}
     ]
    ],
-   "css/css-grid-1/grid-model/grid-first-line-001.xht": [
+   "css/css-grid-1/grid-model/grid-first-line-001.html": [
     [
-     "/css/css-grid-1/grid-model/grid-first-line-001.xht",
+     "/css/css-grid-1/grid-model/grid-first-line-001.html",
      [
       [
-       "/css/css-grid-1/reference/grid-text-green-margin-no-collapse-ref.xht",
+       "/css/css-grid-1/reference/grid-text-green-margin-no-collapse-ref.html",
        "=="
       ]
      ],
      {}
     ]
    ],
-   "css/css-grid-1/grid-model/grid-first-line-002.xht": [
+   "css/css-grid-1/grid-model/grid-first-line-002.html": [
     [
-     "/css/css-grid-1/grid-model/grid-first-line-002.xht",
+     "/css/css-grid-1/grid-model/grid-first-line-002.html",
      [
       [
-       "/css/css-grid-1/reference/grid-text-green-margin-no-collapse-ref.xht",
+       "/css/css-grid-1/reference/grid-text-green-margin-no-collapse-ref.html",
        "=="
       ]
      ],
      {}
     ]
    ],
-   "css/css-grid-1/grid-model/grid-first-line-003.xht": [
+   "css/css-grid-1/grid-model/grid-first-line-003.html": [
     [
-     "/css/css-grid-1/grid-model/grid-first-line-003.xht",
+     "/css/css-grid-1/grid-model/grid-first-line-003.html",
      [
       [
-       "/css/css-grid-1/reference/grid-text-green-margin-no-collapse-ref.xht",
+       "/css/css-grid-1/reference/grid-text-green-margin-no-collapse-ref.html",
        "=="
       ]
      ],
      {}
     ]
    ],
-   "css/css-grid-1/grid-model/grid-float-001.xht": [
+   "css/css-grid-1/grid-model/grid-float-001.html": [
     [
-     "/css/css-grid-1/grid-model/grid-float-001.xht",
+     "/css/css-grid-1/grid-model/grid-float-001.html",
      [
       [
        "/css/reference/ref-filled-green-100px-square.xht",
@@ -30553,9 +30565,9 @@
      {}
     ]
    ],
-   "css/css-grid-1/grid-model/grid-floats-no-intrude-001.xht": [
+   "css/css-grid-1/grid-model/grid-floats-no-intrude-001.html": [
     [
-     "/css/css-grid-1/grid-model/grid-floats-no-intrude-001.xht",
+     "/css/css-grid-1/grid-model/grid-floats-no-intrude-001.html",
      [
       [
        "/css/reference/ref-filled-green-100px-square.xht",
@@ -30565,81 +30577,81 @@
      {}
     ]
    ],
-   "css/css-grid-1/grid-model/grid-inline-first-letter-001.xht": [
+   "css/css-grid-1/grid-model/grid-inline-first-letter-001.html": [
     [
-     "/css/css-grid-1/grid-model/grid-inline-first-letter-001.xht",
+     "/css/css-grid-1/grid-model/grid-inline-first-letter-001.html",
      [
       [
-       "/css/css-grid-1/reference/grid-text-green-margin-no-collapse-ref.xht",
+       "/css/css-grid-1/reference/grid-text-green-margin-no-collapse-ref.html",
        "=="
       ]
      ],
      {}
     ]
    ],
-   "css/css-grid-1/grid-model/grid-inline-first-letter-002.xht": [
+   "css/css-grid-1/grid-model/grid-inline-first-letter-002.html": [
     [
-     "/css/css-grid-1/grid-model/grid-inline-first-letter-002.xht",
+     "/css/css-grid-1/grid-model/grid-inline-first-letter-002.html",
      [
       [
-       "/css/css-grid-1/reference/grid-text-green-margin-no-collapse-ref.xht",
+       "/css/css-grid-1/reference/grid-text-green-margin-no-collapse-ref.html",
        "=="
       ]
      ],
      {}
     ]
    ],
-   "css/css-grid-1/grid-model/grid-inline-first-letter-003.xht": [
+   "css/css-grid-1/grid-model/grid-inline-first-letter-003.html": [
     [
-     "/css/css-grid-1/grid-model/grid-inline-first-letter-003.xht",
+     "/css/css-grid-1/grid-model/grid-inline-first-letter-003.html",
      [
       [
-       "/css/css-grid-1/reference/grid-first-letter-green-margin-no-collapse-ref.xht",
+       "/css/css-grid-1/reference/grid-first-letter-green-margin-no-collapse-ref.html",
        "=="
       ]
      ],
      {}
     ]
    ],
-   "css/css-grid-1/grid-model/grid-inline-first-line-001.xht": [
+   "css/css-grid-1/grid-model/grid-inline-first-line-001.html": [
     [
-     "/css/css-grid-1/grid-model/grid-inline-first-line-001.xht",
+     "/css/css-grid-1/grid-model/grid-inline-first-line-001.html",
      [
       [
-       "/css/css-grid-1/reference/grid-text-green-margin-no-collapse-ref.xht",
+       "/css/css-grid-1/reference/grid-text-green-margin-no-collapse-ref.html",
        "=="
       ]
      ],
      {}
     ]
    ],
-   "css/css-grid-1/grid-model/grid-inline-first-line-002.xht": [
+   "css/css-grid-1/grid-model/grid-inline-first-line-002.html": [
     [
-     "/css/css-grid-1/grid-model/grid-inline-first-line-002.xht",
+     "/css/css-grid-1/grid-model/grid-inline-first-line-002.html",
      [
       [
-       "/css/css-grid-1/reference/grid-text-green-margin-no-collapse-ref.xht",
+       "/css/css-grid-1/reference/grid-text-green-margin-no-collapse-ref.html",
        "=="
       ]
      ],
      {}
     ]
    ],
-   "css/css-grid-1/grid-model/grid-inline-first-line-003.xht": [
+   "css/css-grid-1/grid-model/grid-inline-first-line-003.html": [
     [
-     "/css/css-grid-1/grid-model/grid-inline-first-line-003.xht",
+     "/css/css-grid-1/grid-model/grid-inline-first-line-003.html",
      [
       [
-       "/css/css-grid-1/reference/grid-text-green-margin-no-collapse-ref.xht",
+       "/css/css-grid-1/reference/grid-text-green-margin-no-collapse-ref.html",
        "=="
       ]
      ],
      {}
     ]
    ],
-   "css/css-grid-1/grid-model/grid-inline-float-001.xht": [
+   "css/css-grid-1/grid-model/grid-inline-float-001.html": [
     [
-     "/css/css-grid-1/grid-model/grid-inline-float-001.xht",
+     "/css/css-grid-1/grid-model/grid-inline-float-001.html",
      [
       [
        "/css/reference/ref-filled-green-100px-square.xht",
@@ -30649,9 +30661,9 @@
      {}
     ]
    ],
-   "css/css-grid-1/grid-model/grid-inline-floats-no-intrude-001.xht": [
+   "css/css-grid-1/grid-model/grid-inline-floats-no-intrude-001.html": [
     [
-     "/css/css-grid-1/grid-model/grid-inline-floats-no-intrude-001.xht",
+     "/css/css-grid-1/grid-model/grid-inline-floats-no-intrude-001.html",
      [
       [
        "/css/reference/ref-filled-green-100px-square.xht",
@@ -30661,21 +30673,21 @@
      {}
     ]
    ],
-   "css/css-grid-1/grid-model/grid-inline-margins-no-collapse-001.xht": [
+   "css/css-grid-1/grid-model/grid-inline-margins-no-collapse-001.html": [
     [
-     "/css/css-grid-1/grid-model/grid-inline-margins-no-collapse-001.xht",
+     "/css/css-grid-1/grid-model/grid-inline-margins-no-collapse-001.html",
      [
       [
-       "/css/css-grid-1/reference/grid-text-green-margin-no-collapse-ref.xht",
+       "/css/css-grid-1/reference/grid-text-green-margin-no-collapse-ref.html",
        "=="
       ]
      ],
      {}
     ]
    ],
-   "css/css-grid-1/grid-model/grid-inline-multicol-001.xht": [
+   "css/css-grid-1/grid-model/grid-inline-multicol-001.html": [
     [
-     "/css/css-grid-1/grid-model/grid-inline-multicol-001.xht",
+     "/css/css-grid-1/grid-model/grid-inline-multicol-001.html",
      [
       [
        "/css/reference/ref-filled-green-100px-square.xht",
@@ -30685,9 +30697,9 @@
      {}
     ]
    ],
-   "css/css-grid-1/grid-model/grid-inline-vertical-align-001.xht": [
+   "css/css-grid-1/grid-model/grid-inline-vertical-align-001.html": [
     [
-     "/css/css-grid-1/grid-model/grid-inline-vertical-align-001.xht",
+     "/css/css-grid-1/grid-model/grid-inline-vertical-align-001.html",
      [
       [
        "/css/reference/ref-filled-green-100px-square.xht",
@@ -30697,21 +30709,21 @@
      {}
     ]
    ],
-   "css/css-grid-1/grid-model/grid-margins-no-collapse-001.xht": [
+   "css/css-grid-1/grid-model/grid-margins-no-collapse-001.html": [
     [
-     "/css/css-grid-1/grid-model/grid-margins-no-collapse-001.xht",
+     "/css/css-grid-1/grid-model/grid-margins-no-collapse-001.html",
      [
       [
-       "/css/css-grid-1/reference/grid-text-green-margin-no-collapse-ref.xht",
+       "/css/css-grid-1/reference/grid-text-green-margin-no-collapse-ref.html",
        "=="
       ]
      ],
      {}
     ]
    ],
-   "css/css-grid-1/grid-model/grid-multicol-001.xht": [
+   "css/css-grid-1/grid-model/grid-multicol-001.html": [
     [
-     "/css/css-grid-1/grid-model/grid-multicol-001.xht",
+     "/css/css-grid-1/grid-model/grid-multicol-001.html",
      [
       [
        "/css/reference/ref-filled-green-100px-square.xht",
@@ -30721,9 +30733,9 @@
      {}
     ]
    ],
-   "css/css-grid-1/grid-model/grid-vertical-align-001.xht": [
+   "css/css-grid-1/grid-model/grid-vertical-align-001.html": [
     [
-     "/css/css-grid-1/grid-model/grid-vertical-align-001.xht",
+     "/css/css-grid-1/grid-model/grid-vertical-align-001.html",
      [
       [
        "/css/reference/ref-filled-green-100px-square.xht",
@@ -30889,6 +30901,30 @@
      {}
     ]
    ],
+   "css/css-position-3/position-sticky-table-tr-bottom.html": [
+    [
+     "/css/css-position-3/position-sticky-table-tr-bottom.html",
+     [
+      [
+       "/css/css-position-3/position-sticky-table-tr-bottom-ref.html",
+       "=="
+      ]
+     ],
+     {}
+    ]
+   ],
+   "css/css-position-3/position-sticky-table-tr-top.html": [
+    [
+     "/css/css-position-3/position-sticky-table-tr-top.html",
+     [
+      [
+       "/css/css-position-3/position-sticky-table-tr-top-ref.html",
+       "=="
+      ]
+     ],
+     {}
+    ]
+   ],
    "css/css-position-3/position-sticky-top.html": [
     [
      "/css/css-position-3/position-sticky-top.html",
@@ -70843,17 +70879,17 @@
      {}
     ]
    ],
-   "css/css-grid-1/reference/grid-2x2-blue-yellow-lime-magenta.xht": [
+   "css/css-grid-1/reference/grid-2x2-blue-yellow-lime-magenta.html": [
     [
      {}
     ]
    ],
-   "css/css-grid-1/reference/grid-filled-blue-yellow-green-overlapped-100px-squares.xht": [
+   "css/css-grid-1/reference/grid-filled-blue-yellow-green-overlapped-100px-squares.html": [
     [
      {}
     ]
    ],
-   "css/css-grid-1/reference/grid-first-letter-green-margin-no-collapse-ref.xht": [
+   "css/css-grid-1/reference/grid-first-letter-green-margin-no-collapse-ref.html": [
     [
      {}
     ]
@@ -70888,7 +70924,7 @@
      {}
     ]
    ],
-   "css/css-grid-1/reference/grid-text-green-margin-no-collapse-ref.xht": [
+   "css/css-grid-1/reference/grid-text-green-margin-no-collapse-ref.html": [
     [
      {}
     ]
@@ -70928,6 +70964,16 @@
      {}
     ]
    ],
+   "css/css-position-3/position-sticky-table-tr-bottom-ref.html": [
+    [
+     {}
+    ]
+   ],
+   "css/css-position-3/position-sticky-table-tr-top-ref.html": [
+    [
+     {}
+    ]
+   ],
    "css/css-position-3/position-sticky-top-ref.html": [
     [
      {}
@@ -78278,11 +78324,6 @@
      {}
     ]
    ],
-   "css/geometry-1/structured-serialization-expected.txt": [
-    [
-     {}
-    ]
-   ],
    "css/geometry-1/support/dommatrix-test-util.js": [
     [
      {}
@@ -78308,6 +78349,21 @@
      {}
     ]
    ],
+   "css/motion-1/parsing/offset-path-parsing-valid-expected.txt": [
+    [
+     {}
+    ]
+   ],
+   "css/motion-1/parsing/offset-rotate-parsing-invalid-expected.txt": [
+    [
+     {}
+    ]
+   ],
+   "css/motion-1/parsing/resources/parsing-testcommon.js": [
+    [
+     {}
+    ]
+   ],
    "css/reference/black_box_ends_when_blue_box_ends_6_boxes_ahem.html": [
     [
      {}
@@ -99003,6 +99059,11 @@
      {}
     ]
    ],
+   "service-workers/service-worker/clients-get-client-types.https-expected.txt": [
+    [
+     {}
+    ]
+   ],
    "service-workers/service-worker/controller-on-disconnect.https-expected.txt": [
     [
      {}
@@ -99253,6 +99314,11 @@
      {}
     ]
    ],
+   "service-workers/service-worker/resources/clients-get-client-types-frame-worker.js": [
+    [
+     {}
+    ]
+   ],
    "service-workers/service-worker/resources/clients-get-client-types-frame.html": [
     [
      {}
@@ -99263,6 +99329,11 @@
      {}
     ]
    ],
+   "service-workers/service-worker/resources/clients-get-client-types-worker.js": [
+    [
+     {}
+    ]
+   ],
    "service-workers/service-worker/resources/clients-get-cross-origin-frame.html": [
     [
      {}
@@ -99283,6 +99354,11 @@
      {}
     ]
    ],
+   "service-workers/service-worker/resources/clients-matchall-client-types-dedicated-worker.js": [
+    [
+     {}
+    ]
+   ],
    "service-workers/service-worker/resources/clients-matchall-client-types-iframe.html": [
     [
      {}
@@ -99673,6 +99749,11 @@
      {}
     ]
    ],
+   "service-workers/service-worker/resources/http-to-https-redirect-and-register-iframe.html": [
+    [
+     {}
+    ]
+   ],
    "service-workers/service-worker/resources/iframe-register-link-element.html": [
     [
      {}
@@ -100148,6 +100229,11 @@
      {}
     ]
    ],
+   "service-workers/service-worker/resources/windowclient-navigate-worker.js": [
+    [
+     {}
+    ]
+   ],
    "service-workers/service-worker/resources/worker-interception-iframe.https.html": [
     [
      {}
@@ -100168,6 +100254,11 @@
      {}
     ]
    ],
+   "service-workers/service-worker/skip-waiting-installed.https-expected.txt": [
+    [
+     {}
+    ]
+   ],
    "service-workers/service-worker/update-after-oneday.https-expected.txt": [
     [
      {}
@@ -111386,6 +111477,22 @@
      }
     ]
    ],
+   "IndexedDB/large-nested-cloning.html": [
+    [
+     "/IndexedDB/large-nested-cloning.html",
+     {
+      "timeout": "long"
+     }
+    ]
+   ],
+   "IndexedDB/large-requests-abort.html": [
+    [
+     "/IndexedDB/large-requests-abort.html",
+     {
+      "timeout": "long"
+     }
+    ]
+   ],
    "IndexedDB/list_ordering.htm": [
     [
      "/IndexedDB/list_ordering.htm",
@@ -111426,6 +111533,14 @@
      }
     ]
    ],
+   "IndexedDB/request-event-ordering.html": [
+    [
+     "/IndexedDB/request-event-ordering.html",
+     {
+      "timeout": "long"
+     }
+    ]
+   ],
    "IndexedDB/request_bubble-and-capture.htm": [
     [
      "/IndexedDB/request_bubble-and-capture.htm",
@@ -114658,12 +114773,6 @@
      {}
     ]
    ],
-   "content-security-policy/embedded-enforcement/required_csp-header-invalid-format.html": [
-    [
-     "/content-security-policy/embedded-enforcement/required_csp-header-invalid-format.html",
-     {}
-    ]
-   ],
    "content-security-policy/embedded-enforcement/required_csp-header.html": [
     [
      "/content-security-policy/embedded-enforcement/required_csp-header.html",
@@ -116512,75 +116621,75 @@
      {}
     ]
    ],
-   "css/css-grid-1/grid-definition/grid-inline-support-flexible-lengths-001.xht": [
+   "css/css-grid-1/grid-definition/grid-inline-support-flexible-lengths-001.html": [
     [
-     "/css/css-grid-1/grid-definition/grid-inline-support-flexible-lengths-001.xht",
+     "/css/css-grid-1/grid-definition/grid-inline-support-flexible-lengths-001.html",
      {}
     ]
    ],
-   "css/css-grid-1/grid-definition/grid-inline-support-grid-template-areas-001.xht": [
+   "css/css-grid-1/grid-definition/grid-inline-support-grid-template-areas-001.html": [
     [
-     "/css/css-grid-1/grid-definition/grid-inline-support-grid-template-areas-001.xht",
+     "/css/css-grid-1/grid-definition/grid-inline-support-grid-template-areas-001.html",
      {}
     ]
    ],
-   "css/css-grid-1/grid-definition/grid-inline-support-grid-template-columns-rows-001.xht": [
+   "css/css-grid-1/grid-definition/grid-inline-support-grid-template-columns-rows-001.html": [
     [
-     "/css/css-grid-1/grid-definition/grid-inline-support-grid-template-columns-rows-001.xht",
+     "/css/css-grid-1/grid-definition/grid-inline-support-grid-template-columns-rows-001.html",
      {}
     ]
    ],
-   "css/css-grid-1/grid-definition/grid-inline-support-named-grid-lines-001.xht": [
+   "css/css-grid-1/grid-definition/grid-inline-support-named-grid-lines-001.html": [
     [
-     "/css/css-grid-1/grid-definition/grid-inline-support-named-grid-lines-001.xht",
+     "/css/css-grid-1/grid-definition/grid-inline-support-named-grid-lines-001.html",
      {}
     ]
    ],
-   "css/css-grid-1/grid-definition/grid-inline-support-repeat-001.xht": [
+   "css/css-grid-1/grid-definition/grid-inline-support-repeat-001.html": [
     [
-     "/css/css-grid-1/grid-definition/grid-inline-support-repeat-001.xht",
+     "/css/css-grid-1/grid-definition/grid-inline-support-repeat-001.html",
      {}
     ]
    ],
-   "css/css-grid-1/grid-definition/grid-inline-template-columns-rows-resolved-values-001.xht": [
+   "css/css-grid-1/grid-definition/grid-inline-template-columns-rows-resolved-values-001.html": [
     [
-     "/css/css-grid-1/grid-definition/grid-inline-template-columns-rows-resolved-values-001.xht",
+     "/css/css-grid-1/grid-definition/grid-inline-template-columns-rows-resolved-values-001.html",
      {}
     ]
    ],
-   "css/css-grid-1/grid-definition/grid-support-flexible-lengths-001.xht": [
+   "css/css-grid-1/grid-definition/grid-support-flexible-lengths-001.html": [
     [
-     "/css/css-grid-1/grid-definition/grid-support-flexible-lengths-001.xht",
+     "/css/css-grid-1/grid-definition/grid-support-flexible-lengths-001.html",
      {}
     ]
    ],
-   "css/css-grid-1/grid-definition/grid-support-grid-template-areas-001.xht": [
+   "css/css-grid-1/grid-definition/grid-support-grid-template-areas-001.html": [
     [
-     "/css/css-grid-1/grid-definition/grid-support-grid-template-areas-001.xht",
+     "/css/css-grid-1/grid-definition/grid-support-grid-template-areas-001.html",
      {}
     ]
    ],
-   "css/css-grid-1/grid-definition/grid-support-grid-template-columns-rows-001.xht": [
+   "css/css-grid-1/grid-definition/grid-support-grid-template-columns-rows-001.html": [
     [
-     "/css/css-grid-1/grid-definition/grid-support-grid-template-columns-rows-001.xht",
+     "/css/css-grid-1/grid-definition/grid-support-grid-template-columns-rows-001.html",
      {}
     ]
    ],
-   "css/css-grid-1/grid-definition/grid-support-named-grid-lines-001.xht": [
+   "css/css-grid-1/grid-definition/grid-support-named-grid-lines-001.html": [
     [
-     "/css/css-grid-1/grid-definition/grid-support-named-grid-lines-001.xht",
+     "/css/css-grid-1/grid-definition/grid-support-named-grid-lines-001.html",
      {}
     ]
    ],
-   "css/css-grid-1/grid-definition/grid-support-repeat-001.xht": [
+   "css/css-grid-1/grid-definition/grid-support-repeat-001.html": [
     [
-     "/css/css-grid-1/grid-definition/grid-support-repeat-001.xht",
+     "/css/css-grid-1/grid-definition/grid-support-repeat-001.html",
      {}
     ]
    ],
-   "css/css-grid-1/grid-definition/grid-template-columns-rows-resolved-values-001.xht": [
+   "css/css-grid-1/grid-definition/grid-template-columns-rows-resolved-values-001.html": [
     [
-     "/css/css-grid-1/grid-definition/grid-template-columns-rows-resolved-values-001.xht",
+     "/css/css-grid-1/grid-definition/grid-template-columns-rows-resolved-values-001.html",
      {}
     ]
    ],
@@ -116596,15 +116705,15 @@
      {}
     ]
    ],
-   "css/css-grid-1/grid-model/grid-computed-value-display-floated-items-001.xht": [
+   "css/css-grid-1/grid-model/grid-computed-value-display-floated-items-001.html": [
     [
-     "/css/css-grid-1/grid-model/grid-computed-value-display-floated-items-001.xht",
+     "/css/css-grid-1/grid-model/grid-computed-value-display-floated-items-001.html",
      {}
     ]
    ],
-   "css/css-grid-1/grid-model/grid-support-display-001.xht": [
+   "css/css-grid-1/grid-model/grid-support-display-001.html": [
     [
-     "/css/css-grid-1/grid-model/grid-support-display-001.xht",
+     "/css/css-grid-1/grid-model/grid-support-display-001.html",
      {}
     ]
    ],
@@ -118366,6 +118475,66 @@
      {}
     ]
    ],
+   "css/motion-1/parsing/offset-anchor-parsing-invalid.html": [
+    [
+     "/css/motion-1/parsing/offset-anchor-parsing-invalid.html",
+     {}
+    ]
+   ],
+   "css/motion-1/parsing/offset-anchor-parsing-valid.html": [
+    [
+     "/css/motion-1/parsing/offset-anchor-parsing-valid.html",
+     {}
+    ]
+   ],
+   "css/motion-1/parsing/offset-distance-parsing-invalid.html": [
+    [
+     "/css/motion-1/parsing/offset-distance-parsing-invalid.html",
+     {}
+    ]
+   ],
+   "css/motion-1/parsing/offset-distance-parsing-valid.html": [
+    [
+     "/css/motion-1/parsing/offset-distance-parsing-valid.html",
+     {}
+    ]
+   ],
+   "css/motion-1/parsing/offset-path-parsing-invalid.html": [
+    [
+     "/css/motion-1/parsing/offset-path-parsing-invalid.html",
+     {}
+    ]
+   ],
+   "css/motion-1/parsing/offset-path-parsing-valid.html": [
+    [
+     "/css/motion-1/parsing/offset-path-parsing-valid.html",
+     {}
+    ]
+   ],
+   "css/motion-1/parsing/offset-position-parsing-invalid.html": [
+    [
+     "/css/motion-1/parsing/offset-position-parsing-invalid.html",
+     {}
+    ]
+   ],
+   "css/motion-1/parsing/offset-position-parsing-valid.html": [
+    [
+     "/css/motion-1/parsing/offset-position-parsing-valid.html",
+     {}
+    ]
+   ],
+   "css/motion-1/parsing/offset-rotate-parsing-invalid.html": [
+    [
+     "/css/motion-1/parsing/offset-rotate-parsing-invalid.html",
+     {}
+    ]
+   ],
+   "css/motion-1/parsing/offset-rotate-parsing-valid.html": [
+    [
+     "/css/motion-1/parsing/offset-rotate-parsing-valid.html",
+     {}
+    ]
+   ],
    "css/selectors4/focus-display-none-001.html": [
     [
      "/css/selectors4/focus-display-none-001.html",
@@ -123376,6 +123545,12 @@
      {}
     ]
    ],
+   "fetch/dangling-markup-mitigation.tentative.html": [
+    [
+     "/fetch/dangling-markup-mitigation.tentative.html",
+     {}
+    ]
+   ],
    "fetch/http-cache/304-update.html": [
     [
      "/fetch/http-cache/304-update.html",
@@ -151866,6 +152041,12 @@
      {}
     ]
    ],
+   "scroll-into-view/check-scroll-position.html": [
+    [
+     "/scroll-into-view/check-scroll-position.html",
+     {}
+    ]
+   ],
    "secure-contexts/basic-dedicated-worker.html": [
     [
      "/secure-contexts/basic-dedicated-worker.html",
@@ -152872,6 +153053,12 @@
      {}
     ]
    ],
+   "service-workers/service-worker/http-to-https-redirect-and-register.https.html": [
+    [
+     "/service-workers/service-worker/http-to-https-redirect-and-register.https.html",
+     {}
+    ]
+   ],
    "service-workers/service-worker/iframe-sandbox-register-link-element.https.html": [
     [
      "/service-workers/service-worker/iframe-sandbox-register-link-element.https.html",
@@ -153336,6 +153523,12 @@
      {}
     ]
    ],
+   "service-workers/service-worker/windowclient-navigate.https.html": [
+    [
+     "/service-workers/service-worker/windowclient-navigate.https.html",
+     {}
+    ]
+   ],
    "service-workers/service-worker/worker-interception.https.html": [
     [
      "/service-workers/service-worker/worker-interception.https.html",
@@ -161892,7 +162085,7 @@
    "support"
   ],
   "./lint.whitelist": [
-   "7775ac72c445b33ed6d42afa25d5497bc98f7d18",
+   "bd7dbd60c482c98cdeff4ed8e4a6c31124c0c941",
    "support"
   ],
   "./update-built-tests.sh": [
@@ -167799,6 +167992,14 @@
    "ef0680b2623521388e23654b5428cbfb553b4ee8",
    "testharness"
   ],
+  "IndexedDB/large-nested-cloning.html": [
+   "831510a9d36a19081cf037940b19092e37303e19",
+   "testharness"
+  ],
+  "IndexedDB/large-requests-abort.html": [
+   "7b8b1ccb8b7f9d737b648ceade5192a57c4ad690",
+   "testharness"
+  ],
   "IndexedDB/list_ordering.htm": [
    "64544e2f7700d28590e791e54447a59d167d3813",
    "testharness"
@@ -167823,6 +168024,10 @@
    "8d848f3ef41d81a3abfe9c8ed29303d1ce0bad58",
    "testharness"
   ],
+  "IndexedDB/request-event-ordering.html": [
+   "44e8124ba121e64d82e47a99735e1a1df4f8ed44",
+   "testharness"
+  ],
   "IndexedDB/request_bubble-and-capture.htm": [
    "9c486babd57c2d14bb251d5bba202b3dbd6c802d",
    "testharness"
@@ -167832,7 +168037,7 @@
    "testharness"
   ],
   "IndexedDB/support-promises.js": [
-   "64bd991aa7b4cdd85b8c69e7d8e9c432d82cf4b5",
+   "3f1413bc2bf958cd6f5f41996f41112bc9f83f1a",
    "support"
   ],
   "IndexedDB/support.js": [
@@ -171623,12 +171828,8 @@
    "d5a253732352f46d33c1a58d1a3183a88daa3a75",
    "testharness"
   ],
-  "content-security-policy/embedded-enforcement/required_csp-header-invalid-format.html": [
-   "8a1dc21fe4d9619c89e91a4f584c19003fbda9a0",
-   "testharness"
-  ],
   "content-security-policy/embedded-enforcement/required_csp-header.html": [
-   "c8d097671401d3518eb015e56e37f3ddbaefcd76",
+   "ea1ce769c6f529ac0f0f288634c9fe26d99dcbed",
    "testharness"
   ],
   "content-security-policy/embedded-enforcement/subsumption_algorithm-general.html": [
@@ -171692,7 +171893,7 @@
    "support"
   ],
   "content-security-policy/embedded-enforcement/support/testharness-helper.sub.js": [
-   "b80f004b7437ce47275c08e4f24e60e59b5a301f",
+   "01887343762a0f997ee59c8392a63d0a6101b1f9",
    "support"
   ],
   "content-security-policy/font-src/font-match-allowed.sub.html": [
@@ -172212,11 +172413,11 @@
    "testharness"
   ],
   "content-security-policy/nonce-hiding/script-nonces-hidden-meta.tentative.html": [
-   "b7a76b55c026e7846dad550fef2fca9a63dcff5e",
+   "a1de5c33148f7e202d13bc5c25d115a29ac81b3b",
    "testharness"
   ],
   "content-security-policy/nonce-hiding/script-nonces-hidden.tentative.html": [
-   "b9cc76f5ba6240cc9010f8980aacb90292fc4c5d",
+   "c3265d6ead066201f712aa06beac162f365dd058",
    "testharness"
   ],
   "content-security-policy/nonce-hiding/script-nonces-hidden.tentative.html.headers": [
@@ -172224,11 +172425,11 @@
    "support"
   ],
   "content-security-policy/nonce-hiding/svgscript-nonces-hidden-meta.tentative.html": [
-   "f3c1051685334d0e753c427f7286f8e57154f054",
+   "9ea075f30ba75a712f1fd7c05d413caaca0af67a",
    "testharness"
   ],
   "content-security-policy/nonce-hiding/svgscript-nonces-hidden.tentative.html": [
-   "501dc94f4a25c7cd885334c0e1828b556326b3ad",
+   "7345b65ebfdecad898ce1d3acd6ee5353163a38d",
    "testharness"
   ],
   "content-security-policy/nonce-hiding/svgscript-nonces-hidden.tentative.html.headers": [
@@ -173092,7 +173293,7 @@
    "testharness"
   ],
   "credential-management/idl.https.html": [
-   "484b6002fc360f239fca0794d2aa60393aeebe1d",
+   "0df70baded35ef70ab7395c8933ba7e1d041aa85",
    "testharness"
   ],
   "css-font-loading/fontfacesetloadevent-constructor.html": [
@@ -173132,15 +173333,15 @@
    "testharness"
   ],
   "css-typed-om/declared-styleMap-accepts-inherit.html": [
-   "2d6e5a3bc89559c671ed9a2dbad8e5f456b947a9",
+   "31cb4e38d12d19c0b90aceed979fbbaedd00dadd",
    "testharness"
   ],
   "css-typed-om/styleMap-update-function-expected.txt": [
-   "bbcf689bd0b536339ec537f888d3e91bb8ec09ff",
+   "0721805eb1cbd501f0b19aa377b0f40c426e1b28",
    "support"
   ],
   "css-typed-om/styleMap-update-function.html": [
-   "ba9d58c998b7c7ab586fd54e80a0466133c91ebc",
+   "1b98ee851da85aa7ffd3d523df0fd2fd4fdbef22",
    "testharness"
   ],
   "css-values/unset-value-storage.html": [
@@ -183564,7 +183765,7 @@
    "testharness"
   ],
   "css/css-align-3/default-alignment/place-items-shorthand-006.html": [
-   "f84ca76042d8475cfad273903157044125ce73a0",
+   "3de2cbe0f38c6efd2cf830fadc858988600b7900",
    "testharness"
   ],
   "css/css-align-3/distribution-values/space-evenly-001.html": [
@@ -183872,7 +184073,7 @@
    "support"
   ],
   "css/css-flexbox-1/Flexible-order.html": [
-   "2c3c198cc210c007a1cd059b3960d5a24f90c359",
+   "ff6b01d6069b9106c60e3f86ac29bffb7c94f916",
    "reftest"
   ],
   "css/css-flexbox-1/align-content-001.htm": [
@@ -183924,79 +184125,79 @@
    "visual"
   ],
   "css/css-flexbox-1/align-items-001.htm": [
-   "5b2a8f8d6d15ba2026b1f6b449f9208e0bc6c312",
+   "756aef82fb86de2ed5f154f92597f505ce6144ce",
    "reftest"
   ],
   "css/css-flexbox-1/align-items-002.htm": [
-   "daee42c9d0120f8c398466687363e1eff4fc69ed",
+   "749f543687e63a66a9ba337269d37a2d5830ad16",
    "reftest"
   ],
   "css/css-flexbox-1/align-items-003.htm": [
-   "9de495f0b990496d7eec9a53bfb7a64077b95186",
+   "4b49395868899feacb7b68cf160471482a95bac5",
    "reftest"
   ],
   "css/css-flexbox-1/align-items-004.htm": [
-   "f96dec9d161f07c84eb71223ace82ac3a63bd1cd",
+   "1acdb1a8d8fe0902db3e22714b1d933385d80740",
    "reftest"
   ],
   "css/css-flexbox-1/align-items-005.htm": [
-   "2ffe50e8dcafe8a95b0a37bfe4d4d3deba84a0ca",
+   "d5e39cc8afacb90baa48cf7ae41d499f817e7426",
    "reftest"
   ],
   "css/css-flexbox-1/align-self-001.html": [
-   "4b79a97d23d0d81e2fbe9d83256b738c12eaccc9",
+   "74fad615303053096f9af7ec697f4584dee9900e",
    "reftest"
   ],
   "css/css-flexbox-1/align-self-002.html": [
-   "933cb4b14854b31ed7dc3520ea1e7ff30bb7fef5",
+   "42b455a5baa179afb2ffbceac9d1c41d728d54bc",
    "reftest"
   ],
   "css/css-flexbox-1/align-self-003.html": [
-   "8cb7cafb64aed069bbd15af3a5ae055c49cdff28",
+   "f6338233e0da23099a600d3a72de818c28cd71bd",
    "reftest"
   ],
   "css/css-flexbox-1/align-self-004.html": [
-   "ef3b6900797399acbfd4454855be46c3e5e0c179",
+   "acecc6b3b8307838ef709558f26e29ec06016d3b",
    "reftest"
   ],
   "css/css-flexbox-1/align-self-005.html": [
-   "231d969bac1b8b6284d2025ce998158c636ec2ad",
+   "2e566b333931c6121a80254082571d5e09a58356",
    "reftest"
   ],
   "css/css-flexbox-1/align-self-006.html": [
-   "ee702de24124f7bd4724976703354476e41861be",
+   "238b8d49518f47f5e67343ac4747ddbd08c63b06",
    "visual"
   ],
   "css/css-flexbox-1/align-self-007.html": [
-   "8e20f586da0bfe61cd936e0223dd96de382acb7a",
+   "392674e05f38dfc0a32cbff1e9e3c53b5322fea0",
    "reftest"
   ],
   "css/css-flexbox-1/align-self-008.html": [
-   "22d8043b6f41a7be3d173b6cf10256e320477337",
+   "59991be2c8d00f79f09023e0c96e971724740db5",
    "reftest"
   ],
   "css/css-flexbox-1/align-self-009.html": [
-   "8da43f3d2791803baffad49fe70108094ffdf9e5",
+   "f808db06bf153cdfa0eeaa231692aee82a2f9638",
    "reftest"
   ],
   "css/css-flexbox-1/align-self-010.html": [
-   "10269a05d02d93b092f54a441e90e34dbbd1c4e7",
+   "3a891f5e1603ca777b96e41b1c43e5570c552107",
    "visual"
   ],
   "css/css-flexbox-1/align-self-011.html": [
-   "b3fbf589a794f2358b1cf24084273165a2953849",
+   "177ee5864a15236c0142ddddd79b8b18aae3b998",
    "reftest"
   ],
   "css/css-flexbox-1/align-self-012.html": [
-   "662aaf055980e4ca895dee58210c8d7fbb53e342",
+   "71d26c3496a935398d25793bf8232ca680f512fe",
    "reftest"
   ],
   "css/css-flexbox-1/align-self-013.html": [
-   "7878dbc75674f57c699ba4796564e1b55423d455",
+   "55ac1cc272d6feaba627f45e402671e7bc83487d",
    "reftest"
   ],
   "css/css-flexbox-1/css-box-justify-content.html": [
-   "f2c693554912c5908b43e48282614b2b93159a8c",
+   "a3e68485221a64b4197da0ea9e4e56352406098f",
    "reftest"
   ],
   "css/css-flexbox-1/css-flexbox-column-ref.html": [
@@ -184004,27 +184205,27 @@
    "support"
   ],
   "css/css-flexbox-1/css-flexbox-column-reverse-wrap-reverse.html": [
-   "eaa48fc8c0f9fc295648dbbf10e0ef942dc6aa01",
+   "eed8402e5c8bc52ac32579497c1c20d8cf84a6e0",
    "reftest"
   ],
   "css/css-flexbox-1/css-flexbox-column-reverse-wrap.html": [
-   "22928f3748f78cb065c5e18e8af41ddf6a4ad333",
+   "f8b7a1efd0be11220374a971418fee2657f93410",
    "reftest"
   ],
   "css/css-flexbox-1/css-flexbox-column-reverse.html": [
-   "f5b9932cfb1d60488b510b66bfd439cad404367d",
+   "eef13575bf7fa6cd4391f3cd6a44b7f6b1970dd3",
    "reftest"
   ],
   "css/css-flexbox-1/css-flexbox-column-wrap-reverse.html": [
-   "01489832e589a0d47a84706a640ac7a4f37c4035",
+   "ce51b358374965a614858c92f2b3de3b430b18b1",
    "reftest"
   ],
   "css/css-flexbox-1/css-flexbox-column-wrap.html": [
-   "f513e656e09645f2b29256c25baaefd426c58fc8",
+   "28f3cafb64d25d5d2239688ad80ee67146d9c844",
    "reftest"
   ],
   "css/css-flexbox-1/css-flexbox-column.html": [
-   "b1d144e21660aac1985a4488bcbeabbadd369a68",
+   "ff404898db0c4b4af3dabcd09bb3db7543404ecf",
    "reftest"
   ],
   "css/css-flexbox-1/css-flexbox-height-animation-stretch-ref.html": [
@@ -184032,11 +184233,11 @@
    "support"
   ],
   "css/css-flexbox-1/css-flexbox-height-animation-stretch.html": [
-   "0645e7e879623533cbfe0d04044a2595368736ae",
+   "54d979d8a3f42eb09c2af1080ba9535e56036ae7",
    "reftest"
   ],
   "css/css-flexbox-1/css-flexbox-img-expand-evenly.html": [
-   "af76fbba030b265ff1f0d5c46dfc684e060bc0e7",
+   "081f592d13347f9e6c028bf1504787202f6f948e",
    "reftest"
   ],
   "css/css-flexbox-1/css-flexbox-row-ref.html": [
@@ -184044,27 +184245,27 @@
    "support"
   ],
   "css/css-flexbox-1/css-flexbox-row-reverse-wrap-reverse.html": [
-   "919eb00ab5f7530b4bbbf766e281d5407b0fc333",
+   "dc1e2d9daeef3f7e90c44185474a24b8348b037b",
    "reftest"
   ],
   "css/css-flexbox-1/css-flexbox-row-reverse-wrap.html": [
-   "6b4f0f5cd5c4777f833c5e9c70b47c754d1e062f",
+   "10c50b1950c7c45ce047f8a2a797916433dcb83b",
    "reftest"
   ],
   "css/css-flexbox-1/css-flexbox-row-reverse.html": [
-   "7132b2cca281c844b1f6e99a28019c4f5242978b",
+   "80f1928e3e624c228ca1f019ecec153f1de02c98",
    "reftest"
   ],
   "css/css-flexbox-1/css-flexbox-row-wrap-reverse.html": [
-   "9e4f2dab700ede5409b8d21b5a4ee95a6d73a927",
+   "ccaafd4181f5fa9736c3f6bc028e452a690dc61a",
    "reftest"
   ],
   "css/css-flexbox-1/css-flexbox-row-wrap.html": [
-   "d03adacbc124b75f1af6855dcb735a92acc32c3d",
+   "63021ccc25275104d811e6f03a4fc22834a97f3b",
    "reftest"
   ],
   "css/css-flexbox-1/css-flexbox-row.html": [
-   "dfa18a86f7df250d90d66bdbf08fbf705db5a784",
+   "fcb68e67ac70a6df513b048e2e706f00e52a0b7e",
    "reftest"
   ],
   "css/css-flexbox-1/css-flexbox-test1-ref.html": [
@@ -184072,7 +184273,7 @@
    "support"
   ],
   "css/css-flexbox-1/css-flexbox-test1.html": [
-   "e0c84e3e3d75d489e3881a9a5154ec0a529c36b1",
+   "46bb183bac7c90a8ef564b50e7570610a5cfaa41",
    "reftest"
   ],
   "css/css-flexbox-1/display-flex-001.htm": [
@@ -184132,39 +184333,39 @@
    "reftest"
   ],
   "css/css-flexbox-1/flex-basis-001.html": [
-   "1d61b08ea7fae094441862b9ad1279ad3f3ff2cb",
+   "d369688c569eeeecff00e50e4b2aac0c48d43927",
    "reftest"
   ],
   "css/css-flexbox-1/flex-basis-002.html": [
-   "b437f8ee301321c4a3773022869e4153472bc89f",
+   "643a5c9d63ef02b7736d6f89f3d1cb6e8845edca",
    "reftest"
   ],
   "css/css-flexbox-1/flex-basis-003.html": [
-   "ec86b4697c64a68e7e738a507887ad7815f9ccf9",
+   "a5f091b71d029de4006e78f0c6a3cbfe51a4f1ec",
    "reftest"
   ],
   "css/css-flexbox-1/flex-basis-004.html": [
-   "5154bda7e3c7f82739f2da1c51cb8a42aa2447dd",
+   "5604017cd33b7e101d217462721f18aff494106a",
    "reftest"
   ],
   "css/css-flexbox-1/flex-basis-005.html": [
-   "d0f9558d0b39572ac0e370a9426243b50cfacf9a",
+   "af141d6b647f8d060131f43a8adf4c553b107b85",
    "reftest"
   ],
   "css/css-flexbox-1/flex-basis-006.html": [
-   "b9567c1b37bac441f653a688500ed64a35af5bf2",
+   "8627160afd2b361bd8ce067b120dc6e4b9053018",
    "reftest"
   ],
   "css/css-flexbox-1/flex-basis-007.html": [
-   "0068cb8a65cc8f7bbd1cc4b61e306c8f3900691a",
+   "0cb0323ba5c4ee14378e51f769c1e8f7b8e85243",
    "reftest"
   ],
   "css/css-flexbox-1/flex-basis-008.html": [
-   "923155b3f8245cb35e0b7783d844cb016092d5a8",
+   "3ab0276276547c80ee6d4ef8dc42920ec707be23",
    "reftest"
   ],
   "css/css-flexbox-1/flex-box-wrap.html": [
-   "0677e3065098a9cc10ea23fa5cd7c8745e081c64",
+   "59faef234d50e0340bb4110dae9813e05cd0a29d",
    "reftest"
   ],
   "css/css-flexbox-1/flex-container-margin.html": [
@@ -184228,7 +184429,7 @@
    "support"
   ],
   "css/css-flexbox-1/flex-flow-001.html": [
-   "caf8300675b29a935b1220c8e2c61445f22f34d0",
+   "b6fcd5276ad5182da6f9ffd89c532b0e5a04ac8a",
    "reftest"
   ],
   "css/css-flexbox-1/flex-flow-002-ref.html": [
@@ -184236,23 +184437,23 @@
    "support"
   ],
   "css/css-flexbox-1/flex-flow-002.html": [
-   "92ad2fcfa476b0b1e9b6081e4536034d17a9eb17",
+   "305c51c77edc4627cea1f16e07ac2816d005e6b3",
    "reftest"
   ],
   "css/css-flexbox-1/flex-flow-003.html": [
-   "0fce0376e33a3abf006cfe47768c44db8f8deb29",
+   "58096a46c890f4f02205f6dfb8ea73fc8f561ab4",
    "reftest"
   ],
   "css/css-flexbox-1/flex-flow-004.html": [
-   "15deb88decf63703be6724c7f42f5e650c68d1e0",
+   "c7aa0b630a2c1b21f8733fe9455d1526fe21e07c",
    "reftest"
   ],
   "css/css-flexbox-1/flex-flow-005.html": [
-   "0cd2b8963dbd8d53ee2cb3d7f3d8e259e509c822",
+   "3497be891a2de67728c690d1b704306bf4d3471b",
    "reftest"
   ],
   "css/css-flexbox-1/flex-flow-006.html": [
-   "800ca50f95d3efde99f34236b43dd5be7843496a",
+   "942e22ea7592053720295ce18a3c6600793805c2",
    "reftest"
   ],
   "css/css-flexbox-1/flex-flow-007-ref.html": [
@@ -184260,27 +184461,27 @@
    "support"
   ],
   "css/css-flexbox-1/flex-flow-007.html": [
-   "ae779aac94e3c8c5e1b0997317401c621ae78f5c",
+   "eb8b64dd05f6d6b92a320616dcea354716dae7ac",
    "reftest"
   ],
   "css/css-flexbox-1/flex-flow-008.html": [
-   "256745b55b8c5b9a7545feb9ddf0b45338342ba9",
+   "5434157016f77662ac3c6f1b95d28cc677ab71e5",
    "reftest"
   ],
   "css/css-flexbox-1/flex-flow-009.html": [
-   "b738fb6c817fa43f5ea04c5f90a1d038e5c62323",
+   "277c2507283f06333d4fec0a760b5a66a357843c",
    "reftest"
   ],
   "css/css-flexbox-1/flex-flow-010.html": [
-   "4bfc5ac9a02959b10f736e65c736178b6de18374",
+   "69f875f6afc91848c28f2475e987941d53a5aa6a",
    "reftest"
   ],
   "css/css-flexbox-1/flex-flow-011.html": [
-   "32b2843ab367f96381af27ca6d7a8d449a24fea2",
+   "e8194a4f229d3f4a0415c5bda815ecc782c400ee",
    "reftest"
   ],
   "css/css-flexbox-1/flex-flow-012.html": [
-   "48f788ba0aad411387b492aa342406c00c547003",
+   "54d649dac5cde4c2a745c782bf0ef429d82b31dc",
    "reftest"
   ],
   "css/css-flexbox-1/flex-grow-001-ref.xht": [
@@ -184288,31 +184489,31 @@
    "support"
   ],
   "css/css-flexbox-1/flex-grow-001.xht": [
-   "a357837e57facdd36ddac70176daf500047bacb7",
+   "5bc89097628eb66878a2c7e56bb28defa9e3072b",
    "reftest"
   ],
   "css/css-flexbox-1/flex-grow-002.html": [
-   "bb3d510a6ac80f83f541fb3a2c79246233f25b9a",
+   "08af9afef390fadee247e07d34a0c4eaf78224f0",
    "reftest"
   ],
   "css/css-flexbox-1/flex-grow-003.html": [
-   "c01be0f19b7226011f52e47754e7c2bf5762000f",
+   "36e17bf40a65c1cd677d18966b001254deb47661",
    "reftest"
   ],
   "css/css-flexbox-1/flex-grow-004.html": [
-   "1e5f7985b0aec4d7134f990f802f47a640cd3dfe",
+   "6a440610b1879aa9bc03e573b935511ff7886e9d",
    "reftest"
   ],
   "css/css-flexbox-1/flex-grow-005.html": [
-   "5d1b67f961824dc11a27decd15e848f9d84a29f1",
+   "55fea24a7b8bbf979fedb42e16a56e0c33693d1d",
    "reftest"
   ],
   "css/css-flexbox-1/flex-grow-006.html": [
-   "a3ae4d385e319a61f999660e981a41cdff9e5ee1",
+   "c4774d69f928e7045ba7e09e21a00add3ed4c90e",
    "reftest"
   ],
   "css/css-flexbox-1/flex-grow-007.html": [
-   "5c64560e8be13e2fd6faedc34f15065ecd9663e8",
+   "ff8de0d06884e5626a391ae1c98018f2bb89517d",
    "reftest"
   ],
   "css/css-flexbox-1/flex-items-flexibility.html": [
@@ -184324,7 +184525,7 @@
    "support"
   ],
   "css/css-flexbox-1/flex-lines/multi-line-wrap-reverse-column-reverse.html": [
-   "6f741f34c4bdc67399767fd5faca6ccbb7d7a58d",
+   "60fa33f83e68426b30d7976205129b7c538fa9db",
    "reftest"
   ],
   "css/css-flexbox-1/flex-lines/multi-line-wrap-reverse-row-reverse-ref.html": [
@@ -184332,7 +184533,7 @@
    "support"
   ],
   "css/css-flexbox-1/flex-lines/multi-line-wrap-reverse-row-reverse.html": [
-   "020964b3ad601941d922532827905265370d0148",
+   "931df5832696076c42436b3fbafe6ac6bca8101d",
    "reftest"
   ],
   "css/css-flexbox-1/flex-lines/multi-line-wrap-with-column-reverse-ref.html": [
@@ -184340,7 +184541,7 @@
    "support"
   ],
   "css/css-flexbox-1/flex-lines/multi-line-wrap-with-column-reverse.html": [
-   "3eeae141ccb94efeb5022b7815ba0112fcdd1c55",
+   "48b59fb24b7d84da867bfbd7ec21c58b569a58bc",
    "reftest"
   ],
   "css/css-flexbox-1/flex-lines/multi-line-wrap-with-row-reverse-ref.html": [
@@ -184348,11 +184549,11 @@
    "support"
   ],
   "css/css-flexbox-1/flex-lines/multi-line-wrap-with-row-reverse.html": [
-   "346dda80f53259407b6197a1085343ba55ab3497",
+   "16f9c4086f396483bca871d2f465f889a3edc547",
    "reftest"
   ],
   "css/css-flexbox-1/flex-margin-no-collapse.html": [
-   "1ab13dbeb886274beabee614cd51fda96e78fd4f",
+   "68a5679283c7afb1a205da806735532be1ede315",
    "reftest"
   ],
   "css/css-flexbox-1/flex-minimum-height-flex-items-001.xht": [
@@ -184428,35 +184629,35 @@
    "reftest"
   ],
   "css/css-flexbox-1/flex-shrink-001.html": [
-   "43ecfd3c463b06649921968068ed507dd1db31be",
+   "0258f7cf56a4d934ee6466d7e1a41afde52d068e",
    "reftest"
   ],
   "css/css-flexbox-1/flex-shrink-002.html": [
-   "8d28b4d09381a1f3bc7788f56f43cb47e259c055",
+   "e21f30c93f6761317751fdab011772ead0cc0f58",
    "reftest"
   ],
   "css/css-flexbox-1/flex-shrink-003.html": [
-   "a349e3a5475e210eaf66aa2434ce5a2d2a6ec905",
+   "251331837f37432e3c48b6af2cba3c56094db6d6",
    "reftest"
   ],
   "css/css-flexbox-1/flex-shrink-004.html": [
-   "79c1b349fb433f4f48812d93ecd9a7adf9fc632b",
+   "8ea11d1ca6760d1ef05b4b76664290e876a58107",
    "reftest"
   ],
   "css/css-flexbox-1/flex-shrink-005.html": [
-   "ad20f48ad8c075e4830653ab0c6754d3a946b166",
+   "e7a76f7aacb3da89de7d6feeed922aea9361c9fd",
    "reftest"
   ],
   "css/css-flexbox-1/flex-shrink-006.html": [
-   "451d94cf79a93c47657bdc8a09e68d46314188fc",
+   "2ba2e8ef872e00ef4c987872274604fb51c13e13",
    "reftest"
   ],
   "css/css-flexbox-1/flex-shrink-007.html": [
-   "3ee2b7cd8f22ff48e3fe4e3d2f4112e549fff20d",
+   "75a0e97592c7f4463b213e18638e1594c9c30647",
    "reftest"
   ],
   "css/css-flexbox-1/flex-shrink-008.html": [
-   "e3ff210e839c8c8b5a2c5fd12ab0fe91b0991075",
+   "cf6002998f57087744f5a391528896de3eb6068b",
    "reftest"
   ],
   "css/css-flexbox-1/flex-vertical-align-effect.html": [
@@ -184464,19 +184665,19 @@
    "reftest"
   ],
   "css/css-flexbox-1/flex-wrap-001.htm": [
-   "f3f493039967d71fcd4da7915ce0b1fafdce5ede",
+   "8a4b81212a54be87690891f083d30c9bbc6bec05",
    "visual"
   ],
   "css/css-flexbox-1/flex-wrap_nowrap.html": [
-   "c98d56702f716bb3e1b0d165de841e9b38c45f3b",
+   "290fd4d88edb2f6a8ba9dbca46e2217f4161bc76",
    "visual"
   ],
   "css/css-flexbox-1/flex-wrap_wrap-reverse.html": [
-   "1c040744d9937a82adb78065434511b48189a411",
+   "b607a828c94345a65ca0a2ce89cb4cf7d82603a8",
    "visual"
   ],
   "css/css-flexbox-1/flex-wrap_wrap.html": [
-   "da5408d3efd4caf89b17b3a6eb34dad62890433c",
+   "fa864aaa1946159d9b986e515aa6329ed978c652",
    "visual"
   ],
   "css/css-flexbox-1/flexbox-flex-direction-column-reverse.htm": [
@@ -184500,7 +184701,7 @@
    "reftest"
   ],
   "css/css-flexbox-1/flexbox-flex-wrap-default.htm": [
-   "b53c63e5ff7241cfd2f8ba555f8fd0ae6facdef3",
+   "c72d514e8f3b81082e9eb3fcf5615da6687a04e8",
    "reftest"
   ],
   "css/css-flexbox-1/flexbox-flex-wrap-flexing-ref.html": [
@@ -184508,27 +184709,27 @@
    "support"
   ],
   "css/css-flexbox-1/flexbox-flex-wrap-flexing.html": [
-   "f4d48a4f322d324154fe1d94c217a425d0ce473b",
+   "4025f668cf66b89a05cdbdff8ec4e4149b3d810c",
    "reftest"
   ],
   "css/css-flexbox-1/flexbox-flex-wrap-nowrap.htm": [
-   "9de5ab9c78475f66abf4c09ff801f8e24f0cee8e",
+   "724d79f6d784359441c1582a1c561bac7380e2d1",
    "reftest"
   ],
   "css/css-flexbox-1/flexbox-flex-wrap-wrap-reverse.htm": [
-   "715d896fe7701b055158aa0ec46891d33d8548f7",
+   "073f2cb4b76387e82a5fe0edda41e98d3c21160a",
    "reftest"
   ],
   "css/css-flexbox-1/flexbox-flex-wrap-wrap.htm": [
-   "2b627bc926f2c2b777f1fbacd4d48dcb97654d6a",
+   "32030b849dacf60bb863479e6361d82d5f68569a",
    "reftest"
   ],
   "css/css-flexbox-1/flexbox-order-from-lowest.html": [
-   "f2ead9b0543eed9c5d09fede967a5b0a34a43eaa",
+   "abfd01c973e6f423c23fbb4799e5a807461f0ea3",
    "visual"
   ],
   "css/css-flexbox-1/flexbox-order-only-flexitems.html": [
-   "c10343a44fef171e4aac195fc340c37feecab080",
+   "de2472f274425db98c0340a4b2ab6f82458567b6",
    "visual"
   ],
   "css/css-flexbox-1/flexbox_absolute-atomic-ref.html": [
@@ -184600,7 +184801,7 @@
    "support"
   ],
   "css/css-flexbox-1/flexbox_align-items-baseline.html": [
-   "9076d944d97a46b4258a2ad53ade674782e2b1d0",
+   "ab2986c61191b8427ce6eb90cd2f9ddb80d2957f",
    "reftest"
   ],
   "css/css-flexbox-1/flexbox_align-items-center-2-ref.html": [
@@ -184608,7 +184809,7 @@
    "support"
   ],
   "css/css-flexbox-1/flexbox_align-items-center-2.html": [
-   "922af280241e24f4c9fa487ceecf494a009d134f",
+   "589f9707972e09651170d7bf6e58fc4af9204ccc",
    "reftest"
   ],
   "css/css-flexbox-1/flexbox_align-items-center-ref.html": [
@@ -184616,7 +184817,7 @@
    "support"
   ],
   "css/css-flexbox-1/flexbox_align-items-center.html": [
-   "8702bd722f4a7f4a014ac572c9d51edcdd68b149",
+   "0e30882248fd3b414bf8fb138562d273ca37d670",
    "reftest"
   ],
   "css/css-flexbox-1/flexbox_align-items-flexend-2-ref.html": [
@@ -184624,7 +184825,7 @@
    "support"
   ],
   "css/css-flexbox-1/flexbox_align-items-flexend-2.html": [
-   "6a15d25c9f94123defa64b366c808f3336341a87",
+   "30d8681b0cb8cbab62f7a6db5cb65fa57b196d0e",
    "reftest"
   ],
   "css/css-flexbox-1/flexbox_align-items-flexend-ref.html": [
@@ -184632,7 +184833,7 @@
    "support"
   ],
   "css/css-flexbox-1/flexbox_align-items-flexend.html": [
-   "39c7b47d9a49a400d1b8a5a2c805d26de76c315f",
+   "4b12b6e4eaac9ba4a93bf1693ad95e5bd6e3a1bc",
    "reftest"
   ],
   "css/css-flexbox-1/flexbox_align-items-flexstart-2-ref.html": [
@@ -184640,7 +184841,7 @@
    "support"
   ],
   "css/css-flexbox-1/flexbox_align-items-flexstart-2.html": [
-   "1b1a53ba6e6911ef5017b165457b02397186be19",
+   "9e562f99a74a20a78f33ab11a208b2d1370b5050",
    "reftest"
   ],
   "css/css-flexbox-1/flexbox_align-items-flexstart-ref.html": [
@@ -184648,7 +184849,7 @@
    "support"
   ],
   "css/css-flexbox-1/flexbox_align-items-flexstart.html": [
-   "e7141b9dd89d534523debcd54bf8542ee8f5cbf8",
+   "a9de1f15f80b73c0dbe1477d8a37cf1a3e65cfcd",
    "reftest"
   ],
   "css/css-flexbox-1/flexbox_align-items-stretch-2-ref.html": [
@@ -184656,7 +184857,7 @@
    "support"
   ],
   "css/css-flexbox-1/flexbox_align-items-stretch-2.html": [
-   "e4a601cd9c3bcefcfbbe1c41bb7251aed612f5b6",
+   "3d54d00c2c87953fd79e3c0904e9acd24cace0dd",
    "reftest"
   ],
   "css/css-flexbox-1/flexbox_align-items-stretch-ref.html": [
@@ -184664,7 +184865,7 @@
    "support"
   ],
   "css/css-flexbox-1/flexbox_align-items-stretch.html": [
-   "7d30e69f9d949425ccaeed86fa352d56432f1029",
+   "ac2a1861e851cc53aef52bcfbdc7247ba3846811",
    "reftest"
   ],
   "css/css-flexbox-1/flexbox_align-self-auto-ref.html": [
@@ -184672,7 +184873,7 @@
    "support"
   ],
   "css/css-flexbox-1/flexbox_align-self-auto.html": [
-   "b5f4814e024e7a27f3a2bb58f49a566ca1f6e2fe",
+   "e5c6c3adc9af78d6161746ad7f0399cf17d39b60",
    "reftest"
   ],
   "css/css-flexbox-1/flexbox_align-self-baseline-ref.html": [
@@ -184680,7 +184881,7 @@
    "support"
   ],
   "css/css-flexbox-1/flexbox_align-self-baseline.html": [
-   "e5101479535744ac95acb0e1d25807e061fffefd",
+   "a3668e8f9e9fe2d09d7c849a4c334bf59c2afca0",
    "reftest"
   ],
   "css/css-flexbox-1/flexbox_align-self-center-ref.html": [
@@ -184688,7 +184889,7 @@
    "support"
   ],
   "css/css-flexbox-1/flexbox_align-self-center.html": [
-   "c9e85c86ad566a9fb1889fce7d175c0c92a7fd7a",
+   "72fa9308e815ce47599c58063848d61e7a39e705",
    "reftest"
   ],
   "css/css-flexbox-1/flexbox_align-self-flexend-ref.html": [
@@ -184696,7 +184897,7 @@
    "support"
   ],
   "css/css-flexbox-1/flexbox_align-self-flexend.html": [
-   "c80b0ab7fad3ec3edc06e24e4ab435f21486d74d",
+   "8f3f5b4d676d73df806c08c4db19e459bb497e34",
    "reftest"
   ],
   "css/css-flexbox-1/flexbox_align-self-flexstart-ref.html": [
@@ -184704,7 +184905,7 @@
    "support"
   ],
   "css/css-flexbox-1/flexbox_align-self-flexstart.html": [
-   "f8f31bcc0b3eb716af479333fae0d94739f2c9c5",
+   "4c016592e5d4f1f2b6d2051c31049a1b38c46439",
    "reftest"
   ],
   "css/css-flexbox-1/flexbox_align-self-stretch-ref.html": [
@@ -184712,7 +184913,7 @@
    "support"
   ],
   "css/css-flexbox-1/flexbox_align-self-stretch.html": [
-   "3adcced9b033bde56d34842494e1b4447fd09fbd",
+   "a2be49886cde0f1b985b3317c1d13136b1fa3409",
    "reftest"
   ],
   "css/css-flexbox-1/flexbox_block.html": [
@@ -185488,7 +185689,7 @@
    "support"
   ],
   "css/css-flexbox-1/flexbox_flex-natural-variable-zero-basis.html": [
-   "ebf063e55f197fba292499d3cb8e787ae8cde99b",
+   "1f0ee1620e10d971f24b883ad917af1752518424",
    "reftest"
   ],
   "css/css-flexbox-1/flexbox_flex-natural.html": [
@@ -185516,11 +185717,11 @@
    "support"
   ],
   "css/css-flexbox-1/flexbox_flow-column-reverse-wrap-reverse.html": [
-   "cb6194e2500b5df369533ba93c5c0c29d9973e59",
+   "765f675153142402d3d576ccaedc0e67a6faabee",
    "reftest"
   ],
   "css/css-flexbox-1/flexbox_flow-column-reverse-wrap.html": [
-   "4abc9c1aeecf9de4a16a6a39effbae8dd589deae",
+   "cac3fdebe28979fb436094292f4d55540f7be03b",
    "reftest"
   ],
   "css/css-flexbox-1/flexbox_flow-column-wrap-ref.html": [
@@ -185532,11 +185733,11 @@
    "support"
   ],
   "css/css-flexbox-1/flexbox_flow-column-wrap-reverse.html": [
-   "4f87ccf40d0696023fdf0411e836141894c30050",
+   "4185b41258256052588c42a2277a10c4d7b3669b",
    "reftest"
   ],
   "css/css-flexbox-1/flexbox_flow-column-wrap.html": [
-   "2b17cb73772c72974622e7d92c22c52929e1d169",
+   "8d50c9a5c8aa0ae594b27532e920ff30a086b5f9",
    "reftest"
   ],
   "css/css-flexbox-1/flexbox_flow-row-wrap-ref.html": [
@@ -185548,11 +185749,11 @@
    "support"
   ],
   "css/css-flexbox-1/flexbox_flow-row-wrap-reverse.html": [
-   "f2ef8c41cd01ed9ff25521b368effb441104395d",
+   "f5fd86b739edf0840afa4bc36c90ec8a17fc8600",
    "reftest"
   ],
   "css/css-flexbox-1/flexbox_flow-row-wrap.html": [
-   "a2e044d70b3478b252c4e6380f28c6d7211e6753",
+   "456d1cbc70ff99cc2ede803eaa65ff67151503fd",
    "reftest"
   ],
   "css/css-flexbox-1/flexbox_generated-flex-ref.html": [
@@ -185636,7 +185837,7 @@
    "support"
   ],
   "css/css-flexbox-1/flexbox_justifycontent-center-overflow.html": [
-   "d9576e869b920627fc847ec47c5a06ef8cfa4f73",
+   "91a9b42a6314e8f81f7d1cedc5a9e1ff64981ebd",
    "reftest"
   ],
   "css/css-flexbox-1/flexbox_justifycontent-center-ref.html": [
@@ -185644,7 +185845,7 @@
    "support"
   ],
   "css/css-flexbox-1/flexbox_justifycontent-center.html": [
-   "6914e3590345ef2501d1d4cd23e8fff18371b7f4",
+   "1f6cfc90c361f99bdd1d3025f40e9263a2fb8e75",
    "reftest"
   ],
   "css/css-flexbox-1/flexbox_justifycontent-flex-end-ref.html": [
@@ -185652,7 +185853,7 @@
    "support"
   ],
   "css/css-flexbox-1/flexbox_justifycontent-flex-end.html": [
-   "2f8d48fc803c5026dd0e1a3855c4d50f1d3a3be3",
+   "bc6184369864f4fd14c5bf5b70721715a22b13a8",
    "reftest"
   ],
   "css/css-flexbox-1/flexbox_justifycontent-flex-start-ref.html": [
@@ -185660,7 +185861,7 @@
    "support"
   ],
   "css/css-flexbox-1/flexbox_justifycontent-flex-start.html": [
-   "b882acb798441faebfa7d8e01463ff4af16d299b",
+   "ef5af73743748f6b0a4d9fbf48c9544d59c8c725",
    "reftest"
   ],
   "css/css-flexbox-1/flexbox_justifycontent-spacearound-negative-ref.html": [
@@ -185668,7 +185869,7 @@
    "support"
   ],
   "css/css-flexbox-1/flexbox_justifycontent-spacearound-negative.html": [
-   "4a9eae927d562b9dd47c36e2c693fa26e99e0275",
+   "ee4d9c900a43823889957d21bd8c215d45d6206e",
    "reftest"
   ],
   "css/css-flexbox-1/flexbox_justifycontent-spacearound-only-ref.html": [
@@ -185676,7 +185877,7 @@
    "support"
   ],
   "css/css-flexbox-1/flexbox_justifycontent-spacearound-only.html": [
-   "0b47c2ceac70fc7129903eabbb9121eaa178d03e",
+   "dbf1892084e5a3bb7b7e09253f14d3ca9b6ddb73",
    "reftest"
   ],
   "css/css-flexbox-1/flexbox_justifycontent-spacearound-ref.html": [
@@ -185684,7 +185885,7 @@
    "support"
   ],
   "css/css-flexbox-1/flexbox_justifycontent-spacearound.html": [
-   "cb1aac06814d3ba61642037b730cfbe96b0779dd",
+   "ef2b9b682a899d84deb9dd0cc0b9766360fb986f",
    "reftest"
   ],
   "css/css-flexbox-1/flexbox_justifycontent-spacebetween-negative-ref.html": [
@@ -185692,7 +185893,7 @@
    "support"
   ],
   "css/css-flexbox-1/flexbox_justifycontent-spacebetween-negative.html": [
-   "98d86926c1c802f23713661b44e22dd00251afb2",
+   "463d811304911515faef20448322c329cfc05469",
    "reftest"
   ],
   "css/css-flexbox-1/flexbox_justifycontent-spacebetween-only-ref.html": [
@@ -185700,7 +185901,7 @@
    "support"
   ],
   "css/css-flexbox-1/flexbox_justifycontent-spacebetween-only.html": [
-   "41685cd4331cc96fd64e3581790ebf8209665b93",
+   "bba049d57c8eba72e65320f935ceae1b8c9c0d56",
    "reftest"
   ],
   "css/css-flexbox-1/flexbox_justifycontent-spacebetween-ref.html": [
@@ -185708,7 +185909,7 @@
    "support"
   ],
   "css/css-flexbox-1/flexbox_justifycontent-spacebetween.html": [
-   "7e0fbdff9d459ad9f04dd5718f7f5308bb7d4260",
+   "f337445c901031be08f7e4ee856a2eb4dc67b498",
    "reftest"
   ],
   "css/css-flexbox-1/flexbox_margin-auto-overflow-2-ref.html": [
@@ -185768,7 +185969,7 @@
    "support"
   ],
   "css/css-flexbox-1/flexbox_object.html": [
-   "24fd8bd42e374e3fae800a7bfa94a6ffd501b398",
+   "3e236f65a92908e0fbd66377bfc45311eab89e14",
    "reftest"
   ],
   "css/css-flexbox-1/flexbox_order-abspos-space-around-ref.html": [
@@ -185776,7 +185977,7 @@
    "support"
   ],
   "css/css-flexbox-1/flexbox_order-abspos-space-around.html": [
-   "8d9fdef23fe3a0a1fcc200e84e78515ccfb0245c",
+   "7343cce57d6e7cbdd749b5cd0abb82c32398e59c",
    "reftest"
   ],
   "css/css-flexbox-1/flexbox_order-box-ref.html": [
@@ -185784,11 +185985,11 @@
    "support"
   ],
   "css/css-flexbox-1/flexbox_order-box.html": [
-   "3ac0418e2b4a99373899e8692de6eb481d3666dd",
+   "e9da57c94d9c444b7cc75e25120e055a6cac7d9f",
    "reftest"
   ],
   "css/css-flexbox-1/flexbox_order-noninteger-invalid.html": [
-   "090260884b6bf4e95757b8b1236e15c73f10960b",
+   "937ba154b8acd1939c5b88bb631551c54269cd98",
    "reftest"
   ],
   "css/css-flexbox-1/flexbox_order-ref.html": [
@@ -185796,7 +185997,7 @@
    "support"
   ],
   "css/css-flexbox-1/flexbox_order.html": [
-   "1467dffce847e256002ae50017f6da155078e8a9",
+   "3f8ea7d7e6b8ab8d0473aebfdedc108c34f732a1",
    "reftest"
   ],
   "css/css-flexbox-1/flexbox_rowspan-overflow-automatic.html": [
@@ -185812,7 +186013,7 @@
    "support"
   ],
   "css/css-flexbox-1/flexbox_rowspan.html": [
-   "b2374ef264d03561fc7ac808aff888c3200c9a02",
+   "85b74c61e50aa538bef17dbcfb98dea689da2d93",
    "reftest"
   ],
   "css/css-flexbox-1/flexbox_rtl-direction-ref.html": [
@@ -185832,11 +186033,11 @@
    "support"
   ],
   "css/css-flexbox-1/flexbox_rtl-flow-reverse.html": [
-   "7d79791beffcc66f83e276878165b25e57f57aab",
+   "d49babdd0a338c0b5012f1e2b260bf42b22e5580",
    "reftest"
   ],
   "css/css-flexbox-1/flexbox_rtl-flow.html": [
-   "d43193cfa7a2895f936b0f4c6e85442279cfeb2d",
+   "0f05e9ee167cd1db8982ae8df7e35ceaa6deae52",
    "reftest"
   ],
   "css/css-flexbox-1/flexbox_rtl-order-ref.html": [
@@ -185844,7 +186045,7 @@
    "support"
   ],
   "css/css-flexbox-1/flexbox_rtl-order.html": [
-   "6bb015fc8f06a3391e90b9f2292ea2f6c4ea2ff3",
+   "386505d5838c57ec20fb767c01060a3d98e3f6de",
    "reftest"
   ],
   "css/css-flexbox-1/flexbox_stf-abspos.html": [
@@ -185916,7 +186117,7 @@
    "reftest"
   ],
   "css/css-flexbox-1/flexbox_width-overflow.html": [
-   "abb5c40451aba1680b1cb71cb8dcc6d56c8dcf85",
+   "48c0d989a7f5915f4190e9aef6719cad855a86c1",
    "reftest"
   ],
   "css/css-flexbox-1/flexbox_wrap-long-ref.html": [
@@ -185924,7 +186125,7 @@
    "support"
   ],
   "css/css-flexbox-1/flexbox_wrap-long.html": [
-   "59506000953cd0c47b905b71e850e95c721fb8e2",
+   "49fe5888c62883ec0edec23fed356489d65d04c3",
    "reftest"
   ],
   "css/css-flexbox-1/flexbox_wrap-ref.html": [
@@ -185936,11 +186137,11 @@
    "support"
   ],
   "css/css-flexbox-1/flexbox_wrap-reverse.html": [
-   "0444aefd0e20d3fab1c39e947b3e852f34be94e6",
+   "b1eba48d8ad7eaaf9cdf576e8187f07b35c80a58",
    "reftest"
   ],
   "css/css-flexbox-1/flexbox_wrap.html": [
-   "b36545637bd059fe0952f83bfcd00f793d252234",
+   "ca7a976e714b9a7f03f06fc76aa293dee9a0e339",
    "reftest"
   ],
   "css/css-flexbox-1/flexbox_writing_mode_vertical_lays_out_contents_from_top_to_bottom.html": [
@@ -185972,51 +186173,51 @@
    "testharness"
   ],
   "css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_align-items-baseline.html": [
-   "c52f3025c1a376c9f4cd5bc0e3e36ea11fb79edb",
+   "0d4088a490ea5096b46b4cc6c1a0c6bb5b6bd751",
    "testharness"
   ],
   "css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_align-items-center.html": [
-   "39da9fd3f0c99b633006f03bf42924f52e306887",
+   "4bc854b76117aeadd9b74be8a0741118fa2e4734",
    "testharness"
   ],
   "css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_align-items-flex-end.html": [
-   "c331bded717233ce11b537f325f9936a3199b496",
+   "ac0087da22be93c52d8d4817de8aff82c69bdb81",
    "testharness"
   ],
   "css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_align-items-flex-start.html": [
-   "0d2e32f92f65aac9e3ddf7eb00dd3b0f393fff57",
+   "1d54a6751d08c40544411b0b1bc34b4223224fbe",
    "testharness"
   ],
   "css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_align-items-invalid.html": [
-   "e2b3805156d939e90afb0130dda9d40224841efc",
+   "35e80571b466457a17e340224b07b326fad24d21",
    "testharness"
   ],
   "css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_align-items-stretch.html": [
-   "de771f8302130bf2c223cc886c15c1c8e2590533",
+   "4099eb8892edb258d81f9e2f434fd4c836c086d7",
    "testharness"
   ],
   "css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_align-self-baseline.html": [
-   "b0b7eca9fe5e48c54be529d5b6aff4e1aed531bc",
+   "f240fd2e4d29d5858426f7a77d0091bfacbf7d4d",
    "testharness"
   ],
   "css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_align-self-center.html": [
-   "fce95bb388a54610bb769d77c8d91025b0138690",
+   "b358e4c7958b8236e52e9add99e90febde80428b",
    "testharness"
   ],
   "css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_align-self-flex-end.html": [
-   "efcc0f22fd55191d8c1009d7fae65ba4d78a2f9f",
+   "5855c6ab21ee5c95014b3d09bc2cbc4191750b7d",
    "testharness"
   ],
   "css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_align-self-flex-start.html": [
-   "7bcd9df58ab1dbbc999c1a2ce21c37fe2ec2f45e",
+   "2812f393363350633acdea5fdff7e81c3bd87edd",
    "testharness"
   ],
   "css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_align-self-invalid.html": [
-   "c63bd273cdddff4529893a41907dddf152213e36",
+   "59886b47d780f67e63cd5718daf48c5b53cd71fd",
    "testharness"
   ],
   "css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_align-self-stretch.html": [
-   "bd15a6dd6abc860e0893e36b2938c6bf636fa9d7",
+   "4c32af81197111b270d8592fb84c7ab63adc9d3b",
    "testharness"
   ],
   "css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_display-inline.html": [
@@ -186064,159 +186265,159 @@
    "testharness"
   ],
   "css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-flow-column-nowrap.html": [
-   "9fbd15643567c680e8f67a0ceab42a7f9cb152f2",
+   "8c6db8d7bb29b6756523787f1b51f7bc3ba74c6f",
    "testharness"
   ],
   "css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-flow-column-reverse-nowrap.html": [
-   "885707801e9d65606774cbb55adca5a8b912efdc",
+   "e341a52761770971b18172720ef81283ab0fc370",
    "testharness"
   ],
   "css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-flow-column-reverse-wrap.html": [
-   "8fd46658b8bccefc5ed180c462b45b971d658f1a",
+   "c6c24cea0e29f244b1669f36ba5fc01a018d899c",
    "testharness"
   ],
   "css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-flow-column-reverse.html": [
-   "daf6a6292cbd670803a9752f3e2a089e8d3a903e",
+   "a8770d803ec5e9329a0dc57e0e481d270ee4cb82",
    "testharness"
   ],
   "css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-flow-column-wrap-reverse.html": [
-   "3f8ab9e75662913b13b8bd7b3cc377f07b50a0ab",
+   "530536f70e8c80888b4f777fd9f2f4607c1bb6a4",
    "testharness"
   ],
   "css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-flow-column-wrap.html": [
-   "2eff30c5ebed708e20fc4277feb05f2c39d9aee1",
+   "0c814b3b2466350f425baca27875f4e30fc5deeb",
    "testharness"
   ],
   "css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-flow-column.html": [
-   "c77ac15d19fe2a7c165561063aa42ed055532b13",
+   "c357d892c2db343816c37be471ef4feda796cb4a",
    "testharness"
   ],
   "css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-flow-nowrap.html": [
-   "3a99186205ee7e6173468a90a0aa59c6b2766f98",
+   "d2754b502ea652aa6bd875cc79ae7cdca071ef76",
    "testharness"
   ],
   "css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-flow-row-nowrap.html": [
-   "02a39e48d5cfea6fcc443f6429ba52c97436dbe3",
+   "cfd86b15a6682b0b2233d836e289930abc01f744",
    "testharness"
   ],
   "css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-flow-row-reverse-nowrap.html": [
-   "b67f033e0c811df0c1930933d01312e53d9ae078",
+   "ba20cf80e616da8233da663fb14a91de53a0a3ba",
    "testharness"
   ],
   "css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-flow-row-reverse-wrap-reverse.html": [
-   "aae7d98efd1c69ae411c3db275c799a414d509be",
+   "d17789c21544b966b81ea111a64623facc89846f",
    "testharness"
   ],
   "css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-flow-row-reverse-wrap.html": [
-   "d6f70fc0a5b44fc3daa613c732a126350bfe48cb",
+   "9519c40110b7effcd0f6f012cfc328fd900d239e",
    "testharness"
   ],
   "css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-flow-row-reverse.html": [
-   "78af372b9b44de73a0add8065ec7b472fda9057d",
+   "7d36aa375fe06c6670d24a01a63a29288cd09e22",
    "testharness"
   ],
   "css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-flow-row-wrap-reverse.html": [
-   "252f164be762a4164f1ca4c2f2ac1d59e0714875",
+   "2c41a0f7b456789a30034891f5c74107d0e01931",
    "testharness"
   ],
   "css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-flow-row-wrap.html": [
-   "9cdb498ed06a578f4aba98edc73d7ff140a3d695",
+   "60625a23119f068779edaf03d6e34fd5e4af18ac",
    "testharness"
   ],
   "css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-flow-row.html": [
-   "b6e22d88ca204be17419befb8e9fe84671e41375",
+   "5c65a0f389f2e3a00388e2e173f931c840c73892",
    "testharness"
   ],
   "css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-flow-wrap.html": [
-   "a63cd0561594d724bf250dbfe031b65430367cdc",
+   "044d13fe55b5bb592bd091b25a441e23332bd3ac",
    "testharness"
   ],
   "css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-grow-0.html": [
-   "f08a5aadeb4e4c914548b46438e77e0d6b4f0840",
+   "805edc97685df5caba0906d03539d1e1f6f266b2",
    "testharness"
   ],
   "css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-grow-invalid.html": [
-   "2b1057695549d73817ecc4f74686f195f706059c",
+   "45aac59c225d80c32168fcc074132fd8ec400818",
    "testharness"
   ],
   "css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-grow-number.html": [
-   "f3c8301302abad9a92b198d448e3cc4b625b4cbb",
+   "38a6d1e840eece8a68d9fbaf4b54e89f77b0162b",
    "testharness"
   ],
   "css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-shorthand-0-auto.html": [
-   "6afade676d0bd8b6cf8b1a58444a59bd48435a96",
+   "14ea8bbc723f27d4cd1123409d906c5c90c7947b",
    "testharness"
   ],
   "css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-shorthand-auto.html": [
-   "20f18cb79db76db4ddfa7601272ad530819a37fa",
+   "b0f5db460426e2418bb0c5a9f8e514934837ed4f",
    "testharness"
   ],
   "css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-shorthand-initial.html": [
-   "7481e854e6a194b28cdcd80cbe6e3055f2a92730",
+   "7760a25374329248bb93099e9f0b0d0fa680ef61",
    "testharness"
   ],
   "css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-shorthand-invalid.html": [
-   "11d08cd6b9127888018fd361c3c2e10480d67e75",
+   "a1d47f33043dda08a107f8ec1015cd6e8abebb13",
    "testharness"
   ],
   "css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-shorthand-none.html": [
-   "3766d370f5c3305aecee61ef812c8aa0bcaafad4",
+   "734cb8ac82b44bfbc028023c653e5fe5aca3af29",
    "testharness"
   ],
   "css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-shorthand-number.html": [
-   "df2167647bc4b3caa122b8df2b8189361c2bd91c",
+   "fa0799425f5c83a12ed92fea858c7d29040a0bc1",
    "testharness"
   ],
   "css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-shorthand.html": [
-   "837b63ed529b63ae8aa440f472977627521486b2",
+   "d13c9c8f422a1906dfbe7d33ee92bc3d0085c9cc",
    "testharness"
   ],
   "css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-shrink-0.html": [
-   "973f68b9cbf729ce2e20efc43368ec55942ed29d",
+   "c0829e1b81c645baccd5986caf2e0beefd742853",
    "testharness"
   ],
   "css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-shrink-invalid.html": [
-   "4ca8453ad9956819d703dfb4851c2bf29c20e614",
+   "17a57a5afca7db52a1be3366772d7ff8cf738c19",
    "testharness"
   ],
   "css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-shrink-number.html": [
-   "642e25a123a546f96bc43f652dde7a9069dab3f9",
+   "38419aad800c118289e516b2f32b1cceadd563e4",
    "testharness"
   ],
   "css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-wrap-invalid.html": [
-   "58b04f866a8bf66510d83f30f7a14898639f13ac",
+   "705c10a2d61138fbde29679438ea41c681e290cd",
    "testharness"
   ],
   "css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-wrap-nowrap.html": [
-   "cc6da24ec29e2f362d7d76660596d8b0bf8c68b4",
+   "c82b804fd32ac03049ff8ea12b29eee4f164548e",
    "testharness"
   ],
   "css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-wrap-wrap-reverse.html": [
-   "551a8012a18c591d3e90d380a51d7725529fdddd",
+   "3e3ab7791b4086a7597dce5ece1c354bdadc3605",
    "testharness"
   ],
   "css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-wrap-wrap.html": [
-   "01e87c33c9cb3eff7517ac98ef363c31bf370501",
+   "f7d8a18b3467d75cc4165ca1e986915023b89c1f",
    "testharness"
   ],
   "css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_justify-content-center.html": [
-   "93ea802a0585fc33f9787dcbfeb60d4a87236aaa",
+   "12dcf4e9e4c1b0ce7707e938807ef54e19389188",
    "testharness"
   ],
   "css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_justify-content-flex-end.html": [
-   "7a2f8e64a7be2518662a129844b2e45cf72d4beb",
+   "3c4c394fbbc07918ee0251ae2f199bfc3cd9f63b",
    "testharness"
   ],
   "css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_justify-content-flex-start.html": [
-   "eda0d2dc1c9e2255bc6dd35a5f1519790e0897c2",
+   "8fbda9644fa0b247a620973e2876dc760d171db5",
    "testharness"
   ],
   "css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_justify-content-space-around.html": [
-   "a57d2fb5791761d19bb7dc04c434cd8b8b21ad5e",
+   "21f9e5c6b842a463db8242fd2eb1d73b35f25d0b",
    "testharness"
   ],
   "css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_justify-content-space-between.html": [
-   "3ab25c74718a2dd71c79ee645502fbd0b925b59b",
+   "0b598a59d971769ea6e6243652493ac12206e374",
    "testharness"
   ],
   "css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_min-height-auto.html": [
@@ -186228,23 +186429,23 @@
    "testharness"
   ],
   "css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_order-inherit.html": [
-   "5682707c7901944a04381ceff1757a599a058813",
+   "fdae1a49780aef7cf55007b8b96407aee46efb99",
    "testharness"
   ],
   "css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_order-integer.html": [
-   "cd9640363954e8f0a0854c53382c0beb4acfc321",
+   "d8f3b3dfacaaa8e17773ffd6812b861822d65ef8",
    "testharness"
   ],
   "css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_order-invalid.html": [
-   "8fb32a13843c0f28b92cdd76fe3d64b3044a3acf",
+   "a735a3b200062bfa59b1a6206591fbc4640bb384",
    "testharness"
   ],
   "css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_order-negative.html": [
-   "864be088c428734acc315590ddd94606fd7627e1",
+   "22f2cc5a03aa146fd0910c4302f59d13be43f40c",
    "testharness"
   ],
   "css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_order.html": [
-   "1a8a368e9094865c2a1dd41a6e9b892d434f6281",
+   "f2be0a72baa34509be8ec454e9d3bebe8cfdb45b",
    "testharness"
   ],
   "css/css-flexbox-1/interactive/flexbox_interactive_break-after-column-item.html": [
@@ -186304,15 +186505,15 @@
    "manual"
   ],
   "css/css-flexbox-1/interactive/flexbox_interactive_flex-grow-transitions.html": [
-   "58adec5d8401b4a7a673a69e7c84a87669ecb8c5",
+   "67722dd6cb0f4471e0662b6b289913611c1baf27",
    "manual"
   ],
   "css/css-flexbox-1/interactive/flexbox_interactive_flex-shrink-transitions-invalid.html": [
-   "28052e43db3d7d3dba444509772fa56fa7a36377",
+   "6741fe496c3e5660cc4fd7b2ffd8a7ce0015a1be",
    "manual"
   ],
   "css/css-flexbox-1/interactive/flexbox_interactive_flex-shrink-transitions.html": [
-   "06eeafd215565a63c6291dff36a7ab2f4a21288f",
+   "94d6ef82189f89f84c5dd27c2897f747d4cd6d2e",
    "manual"
   ],
   "css/css-flexbox-1/interactive/flexbox_interactive_flex-transitions.html": [
@@ -186336,43 +186537,43 @@
    "manual"
   ],
   "css/css-flexbox-1/justify-content-001.htm": [
-   "d7ae5a0d01e5b197c26b020526404c41a809ec91",
+   "358a805d0fb9e61f614819c5e97067245d71aef3",
    "reftest"
   ],
   "css/css-flexbox-1/justify-content-002.htm": [
-   "82c92381f098ae768d254efc6984796f9768a31c",
+   "685cbfa14e1f2adc62048e5ae8f107d8bc01fa3b",
    "reftest"
   ],
   "css/css-flexbox-1/justify-content-003.htm": [
-   "572a528b3e7ef33ebba5ddc38108879e75c01c4c",
+   "275d8c21752327cde0b2ed0c9d114bf8d4d4d141",
    "reftest"
   ],
   "css/css-flexbox-1/justify-content-004.htm": [
-   "d153c4076da8091eca2e3228de0e82c0b7fadbde",
+   "8e5c22d229cdf1ca4e655ea2ef1653b7b906f191",
    "reftest"
   ],
   "css/css-flexbox-1/justify-content-005.htm": [
-   "b5b0b7c39ff116cc73c081be1aec8b0b48a99a7a",
+   "044c8076b844d6b8a5c1da6ed32c8ebd0ad0c03a",
    "reftest"
   ],
   "css/css-flexbox-1/justify-content_center.html": [
-   "be8c4aa66d72297e12d793860612b98a8ec8bd3c",
+   "fe5f4f585f259a0b2d66625730c318a30aca4e5a",
    "visual"
   ],
   "css/css-flexbox-1/justify-content_flex-end.html": [
-   "fd42754905469c109681b3001880c26d86f38d30",
+   "679f81cc6dc87c7fe272f7a883fca9363a106e72",
    "visual"
   ],
   "css/css-flexbox-1/justify-content_flex-start.html": [
-   "b1b0795bb9662d3df05e15b6bcb5f5d5eb8a181d",
+   "14b0701a773eef17a17255d20840ee8086e82974",
    "visual"
   ],
   "css/css-flexbox-1/justify-content_space-around.html": [
-   "eb943c652bd9f16a79cb8053634e3514c2f9dfff",
+   "b062d66ce98b0cf16bd81d3f066766aabbdf9b99",
    "visual"
   ],
   "css/css-flexbox-1/justify-content_space-between.html": [
-   "8fcc937a7c68c6fd6a67ec37b223665915091e89",
+   "3ae87cc987978548ee7ba39934c8b220221969f2",
    "visual"
   ],
   "css/css-flexbox-1/layout-algorithm_algo-cross-line-001.html": [
@@ -186388,7 +186589,7 @@
    "reftest"
   ],
   "css/css-flexbox-1/order-001.htm": [
-   "20924cd18cca247b18fa72ad10d1811410700f44",
+   "61d7aeef662b1efbae6ac6b873e8130f1017f62d",
    "visual"
   ],
   "css/css-flexbox-1/order/order-with-column-reverse-ref.html": [
@@ -186396,7 +186597,7 @@
    "support"
   ],
   "css/css-flexbox-1/order/order-with-column-reverse.html": [
-   "c9a18ad526fe7e7219c47e0f34658704db7fd303",
+   "96afc46f8d4296d111cd268d1eac61a72965901c",
    "reftest"
   ],
   "css/css-flexbox-1/order/order-with-row-reverse-ref.html": [
@@ -186404,11 +186605,11 @@
    "support"
   ],
   "css/css-flexbox-1/order/order-with-row-reverse.html": [
-   "16c39d9da2debcda28bc7a8f66c2246ec417be14",
+   "c3a06c11dac074a711a5390a2693017d6372b3bd",
    "reftest"
   ],
   "css/css-flexbox-1/order_value.html": [
-   "ed5bf1f1ca5d75bb7f030ed78377d31b81203d06",
+   "9f6fef36e1c3f3518af024b9c090612efad95b80",
    "testharness"
   ],
   "css/css-flexbox-1/percentage-heights-000.html": [
@@ -186796,15 +186997,15 @@
    "reftest"
   ],
   "css/css-flexbox-1/ttwf-reftest-flex-order.html": [
-   "8920a39cd32d4391ea1a4d8ef8f52c92532c8fcf",
+   "190688ba86d91a9abcfef4fef253c814f00229f8",
    "reftest"
   ],
   "css/css-flexbox-1/ttwf-reftest-flex-wrap-reverse.html": [
-   "85bcd6cc52b924458be957f14d11fb7081a50110",
+   "cdd753b4f4123b17866d98f36b38db06491c6d3d",
    "reftest"
   ],
   "css/css-flexbox-1/ttwf-reftest-flex-wrap.html": [
-   "7bd518a3da615df0f146ba391973f749eeddba41",
+   "d0664cf789286d019105fdf37fcfd7c87a63a8a2",
    "reftest"
   ],
   "css/css-flexbox-1/visibility-collapse-001.htm": [
@@ -187263,28 +187464,28 @@
    "194031e276c1dfca4dd57bf5791a0cc1fd226a89",
    "reftest"
   ],
-  "css/css-grid-1/grid-definition/grid-inline-support-flexible-lengths-001.xht": [
-   "ba8763d37fc66a2c64dcf99848285390e51aa9f6",
+  "css/css-grid-1/grid-definition/grid-inline-support-flexible-lengths-001.html": [
+   "99215a797996322c89105b8ca5cb426628ec7563",
    "testharness"
   ],
-  "css/css-grid-1/grid-definition/grid-inline-support-grid-template-areas-001.xht": [
-   "05020bfb7d5ce654888d5fbb3ba51c218f1749c8",
+  "css/css-grid-1/grid-definition/grid-inline-support-grid-template-areas-001.html": [
+   "22ea4ef440903f2b3af781d1209ccf6e89b1c07d",
    "testharness"
   ],
-  "css/css-grid-1/grid-definition/grid-inline-support-grid-template-columns-rows-001.xht": [
-   "f93f707c55a43bb535321ee5c5455bb7464f1a64",
+  "css/css-grid-1/grid-definition/grid-inline-support-grid-template-columns-rows-001.html": [
+   "33a3570eb9cc87dc5fafbc9a922079136bbbe769",
    "testharness"
   ],
-  "css/css-grid-1/grid-definition/grid-inline-support-named-grid-lines-001.xht": [
-   "7380e320c667f3fbf4cff528049f58212e642484",
+  "css/css-grid-1/grid-definition/grid-inline-support-named-grid-lines-001.html": [
+   "773b537e4e31ef93fce9c19ca3d509036a47b96c",
    "testharness"
   ],
-  "css/css-grid-1/grid-definition/grid-inline-support-repeat-001.xht": [
-   "f27186c5dc1cd1dc85e6b24dc6dd2c077fee9c70",
+  "css/css-grid-1/grid-definition/grid-inline-support-repeat-001.html": [
+   "0e1d692ba70002f2373f92cad79e6bdcf15e4b93",
    "testharness"
   ],
-  "css/css-grid-1/grid-definition/grid-inline-template-columns-rows-resolved-values-001.xht": [
-   "959f3106703cfa069e382403c1ea801cc98172e0",
+  "css/css-grid-1/grid-definition/grid-inline-template-columns-rows-resolved-values-001.html": [
+   "8164e2c16d23d366b62b100f49496a51ce27c614",
    "testharness"
   ],
   "css/css-grid-1/grid-definition/grid-layout-auto-tracks.html": [
@@ -187299,132 +187500,132 @@
    "e30c5d9b04eaf45a511b8df22a2c9719a03ecd92",
    "reftest"
   ],
-  "css/css-grid-1/grid-definition/grid-support-flexible-lengths-001.xht": [
-   "5336234689a2e0a9493bcbd252b77b0dfc07490c",
+  "css/css-grid-1/grid-definition/grid-support-flexible-lengths-001.html": [
+   "f03efa4af7f9eb9decd60bfe44c7a3166947ba32",
    "testharness"
   ],
-  "css/css-grid-1/grid-definition/grid-support-grid-template-areas-001.xht": [
-   "c32ed0d5c9ff637a1601e765d858f2ebc59c0445",
+  "css/css-grid-1/grid-definition/grid-support-grid-template-areas-001.html": [
+   "581b9d7c3f2f44b1e7216cfb19eb46d655ec4f07",
    "testharness"
   ],
-  "css/css-grid-1/grid-definition/grid-support-grid-template-columns-rows-001.xht": [
-   "90a8edb4a8f0c43e79327bf940fb01f660d126e5",
+  "css/css-grid-1/grid-definition/grid-support-grid-template-columns-rows-001.html": [
+   "1a756f2420d86d56ca0864bff20ab751e7332f4f",
    "testharness"
   ],
-  "css/css-grid-1/grid-definition/grid-support-named-grid-lines-001.xht": [
-   "96ebfe14ff2db37d1bf301213e57ca614c95de7b",
+  "css/css-grid-1/grid-definition/grid-support-named-grid-lines-001.html": [
+   "e42cdbd74e4d38d188a8e657fadd152ee98b55b4",
    "testharness"
   ],
-  "css/css-grid-1/grid-definition/grid-support-repeat-001.xht": [
-   "ae95228f1fb37e6ab9bb2059a40bbf8d074d9cd9",
+  "css/css-grid-1/grid-definition/grid-support-repeat-001.html": [
+   "4cab09ffd97789ea2b5e571bfafc2ef6bc26e314",
    "testharness"
   ],
-  "css/css-grid-1/grid-definition/grid-template-columns-rows-resolved-values-001.xht": [
-   "a5e4f2b9a1b5c3a72dca16413755ac89f8541a1d",
+  "css/css-grid-1/grid-definition/grid-template-columns-rows-resolved-values-001.html": [
+   "e06c2099210cec1f7e031b3aa9901b675f0d2801",
    "testharness"
   ],
   "css/css-grid-1/grid-definition/support/testing-utils.js": [
    "7d6dc5106777942ad83e6bc570368af113f32d5f",
    "support"
   ],
-  "css/css-grid-1/grid-items/grid-inline-items-001.xht": [
-   "716da23e296b00edc963f120115d14153b0fc130",
+  "css/css-grid-1/grid-items/grid-inline-items-001.html": [
+   "026bebd69ed8b67da6b08de73b6f6bf2c1cdae7d",
    "reftest"
   ],
-  "css/css-grid-1/grid-items/grid-inline-items-002.xht": [
-   "f66a469911608337a991164fe6e4650c0794fc02",
+  "css/css-grid-1/grid-items/grid-inline-items-002.html": [
+   "a10f70e8af4bf208c5144286ae3350e5ce928d2d",
    "reftest"
   ],
-  "css/css-grid-1/grid-items/grid-inline-items-003.xht": [
-   "f94ef82ac9984ab7fc4c2fa97ec389b64051cd03",
+  "css/css-grid-1/grid-items/grid-inline-items-003.html": [
+   "a62848a576314a143ba4c4249e2919f339015610",
    "reftest"
   ],
-  "css/css-grid-1/grid-items/grid-inline-items-inline-blocks-001.xht": [
-   "c435e30c2be60c588d5901acd6674b63c692b7a6",
+  "css/css-grid-1/grid-items/grid-inline-items-inline-blocks-001.html": [
+   "1a0af2cedf319d117c5a4c95ccda14f65bdb792a",
    "reftest"
   ],
-  "css/css-grid-1/grid-items/grid-inline-order-property-auto-placement-001.xht": [
-   "ef67bb02c2012f60ac6fbc12c358b6961d8683e1",
+  "css/css-grid-1/grid-items/grid-inline-order-property-auto-placement-001.html": [
+   "dfbbf319eb3ca1e3b4bdff7a6885976f3cd0f4c8",
    "reftest"
   ],
-  "css/css-grid-1/grid-items/grid-inline-order-property-auto-placement-002.xht": [
-   "18c91aebe75b0ea7c4e7417e12c28e3124e1c97b",
+  "css/css-grid-1/grid-items/grid-inline-order-property-auto-placement-002.html": [
+   "e35735ebeca563fc48cf29fff3a7b630ec141e8c",
    "reftest"
   ],
-  "css/css-grid-1/grid-items/grid-inline-order-property-auto-placement-003.xht": [
-   "53acd8ba1017b9153e7bf51dec45aa430512ab87",
+  "css/css-grid-1/grid-items/grid-inline-order-property-auto-placement-003.html": [
+   "7b7d8d6cf52075289da60039c968b9222281af10",
    "reftest"
   ],
-  "css/css-grid-1/grid-items/grid-inline-order-property-auto-placement-004.xht": [
-   "040bad745f634826954b66bb0278766b7a158dc1",
+  "css/css-grid-1/grid-items/grid-inline-order-property-auto-placement-004.html": [
+   "0b3f6ba7626114058956bfecdfde3ac28463d907",
    "reftest"
   ],
-  "css/css-grid-1/grid-items/grid-inline-order-property-auto-placement-005.xht": [
-   "1f3a7c36f403500af26e12e44e9ae78dfb9e3d94",
+  "css/css-grid-1/grid-items/grid-inline-order-property-auto-placement-005.html": [
+   "c6e6dba9d2e4a40e4b3d337f68f6d8294e379f25",
    "reftest"
   ],
-  "css/css-grid-1/grid-items/grid-inline-order-property-painting-001.xht": [
-   "3995d52675726e6f9e1dd2dae87650bbc0ff00ff",
+  "css/css-grid-1/grid-items/grid-inline-order-property-painting-001.html": [
+   "a81bc2e2304ada69c4bcb620d3a81bee0f6e60fb",
    "reftest"
   ],
-  "css/css-grid-1/grid-items/grid-inline-order-property-painting-002.xht": [
-   "f32fcdf9037a8b015f3e5cb8f7f2602a70553198",
+  "css/css-grid-1/grid-items/grid-inline-order-property-painting-002.html": [
+   "f73688b5f837bca13ff86a7db7f3dcfbf68233bd",
    "reftest"
   ],
-  "css/css-grid-1/grid-items/grid-inline-order-property-painting-003.xht": [
-   "f396952e25fefb64dfad164d0bb53f5d7213bec2",
+  "css/css-grid-1/grid-items/grid-inline-order-property-painting-003.html": [
+   "5a6452be442ff6ac2ee7445c5536bac71aa1cfa3",
    "reftest"
   ],
-  "css/css-grid-1/grid-items/grid-inline-order-property-painting-004.xht": [
-   "cd98aa58aa0cbe6a41de3e4a3ea3f212f975ff47",
+  "css/css-grid-1/grid-items/grid-inline-order-property-painting-004.html": [
+   "ab6babb99a87b0365dcbd672ab99c9db1618a743",
    "reftest"
   ],
-  "css/css-grid-1/grid-items/grid-inline-order-property-painting-005.xht": [
-   "7ca300963694bedeae7d69e84aae16e444f38000",
+  "css/css-grid-1/grid-items/grid-inline-order-property-painting-005.html": [
+   "62bab6deff775ed89a61d56bb23785c33d6955f1",
    "reftest"
   ],
-  "css/css-grid-1/grid-items/grid-inline-z-axis-ordering-001.xht": [
-   "55af956b2d274febb9f39f905a103235b0d7178d",
+  "css/css-grid-1/grid-items/grid-inline-z-axis-ordering-001.html": [
+   "b61b3731e95699bf5084f71ad7c8c7cc77545da1",
    "reftest"
   ],
-  "css/css-grid-1/grid-items/grid-inline-z-axis-ordering-002.xht": [
-   "2ce31577e13542cd9933703f7546b6da78b93146",
+  "css/css-grid-1/grid-items/grid-inline-z-axis-ordering-002.html": [
+   "33a5f6e614739aa2559e6a94f64e17ee55d7bf01",
    "reftest"
   ],
-  "css/css-grid-1/grid-items/grid-inline-z-axis-ordering-003.xht": [
-   "24f4422d43642786a7786380305262dcd1b61a48",
+  "css/css-grid-1/grid-items/grid-inline-z-axis-ordering-003.html": [
+   "e697020eb9e63e701196dc2caa2685ca5fc4834a",
    "reftest"
   ],
-  "css/css-grid-1/grid-items/grid-inline-z-axis-ordering-004.xht": [
-   "8e511db84d88b959c5d3f6dff34bde55c8e4117c",
+  "css/css-grid-1/grid-items/grid-inline-z-axis-ordering-004.html": [
+   "5169522775e28518324d8eeed1bfe31d615fa8da",
    "reftest"
   ],
-  "css/css-grid-1/grid-items/grid-inline-z-axis-ordering-005.xht": [
-   "959d44aeba24ead0cebd4a662f2fd1d8ee261c73",
+  "css/css-grid-1/grid-items/grid-inline-z-axis-ordering-005.html": [
+   "7c0978d03f7ca0300114b025bacadb143830e8f4",
    "reftest"
   ],
-  "css/css-grid-1/grid-items/grid-inline-z-axis-ordering-overlapped-items-001.xht": [
-   "1ad3e5cf24fcb7d6dc8c6e28e51583cd017a4440",
+  "css/css-grid-1/grid-items/grid-inline-z-axis-ordering-overlapped-items-001.html": [
+   "3545f11e194e360f5b2434dd36182b8a18e7fe8d",
    "reftest"
   ],
-  "css/css-grid-1/grid-items/grid-inline-z-axis-ordering-overlapped-items-002.xht": [
-   "76f1a3fc17fdc3d7cd679416cfe326a9c99bc8fc",
+  "css/css-grid-1/grid-items/grid-inline-z-axis-ordering-overlapped-items-002.html": [
+   "ca7ad94966289dd396b7e9f7921eac72fd3bafca",
    "reftest"
   ],
-  "css/css-grid-1/grid-items/grid-inline-z-axis-ordering-overlapped-items-003.xht": [
-   "6d6ab00722959c18ac2f853cfb9f8e60bdfa86bf",
+  "css/css-grid-1/grid-items/grid-inline-z-axis-ordering-overlapped-items-003.html": [
+   "798129733b5eb05be07edf6abfccb0a5b285b439",
    "reftest"
   ],
-  "css/css-grid-1/grid-items/grid-inline-z-axis-ordering-overlapped-items-004.xht": [
-   "2dfb04fd4c3057144ca4e6f52afc118249e01468",
+  "css/css-grid-1/grid-items/grid-inline-z-axis-ordering-overlapped-items-004.html": [
+   "ffac701337e58cfcfeedfe2781cf82d7f3a4d519",
    "reftest"
   ],
-  "css/css-grid-1/grid-items/grid-inline-z-axis-ordering-overlapped-items-005.xht": [
-   "00ff5dbebe5995093620a13ec7c40a36e854ef74",
+  "css/css-grid-1/grid-items/grid-inline-z-axis-ordering-overlapped-items-005.html": [
+   "67850fc6c738228f9b61d0add7c8a75e4ea45e09",
    "reftest"
   ],
-  "css/css-grid-1/grid-items/grid-inline-z-axis-ordering-overlapped-items-006.xht": [
-   "f4872b4b30c39b7d6eaa2da28fe9e2e284324950",
+  "css/css-grid-1/grid-items/grid-inline-z-axis-ordering-overlapped-items-006.html": [
+   "bd899c9bf5b4fe1b7d40715fd8def0afb6c51d2e",
    "reftest"
   ],
   "css/css-grid-1/grid-items/grid-item-containing-block-001.html": [
@@ -187443,20 +187644,20 @@
    "21d5aae1010b398e29175baa05eeca7fef76d8c0",
    "reftest"
   ],
-  "css/css-grid-1/grid-items/grid-items-001.xht": [
-   "8430bda9ee16e272cf1c5b213fce423860951bb3",
+  "css/css-grid-1/grid-items/grid-items-001.html": [
+   "9d1066bf6e7051f36c7750b1cd22ad2c23ef2ae4",
    "reftest"
   ],
-  "css/css-grid-1/grid-items/grid-items-002.xht": [
-   "00c678b68282e5ac49baebd5740810afa4b9e06e",
+  "css/css-grid-1/grid-items/grid-items-002.html": [
+   "093a7e1111de1887e10443097508b720c230bbc6",
    "reftest"
   ],
-  "css/css-grid-1/grid-items/grid-items-003.xht": [
-   "3ada0ce93a24ce09ab55763498d7be0e3630ce39",
+  "css/css-grid-1/grid-items/grid-items-003.html": [
+   "26b9b3908e766348322e5029e79dbac4248e6776",
    "reftest"
   ],
-  "css/css-grid-1/grid-items/grid-items-inline-blocks-001.xht": [
-   "1d55d0b0b0dfaf6ae334e65359a7a6c696c769a2",
+  "css/css-grid-1/grid-items/grid-items-inline-blocks-001.html": [
+   "d36bce8f5be4f39442a884386ea08062c873b73d",
    "reftest"
   ],
   "css/css-grid-1/grid-items/grid-items-sizing-alignment-001-ref.html": [
@@ -187479,40 +187680,40 @@
    "329c91ffc4f68ae1fffa399a62fec38bb73859d8",
    "reftest"
   ],
-  "css/css-grid-1/grid-items/grid-minimum-size-grid-items-001.xht": [
-   "67ae04d38918ec9916a258f18dda1972155f15fc",
+  "css/css-grid-1/grid-items/grid-minimum-size-grid-items-001.html": [
+   "3cd1b071340b713e2bae85723ceda298d4f69907",
    "reftest"
   ],
-  "css/css-grid-1/grid-items/grid-minimum-size-grid-items-002.xht": [
-   "5bbd3db2e9e54b80a5e19b7f754dd3870491a789",
+  "css/css-grid-1/grid-items/grid-minimum-size-grid-items-002.html": [
+   "fc0d37c7f8390f8dc1fa5545d3ae4d11b5915473",
    "reftest"
   ],
-  "css/css-grid-1/grid-items/grid-minimum-size-grid-items-003.xht": [
-   "d925889c56b192bfd115cb566abb8e47333bed5f",
+  "css/css-grid-1/grid-items/grid-minimum-size-grid-items-003.html": [
+   "0ab809bc437d081b753ebf3ab7107b553e848a4b",
    "reftest"
   ],
-  "css/css-grid-1/grid-items/grid-minimum-size-grid-items-004.xht": [
-   "6a7ab40fa3c662e73e2af37a27a8311726e1be5a",
+  "css/css-grid-1/grid-items/grid-minimum-size-grid-items-004.html": [
+   "5499f133219cdcf76881bdcb77195d6a5e5a3bee",
    "reftest"
   ],
-  "css/css-grid-1/grid-items/grid-minimum-size-grid-items-005.xht": [
-   "5dfee0a534693984d84d8794f8c872d2ac4b82ab",
+  "css/css-grid-1/grid-items/grid-minimum-size-grid-items-005.html": [
+   "f751fd848e4076d742820b5f9e2f2afe6cd08505",
    "reftest"
   ],
-  "css/css-grid-1/grid-items/grid-minimum-size-grid-items-006.xht": [
-   "23097e8ac4e5a844a166f9205fc35fe1f6ba3e69",
+  "css/css-grid-1/grid-items/grid-minimum-size-grid-items-006.html": [
+   "a18e54cb5ba9b0f91c443e073084784778ebfa7b",
    "reftest"
   ],
-  "css/css-grid-1/grid-items/grid-minimum-size-grid-items-007.xht": [
-   "3e6e88d6cc25711d9e9f44f121f4527865f5cc74",
+  "css/css-grid-1/grid-items/grid-minimum-size-grid-items-007.html": [
+   "bf657a093b431c6c0f17f4c207a7b32ba0822045",
    "reftest"
   ],
-  "css/css-grid-1/grid-items/grid-minimum-size-grid-items-008.xht": [
-   "d10f0dd0e200cc9df01707ecad7d6185b1177703",
+  "css/css-grid-1/grid-items/grid-minimum-size-grid-items-008.html": [
+   "fc9ce48c25c9d446e1b6186469216a551aa67afa",
    "reftest"
   ],
-  "css/css-grid-1/grid-items/grid-minimum-size-grid-items-009.xht": [
-   "9851e99270fbb1713f585e00b3558f9d87ac7d64",
+  "css/css-grid-1/grid-items/grid-minimum-size-grid-items-009.html": [
+   "c843c219820996931e54f2ae404cbb03bfea2e59",
    "reftest"
   ],
   "css/css-grid-1/grid-items/grid-minimum-size-grid-items-010.html": [
@@ -187563,88 +187764,88 @@
    "de9477d81656c85b0d41044b1ffb44634c78eb0e",
    "testharness"
   ],
-  "css/css-grid-1/grid-items/grid-order-property-auto-placement-001.xht": [
-   "a716f3321a6ec7251794a923ed8e63ff11e4ffcf",
+  "css/css-grid-1/grid-items/grid-order-property-auto-placement-001.html": [
+   "15a3eec22bb5f55e3e7a73730e95011f4efbaf73",
    "reftest"
   ],
-  "css/css-grid-1/grid-items/grid-order-property-auto-placement-002.xht": [
-   "7c97e73acfaf63996d7150b7b598f238890a4bcc",
+  "css/css-grid-1/grid-items/grid-order-property-auto-placement-002.html": [
+   "6f4038ebe957cf9d67839f66bbcbbbc3d3b777c2",
    "reftest"
   ],
-  "css/css-grid-1/grid-items/grid-order-property-auto-placement-003.xht": [
-   "4d49b834ced45d341ca1fde5d1d2dcc434890a4d",
+  "css/css-grid-1/grid-items/grid-order-property-auto-placement-003.html": [
+   "57c6dc4ec196e8e761618b1f3eb14e31c4da8826",
    "reftest"
   ],
-  "css/css-grid-1/grid-items/grid-order-property-auto-placement-004.xht": [
-   "32da0e083bc9a3df379888049c4f08704fce1f4c",
+  "css/css-grid-1/grid-items/grid-order-property-auto-placement-004.html": [
+   "a321549b6d9323eb4e3afbcd8db735ec0a0d234a",
    "reftest"
   ],
-  "css/css-grid-1/grid-items/grid-order-property-auto-placement-005.xht": [
-   "418e42cb24ee969e4f3977bcbdadae56252c4efa",
+  "css/css-grid-1/grid-items/grid-order-property-auto-placement-005.html": [
+   "f5c41ca2264711400d46fc955de74d3b8533555e",
    "reftest"
   ],
-  "css/css-grid-1/grid-items/grid-order-property-painting-001.xht": [
-   "6a04f9ad5d4f349c8ee23d9495c09194216257f1",
+  "css/css-grid-1/grid-items/grid-order-property-painting-001.html": [
+   "3d32a8aac8d8e25538455258b0c3190220885765",
    "reftest"
   ],
-  "css/css-grid-1/grid-items/grid-order-property-painting-002.xht": [
-   "802d20385531d2aa317a2a092c46b88c87cb7af4",
+  "css/css-grid-1/grid-items/grid-order-property-painting-002.html": [
+   "11b5c01a4f5a2cff4b4b36cff0309fa950c52d1d",
    "reftest"
   ],
-  "css/css-grid-1/grid-items/grid-order-property-painting-003.xht": [
-   "b288745191b797463e78728b1f33e189e729904a",
+  "css/css-grid-1/grid-items/grid-order-property-painting-003.html": [
+   "ae6950ad75aaf97f59d0a275cfda77e82cf86bf9",
    "reftest"
   ],
-  "css/css-grid-1/grid-items/grid-order-property-painting-004.xht": [
-   "730f254535f277e430cc992038f6248a2c35c98f",
+  "css/css-grid-1/grid-items/grid-order-property-painting-004.html": [
+   "d7001fe1ba0b84eecc182744a67dab9524dd2ee8",
    "reftest"
   ],
-  "css/css-grid-1/grid-items/grid-order-property-painting-005.xht": [
-   "ef35a8e24fd3307a4577eeb233a4a07891928191",
+  "css/css-grid-1/grid-items/grid-order-property-painting-005.html": [
+   "d4aefdacbbf7804a10041edb1977626e4017a5b6",
    "reftest"
   ],
-  "css/css-grid-1/grid-items/grid-z-axis-ordering-001.xht": [
-   "0160f65079cf0a54090ee3c04e43d4891feeb181",
+  "css/css-grid-1/grid-items/grid-z-axis-ordering-001.html": [
+   "8a0f9cf4fb9ed3bd4fa93d2e71daec4eb7c09983",
    "reftest"
   ],
-  "css/css-grid-1/grid-items/grid-z-axis-ordering-002.xht": [
-   "2c484f646e367e12aca892b4e6e3734e769c84e3",
+  "css/css-grid-1/grid-items/grid-z-axis-ordering-002.html": [
+   "b3e54a73d28e9c4439a0d505ea95cb27f1dc2cf6",
    "reftest"
   ],
-  "css/css-grid-1/grid-items/grid-z-axis-ordering-003.xht": [
-   "b26d09a548a810ccf2b1f0b0fb1e9a97e79438c4",
+  "css/css-grid-1/grid-items/grid-z-axis-ordering-003.html": [
+   "e827c4eedaf12c30b95065c63e5f8c84bbfb1e04",
    "reftest"
   ],
-  "css/css-grid-1/grid-items/grid-z-axis-ordering-004.xht": [
-   "7e6c71074fb11b02ae1e8ae9e0d6ad0d2a1aafde",
+  "css/css-grid-1/grid-items/grid-z-axis-ordering-004.html": [
+   "7a3fee62392f240b8999c1eafa12b916ce73fe4e",
    "reftest"
   ],
-  "css/css-grid-1/grid-items/grid-z-axis-ordering-005.xht": [
-   "954e3316af68befc2e887b8a0260027a2f32fec3",
+  "css/css-grid-1/grid-items/grid-z-axis-ordering-005.html": [
+   "c6da569361d8cce6afc6133a0fd93c00ce6cc82b",
    "reftest"
   ],
-  "css/css-grid-1/grid-items/grid-z-axis-ordering-overlapped-items-001.xht": [
-   "d79773caf9cedc5a22cd96b397a841cf6ed5ffe9",
+  "css/css-grid-1/grid-items/grid-z-axis-ordering-overlapped-items-001.html": [
+   "ed8ae6b19fa32e63a8bb07e7986d0d3df32a6406",
    "reftest"
   ],
-  "css/css-grid-1/grid-items/grid-z-axis-ordering-overlapped-items-002.xht": [
-   "5d05bf42b9cf0e0c8d12bcd488674bf8f9ce2046",
+  "css/css-grid-1/grid-items/grid-z-axis-ordering-overlapped-items-002.html": [
+   "0c0c583eac524e6f1714268b8dfcea567e1cba77",
    "reftest"
   ],
-  "css/css-grid-1/grid-items/grid-z-axis-ordering-overlapped-items-003.xht": [
-   "8737cac392cc09e42d39ccb57cee54077b02d643",
+  "css/css-grid-1/grid-items/grid-z-axis-ordering-overlapped-items-003.html": [
+   "b99cbbd7b58c8fe0a69ec9d3450e0f9c2826b4f0",
    "reftest"
   ],
-  "css/css-grid-1/grid-items/grid-z-axis-ordering-overlapped-items-004.xht": [
-   "77c82b28249124bc38e3d5628653065386ec2d9c",
+  "css/css-grid-1/grid-items/grid-z-axis-ordering-overlapped-items-004.html": [
+   "2f1a37c0431745ae4c56e2acc359da6cd852f057",
    "reftest"
   ],
-  "css/css-grid-1/grid-items/grid-z-axis-ordering-overlapped-items-005.xht": [
-   "d891906a0428304134a6bf5e71828743a1919557",
+  "css/css-grid-1/grid-items/grid-z-axis-ordering-overlapped-items-005.html": [
+   "80b0c671f40806cbce618ec7c6e65ef685b3b90f",
    "reftest"
   ],
-  "css/css-grid-1/grid-items/grid-z-axis-ordering-overlapped-items-006.xht": [
-   "c86af295b991afbd7087bb1a2bf0be5bb1ceb7e7",
+  "css/css-grid-1/grid-items/grid-z-axis-ordering-overlapped-items-006.html": [
+   "ca7e5d89d56f33291e83647bef188205bf01ef84",
    "reftest"
   ],
   "css/css-grid-1/grid-items/ref-filled-green-100px-square-image.html": [
@@ -187687,108 +187888,108 @@
    "7ab628056a02368bf958038106c871318e5c56a0",
    "reftest"
   ],
-  "css/css-grid-1/grid-model/grid-computed-value-display-floated-items-001.xht": [
-   "5001197425660addc6c7bb183fce433611a4e35b",
+  "css/css-grid-1/grid-model/grid-computed-value-display-floated-items-001.html": [
+   "f94336e80a72225b05970dec330508c33445c87a",
    "testharness"
   ],
-  "css/css-grid-1/grid-model/grid-display-grid-001.xht": [
-   "ac54b0cf3af4a206d3054d6c9a3cb1def95ddacc",
+  "css/css-grid-1/grid-model/grid-display-grid-001.html": [
+   "4eb94a6ac52aec622d55911c68677263d9533246",
    "reftest"
   ],
-  "css/css-grid-1/grid-model/grid-display-inline-grid-001.xht": [
-   "5b44e1adf29a44e4b5f063ee8b23e6a70f7800e2",
+  "css/css-grid-1/grid-model/grid-display-inline-grid-001.html": [
+   "c3f036264b0a562a1f5217cdc6afb7b673563d48",
    "reftest"
   ],
-  "css/css-grid-1/grid-model/grid-first-letter-001.xht": [
-   "675094461196079f858623fae5d4c309865014d3",
+  "css/css-grid-1/grid-model/grid-first-letter-001.html": [
+   "6f8468bcdda770d2c51763dc03965cb9615c878e",
    "reftest"
   ],
-  "css/css-grid-1/grid-model/grid-first-letter-002.xht": [
-   "5324e405d33114b9b3dd08af1ed9a7f7837210d5",
+  "css/css-grid-1/grid-model/grid-first-letter-002.html": [
+   "d00fd71e71b6b9659abe8693a466c5e7d53ef666",
    "reftest"
   ],
-  "css/css-grid-1/grid-model/grid-first-letter-003.xht": [
-   "70b527aa6c628f7b703ea8513edc83bab1b53313",
+  "css/css-grid-1/grid-model/grid-first-letter-003.html": [
+   "cbd0117476a434bce6ae2ade65fe7cb11d55a429",
    "reftest"
   ],
-  "css/css-grid-1/grid-model/grid-first-line-001.xht": [
-   "e47a0f935b4eb3a58bf1bb82536fb27294a885ca",
+  "css/css-grid-1/grid-model/grid-first-line-001.html": [
+   "d9dd7d91b85dc25fe2e90f0ea87dbbda621fef64",
    "reftest"
   ],
-  "css/css-grid-1/grid-model/grid-first-line-002.xht": [
-   "058897dce82af6c8572fed06c312448ea7ebdab4",
+  "css/css-grid-1/grid-model/grid-first-line-002.html": [
+   "1abce3b0c27a087cbbff2cc7c9d805312526d767",
    "reftest"
   ],
-  "css/css-grid-1/grid-model/grid-first-line-003.xht": [
-   "b1da8a49784c98a62e2875c1089d385678eb6b78",
+  "css/css-grid-1/grid-model/grid-first-line-003.html": [
+   "749495dded979e468440dbd8bbfca5719bf15d19",
    "reftest"
   ],
-  "css/css-grid-1/grid-model/grid-float-001.xht": [
-   "cf2ccfce2f4b94a23840b35353303c1a59b40a21",
+  "css/css-grid-1/grid-model/grid-float-001.html": [
+   "c15914a88c9232af7a01218f986b85dbd3af2493",
    "reftest"
   ],
-  "css/css-grid-1/grid-model/grid-floats-no-intrude-001.xht": [
-   "c00d3006a15b1df0ac4a8ad400bcb840db89f21a",
+  "css/css-grid-1/grid-model/grid-floats-no-intrude-001.html": [
+   "46c9293d7b43f9b99f4424bd2ac70094f482cf72",
    "reftest"
   ],
-  "css/css-grid-1/grid-model/grid-inline-first-letter-001.xht": [
-   "897695fa5c3fe2b9b4af8b5f1ca18f51893937af",
+  "css/css-grid-1/grid-model/grid-inline-first-letter-001.html": [
+   "c22757afb439f1aca70fc04c439658ebc4c7d038",
    "reftest"
   ],
-  "css/css-grid-1/grid-model/grid-inline-first-letter-002.xht": [
-   "73c4288813970a5f8859026f0ca750a7d7346262",
+  "css/css-grid-1/grid-model/grid-inline-first-letter-002.html": [
+   "69dbf3e6878ec5a8c2752fc79544453ba6ee8887",
    "reftest"
   ],
-  "css/css-grid-1/grid-model/grid-inline-first-letter-003.xht": [
-   "91dc51a5ea19d97e3d892b340501a31532e17676",
+  "css/css-grid-1/grid-model/grid-inline-first-letter-003.html": [
+   "a1330a4ff999f6e362c6b929ecd4526e557b656d",
    "reftest"
   ],
-  "css/css-grid-1/grid-model/grid-inline-first-line-001.xht": [
-   "258c3ee28469ec3a0972ff2c0be8f2ba9064e1cb",
+  "css/css-grid-1/grid-model/grid-inline-first-line-001.html": [
+   "1c6d4a2c914d261ffdb5ec8f80210ded771f4547",
    "reftest"
   ],
-  "css/css-grid-1/grid-model/grid-inline-first-line-002.xht": [
-   "94fb80196d840b099440514609cbdaf86f2026ae",
+  "css/css-grid-1/grid-model/grid-inline-first-line-002.html": [
+   "75dcea5698371d0953b84bb61ddbe2e09e17773e",
    "reftest"
   ],
-  "css/css-grid-1/grid-model/grid-inline-first-line-003.xht": [
-   "df70ed3abe2f5a39b007afb4db144ac2598add96",
+  "css/css-grid-1/grid-model/grid-inline-first-line-003.html": [
+   "2a51828348dbe609ecccc6f9d7c7ff2841afbcd2",
    "reftest"
   ],
-  "css/css-grid-1/grid-model/grid-inline-float-001.xht": [
-   "288da7a0e9d65c135ca7d13bc0908724d33ebc98",
+  "css/css-grid-1/grid-model/grid-inline-float-001.html": [
+   "88afa335e96a9c4982911bb2397463ce52546204",
    "reftest"
   ],
-  "css/css-grid-1/grid-model/grid-inline-floats-no-intrude-001.xht": [
-   "61871123f661be9830357283719611fb14983861",
+  "css/css-grid-1/grid-model/grid-inline-floats-no-intrude-001.html": [
+   "d6264394299af2bcf166d6e780686702b02e8474",
    "reftest"
   ],
-  "css/css-grid-1/grid-model/grid-inline-margins-no-collapse-001.xht": [
-   "80250ba3993e28b79bb2dc5b75c6d60c09ee58a4",
+  "css/css-grid-1/grid-model/grid-inline-margins-no-collapse-001.html": [
+   "9eb03818de6eb30a0051bfddb1c48934e219f34b",
    "reftest"
   ],
-  "css/css-grid-1/grid-model/grid-inline-multicol-001.xht": [
-   "3c665eb19da2722966bbe1f8c81f5f9ae7d654c5",
+  "css/css-grid-1/grid-model/grid-inline-multicol-001.html": [
+   "3f7fb7e0caef47864f500169523906ca084c31f6",
    "reftest"
   ],
-  "css/css-grid-1/grid-model/grid-inline-vertical-align-001.xht": [
-   "bfa31edaaff6da3bb83ebc3e3c08eac3acdbaab3",
+  "css/css-grid-1/grid-model/grid-inline-vertical-align-001.html": [
+   "2075376b219560fbf9b9e6c3cb125ba2d066e966",
    "reftest"
   ],
-  "css/css-grid-1/grid-model/grid-margins-no-collapse-001.xht": [
-   "29a5ce03ddd7cdcc3783336ba889b9cb5f4d82b8",
+  "css/css-grid-1/grid-model/grid-margins-no-collapse-001.html": [
+   "f68bfb76a8158d9bd8c9e3ef2e8aab11401b0360",
    "reftest"
   ],
-  "css/css-grid-1/grid-model/grid-multicol-001.xht": [
-   "05d2a5bfa6b1ad04cc4b5f0b7a116d30f3f14b4d",
+  "css/css-grid-1/grid-model/grid-multicol-001.html": [
+   "0d747de6f1a63b0d333d88f6c45464efd72374c3",
    "reftest"
   ],
-  "css/css-grid-1/grid-model/grid-support-display-001.xht": [
-   "13eaf47b304e1f0e64453e740b5865872f2e514f",
+  "css/css-grid-1/grid-model/grid-support-display-001.html": [
+   "d415bbeb9838b4f0b3714ea347e31c35b263e41b",
    "testharness"
   ],
-  "css/css-grid-1/grid-model/grid-vertical-align-001.xht": [
-   "35fdd531a1ce1db89b542cdc6ff77454749ec37d",
+  "css/css-grid-1/grid-model/grid-vertical-align-001.html": [
+   "adfa657da1bb65a313894a8b5010a62d7c629c34",
    "reftest"
   ],
   "css/css-grid-1/implicit-grids/grid-support-grid-auto-columns-rows-001.html": [
@@ -187831,16 +188032,16 @@
    "b708c549640d2f0030e53ba884afb9d40c587049",
    "support"
   ],
-  "css/css-grid-1/reference/grid-2x2-blue-yellow-lime-magenta.xht": [
-   "f482a8e7b066201b02846ca5f584bf2058ae4b28",
+  "css/css-grid-1/reference/grid-2x2-blue-yellow-lime-magenta.html": [
+   "a457a82d10d1cc8f2576b6732e68a7854737f63a",
    "support"
   ],
-  "css/css-grid-1/reference/grid-filled-blue-yellow-green-overlapped-100px-squares.xht": [
-   "a67f519847a86a8dc4a625d8e5f884b7d89dac7c",
+  "css/css-grid-1/reference/grid-filled-blue-yellow-green-overlapped-100px-squares.html": [
+   "7c6ea02f3a101c8e20a3a57c158da85a1ed2842c",
    "support"
   ],
-  "css/css-grid-1/reference/grid-first-letter-green-margin-no-collapse-ref.xht": [
-   "5fe07c88fb49444dca5e5f39a3b9a4cce8b3f7dd",
+  "css/css-grid-1/reference/grid-first-letter-green-margin-no-collapse-ref.html": [
+   "7ee5acd8f5635a3e8e6bc54d7fc420c6275b2b02",
    "support"
   ],
   "css/css-grid-1/reference/grid-layout-auto-tracks-ref.html": [
@@ -187867,8 +188068,8 @@
    "ff487f266aa067949899506059e19d4b8fbf429c",
    "support"
   ],
-  "css/css-grid-1/reference/grid-text-green-margin-no-collapse-ref.xht": [
-   "dff3ac6f63d3adf9646a1dc48f54385064131ac7",
+  "css/css-grid-1/reference/grid-text-green-margin-no-collapse-ref.html": [
+   "feb53485e24aeaf9a5f27be5e42cc4a6fc5b8df0",
    "support"
   ],
   "css/css-position-3/position-sticky-bottom-ref.html": [
@@ -187927,6 +188128,22 @@
    "2c8ba01d6ac81c8ddeb45a256a8be920e362b149",
    "reftest"
   ],
+  "css/css-position-3/position-sticky-table-tr-bottom-ref.html": [
+   "77fcc16040cff06c53f18cfe96296f495b752c18",
+   "support"
+  ],
+  "css/css-position-3/position-sticky-table-tr-bottom.html": [
+   "f66365f4ceed9072bf25b98ecc36e49c89625b8b",
+   "reftest"
+  ],
+  "css/css-position-3/position-sticky-table-tr-top-ref.html": [
+   "8a54752c532080b652ae5ffb384b34ad2c8d8cb4",
+   "support"
+  ],
+  "css/css-position-3/position-sticky-table-tr-top.html": [
+   "7a030d17358067b78c879bf17171b60d1dc3acd9",
+   "reftest"
+  ],
   "css/css-position-3/position-sticky-top-ref.html": [
    "e5a05c21494a2e2923d1ed37050ec75db7ab55cd",
    "support"
@@ -202583,10 +202800,6 @@
    "22348a0aaeec8dcd677b8f60486f2e043b8f8a86",
    "testharness"
   ],
-  "css/geometry-1/structured-serialization-expected.txt": [
-   "791b11658b401303d0a80a1185f45986749333c1",
-   "support"
-  ],
   "css/geometry-1/structured-serialization.html": [
    "6f38a37d56ffb9d2ddc17f7c4ed0613b7a5c8136",
    "testharness"
@@ -202600,31 +202813,83 @@
    "support"
   ],
   "css/motion-1/offset-path-ray-ref.html": [
-   "afc20f0e2673fa5049a31ac296af938e256b3a40",
+   "dfea2bd9cadf9d1b83e95bc2dbffef3539937ff1",
    "support"
   ],
   "css/motion-1/offset-path-ray.html": [
-   "5126fca0945b77e370179240f3d1e27709c74c72",
+   "3142cc8d33d56a00d40322400d164fbb92701592",
    "reftest"
   ],
   "css/motion-1/offset-path-string-ref.html": [
-   "bc2bd4eb7a982f3fa3ed35a5fb91adb8eaeba897",
+   "fde0c63d10b7f26251a916c2435f1232e7db9b19",
    "support"
   ],
   "css/motion-1/offset-path-string.html": [
-   "d14d62810f76ebe1c88e33e63df06586ef77f9e0",
+   "f9cdf54e93f1b3646b7a414f4df59a216793cff1",
    "reftest"
   ],
   "css/motion-1/offset-rotate-001.html": [
-   "a8027f7cbe7444aa4603af3410e6ec17d94e2e78",
+   "d2a73d7472f90b97e39083944b3b046094a125d9",
    "reftest"
   ],
   "css/motion-1/offset-rotate-002.html": [
-   "bb973edf9486af79053ebdd240b07549c2373600",
+   "c65ab19d613a963138a2e2c01ccb3ced63bc3e8c",
    "reftest"
   ],
   "css/motion-1/offset-rotate-ref.html": [
-   "93b7cf294369a8ebcfa17968715f1c75b8ab45f8",
+   "09f4897e2d2fa99303edb59e2872a9a373db3e26",
+   "support"
+  ],
+  "css/motion-1/parsing/offset-anchor-parsing-invalid.html": [
+   "b48194c7ee35af7d114fd514f060ea9e8aae6372",
+   "testharness"
+  ],
+  "css/motion-1/parsing/offset-anchor-parsing-valid.html": [
+   "f3408e205ea2e2f91c40a35bb68cd18535889e5e",
+   "testharness"
+  ],
+  "css/motion-1/parsing/offset-distance-parsing-invalid.html": [
+   "93fa55e813b8fd82a11c1c70e331f07e2ef8ff8c",
+   "testharness"
+  ],
+  "css/motion-1/parsing/offset-distance-parsing-valid.html": [
+   "cfd7f351c6e3721c28d5b4992be02d5f1f86fcb6",
+   "testharness"
+  ],
+  "css/motion-1/parsing/offset-path-parsing-invalid.html": [
+   "5a37548528ea4d633f17b9a3215f9e6a30ce617c",
+   "testharness"
+  ],
+  "css/motion-1/parsing/offset-path-parsing-valid-expected.txt": [
+   "388ad89c30d8ab6d09a719a17dfffe02896fea92",
+   "support"
+  ],
+  "css/motion-1/parsing/offset-path-parsing-valid.html": [
+   "dad552eff4cbb61796c2b7954e4dbf2fdce96324",
+   "testharness"
+  ],
+  "css/motion-1/parsing/offset-position-parsing-invalid.html": [
+   "9a6a5cef379e2f81ae6b48662a83c6bd88bfc259",
+   "testharness"
+  ],
+  "css/motion-1/parsing/offset-position-parsing-valid.html": [
+   "878ef0365545f1ee0efcbd4ded1ec3dcda2c7543",
+   "testharness"
+  ],
+  "css/motion-1/parsing/offset-rotate-parsing-invalid-expected.txt": [
+   "e6d082696eb30d3741347185b10eaf1c7648fe01",
+   "support"
+  ],
+  "css/motion-1/parsing/offset-rotate-parsing-invalid.html": [
+   "36cebf21d27913e201a445cee732ed7bf6152b30",
+   "testharness"
+  ],
+  "css/motion-1/parsing/offset-rotate-parsing-valid.html": [
+   "8712c429bf7f7f2e3d16e3548edd7eddc6ae3e7d",
+   "testharness"
+  ],
+  "css/motion-1/parsing/resources/parsing-testcommon.js": [
+   "bb1376de12185a14f77fd28be757cc8db2a9929d",
    "support"
   ],
   "css/reference/black_box_ends_when_blue_box_ends_6_boxes_ahem.html": [
@@ -210383,6 +210648,10 @@
    "9597194813fc6ce3e63a7622eb61f791b8746ec7",
    "testharness"
   ],
+  "fetch/dangling-markup-mitigation.tentative.html": [
+   "1321f79af7ba2b5140605a88f3ea8c92cc1f4de6",
+   "testharness"
+  ],
   "fetch/http-cache/304-update.html": [
    "2571df43eb57ecbd29f55c2fc57b16f227001787",
    "testharness"
@@ -215320,7 +215589,7 @@
    "testharness"
   ],
   "html/dom/reflection-metadata-expected.txt": [
-   "7112033aaf2be8855bd3fc92764fb078f49a439b",
+   "f592a2fc5957c73953917cd7aa2474d9cd2812ad",
    "support"
   ],
   "html/dom/reflection-metadata.html": [
@@ -215328,7 +215597,7 @@
    "testharness"
   ],
   "html/dom/reflection-misc-expected.txt": [
-   "beab63dd6e5840e63d058f80cf1ffe62d5d58c10",
+   "f2046b22833fa1c167a8e898ce4c6f814937d0f2",
    "support"
   ],
   "html/dom/reflection-misc.html": [
@@ -235488,7 +235757,7 @@
    "support"
   ],
   "payment-request/payment-request-constructor.https.html": [
-   "dd8382b782997b962af48ae2b25571dd23bfe97f",
+   "12cb2d46800b03554830fb145f2d8dca37043f79",
    "testharness"
   ],
   "payment-request/payment-request-id.https.html": [
@@ -235851,6 +236120,14 @@
    "09da177c312d4112bc0177221cccaf787455db7e",
    "manual"
   ],
+  "pointerevents/pointerlock/pointerevent_pointerlock_after_pointercapture-manual.html": [
+   "c3f3e1ed9ed8b404e4d6c68b9b518047ed87002f",
+   "manual"
+  ],
+  "pointerevents/pointerlock/pointerevent_pointerlock_supercedes_capture-manual.html": [
+   "1968369ffe9917377fe3bb8801f8543aa9c0a9cf",
+   "manual"
+  ],
   "pointerevents/pointerlock/resources/pointerevent_movementxy-iframe.html": [
    "829b27c2a0f9281d65f7e2d760c7204781c71660",
    "support"
@@ -243979,6 +244256,10 @@
    "abf4b19b11f4d1e543cebddb7a52579e0465761b",
    "testharness"
   ],
+  "scroll-into-view/check-scroll-position.html": [
+   "5241579f29d76391075b9066863e5fcb7673ad94",
+   "testharness"
+  ],
   "secure-contexts/basic-dedicated-worker.html": [
    "075f4170b133fe13e282ff5450871ef7960faf50",
    "testharness"
@@ -244659,8 +244940,12 @@
    "c0403a4538bf063745a59f5848e30b13d1b3afc1",
    "testharness"
   ],
+  "service-workers/service-worker/clients-get-client-types.https-expected.txt": [
+   "3d4f5a8df36e90688f09df0b9a0a10994a605bfe",
+   "support"
+  ],
   "service-workers/service-worker/clients-get-client-types.https.html": [
-   "167d19739ba446973d3199c0b7417fc83fe056cc",
+   "ea824a137a9be8a5e90088caee0f59432cc6f3b9",
    "testharness"
   ],
   "service-workers/service-worker/clients-get-cross-origin.https.html": [
@@ -244672,7 +244957,7 @@
    "testharness"
   ],
   "service-workers/service-worker/clients-matchall-client-types.https.html": [
-   "02003bd248ffb0d54238339179105836ac7c4e14",
+   "3219697b2d6fb9694ad4db1e2d157807b5e5dbcb",
    "testharness"
   ],
   "service-workers/service-worker/clients-matchall-exact-controller.https.html": [
@@ -244899,6 +245184,10 @@
    "15c2be991ec5b02a0aecf54e6c7bb455f240141d",
    "testharness"
   ],
+  "service-workers/service-worker/http-to-https-redirect-and-register.https.html": [
+   "95aee5b0d561467fb5da27f62210be9808539706",
+   "testharness"
+  ],
   "service-workers/service-worker/iframe-sandbox-register-link-element.https.html": [
    "6cafc3245c88f7d96f6a4672b327d3b58ee4a0ee",
    "testharness"
@@ -245279,14 +245568,22 @@
    "efb9dd2b3468305396a3767fc780d07525bd8e61",
    "support"
   ],
+  "service-workers/service-worker/resources/clients-get-client-types-frame-worker.js": [
+   "27000afd7982f0e421e2a556fd887de31d3af07b",
+   "support"
+  ],
   "service-workers/service-worker/resources/clients-get-client-types-frame.html": [
-   "b41374d117b96fd2a702b7de3b6df08365032c95",
+   "5dc7405c19c4aa282204c0db891224d7d27b2978",
    "support"
   ],
   "service-workers/service-worker/resources/clients-get-client-types-shared-worker.js": [
    "801473dd69333f8081201ed0f3d7f53cca30753b",
    "support"
   ],
+  "service-workers/service-worker/resources/clients-get-client-types-worker.js": [
+   "27000afd7982f0e421e2a556fd887de31d3af07b",
+   "support"
+  ],
   "service-workers/service-worker/resources/clients-get-cross-origin-frame.html": [
    "a883adc270b47c6a104d10fd7dd9e6bc32c31315",
    "support"
@@ -245303,6 +245600,10 @@
    "a48201939523eb5eb0357a8354f7770f44b941a0",
    "support"
   ],
+  "service-workers/service-worker/resources/clients-matchall-client-types-dedicated-worker.js": [
+   "7a7b2bf8e609cdedd007baf4cdfba936c7d295c7",
+   "support"
+  ],
   "service-workers/service-worker/resources/clients-matchall-client-types-iframe.html": [
    "267de6ff27e4227682bbfdb86aeb3111d36d62cb",
    "support"
@@ -245615,6 +245916,10 @@
    "c5f88c11333ff1faba5d57812a36553d174ab711",
    "support"
   ],
+  "service-workers/service-worker/resources/http-to-https-redirect-and-register-iframe.html": [
+   "b1a69bedbfbcb8f5b38d35f637f75f167d80118a",
+   "support"
+  ],
   "service-workers/service-worker/resources/iframe-register-link-element.html": [
    "9ea5eb8893ae3d75c18566f5862c66df6bc831c0",
    "support"
@@ -245940,7 +246245,7 @@
    "support"
   ],
   "service-workers/service-worker/resources/skip-waiting-installed-worker.js": [
-   "d9eb8111b190c412e9d5958423625d3de2583a4a",
+   "6c6338c7aad6dfc6ef45458fb40441a04820aa6d",
    "support"
   ],
   "service-workers/service-worker/resources/skip-waiting-worker.js": [
@@ -245995,6 +246300,10 @@
    "dbf752f9a356f51f6ddf96053b39b5cd3515ddc8",
    "support"
   ],
+  "service-workers/service-worker/resources/windowclient-navigate-worker.js": [
+   "f7a925c1fe330839ea52d45cd052c387303defd6",
+   "support"
+  ],
   "service-workers/service-worker/resources/worker-interception-iframe.https.html": [
    "b9fd4ea281b328c1f21573d1563c968dac52cf22",
    "support"
@@ -246035,24 +246344,28 @@
    "031461c53701b922149fb481775e7afdce6fc7c6",
    "testharness"
   ],
+  "service-workers/service-worker/skip-waiting-installed.https-expected.txt": [
+   "844a6398c8af53bf34da514d6de2ddb8c43947c8",
+   "support"
+  ],
   "service-workers/service-worker/skip-waiting-installed.https.html": [
-   "8fb4d399affcfcc24b541e63390a94edf64bb771",
+   "c635baadef3503e526f475132584da3f161b2d0a",
    "testharness"
   ],
   "service-workers/service-worker/skip-waiting-using-registration.https.html": [
-   "140a5a9c801c9d65a0fda0ea341fa00035fad1f8",
+   "3069015a5cf2de7193f53456cebc387e6d32f49d",
    "testharness"
   ],
   "service-workers/service-worker/skip-waiting-without-client.https.html": [
-   "dfb945cfd633272d96e79b6679263b2d6b4aa8a1",
+   "1bb04c378d0ab29f65b08de931f3c414237e4b07",
    "testharness"
   ],
   "service-workers/service-worker/skip-waiting-without-using-registration.https.html": [
-   "fbae21429467d4a19b6020542460a3ad465def63",
+   "21a145eaadcea1751453c2258158e12710f3afee",
    "testharness"
   ],
   "service-workers/service-worker/skip-waiting.https.html": [
-   "67ce73166e334af7658179373a6dbb8cdc48f230",
+   "bea28e051bc747d863dad9d1fd4ef8ffce432b54",
    "testharness"
   ],
   "service-workers/service-worker/state.https.html": [
@@ -246060,7 +246373,7 @@
    "testharness"
   ],
   "service-workers/service-worker/synced-state.https.html": [
-   "38d80bd51f81c549bb718e0a37370eeaa6c18f91",
+   "c6a3d6e8aa7a70e1bc670f89192240bac081bfe9",
    "testharness"
   ],
   "service-workers/service-worker/uncontrolled-page.https.html": [
@@ -246076,7 +246389,7 @@
    "testharness"
   ],
   "service-workers/service-worker/unregister-then-register.https.html": [
-   "4498c27c527d54b5a95fee29232b71f25ddd8c33",
+   "b4a5e1933296cf96fa001822b5e269a5db60b188",
    "testharness"
   ],
   "service-workers/service-worker/unregister.https.html": [
@@ -246104,7 +246417,7 @@
    "testharness"
   ],
   "service-workers/service-worker/update.https.html": [
-   "73c129838eda3c18365f384b8b0a5c32b5e9cf6d",
+   "d55da98b05b5885084474ebdbabdf6c0998f8bca",
    "testharness"
   ],
   "service-workers/service-worker/waiting.https.html": [
@@ -246115,6 +246428,10 @@
    "40ec7850c61a3ee7578f055d3eef87293cfad482",
    "testharness"
   ],
+  "service-workers/service-worker/windowclient-navigate.https.html": [
+   "828d8d920459541a37e747ac01376fdcac51ffb3",
+   "testharness"
+  ],
   "service-workers/service-worker/worker-interception.https-expected.txt": [
    "899c85a404d425d1d21ac0688130d233303a9609",
    "support"
diff --git a/third_party/WebKit/LayoutTests/external/wpt/content-security-policy/embedded-enforcement/support/echo-required-csp.py b/third_party/WebKit/LayoutTests/external/wpt/content-security-policy/embedded-enforcement/support/echo-required-csp.py
index f55871d1..165ba9a 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/content-security-policy/embedded-enforcement/support/echo-required-csp.py
+++ b/third_party/WebKit/LayoutTests/external/wpt/content-security-policy/embedded-enforcement/support/echo-required-csp.py
@@ -1,6 +1,6 @@
 import json
 def main(request, response):
-    header = request.headers.get("Required-CSP");
+    header = request.headers.get("Sec-Required-CSP");
     message = {}
     message['required_csp'] = header if header else None
     return [("Content-Type", "text/html"), ("Allow-CSP-From", "*")], '''
diff --git a/third_party/WebKit/LayoutTests/external/wpt/credential-management/idl.https.html b/third_party/WebKit/LayoutTests/external/wpt/credential-management/idl.https.html
index 721810e7..92f489e 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/credential-management/idl.https.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/credential-management/idl.https.html
@@ -63,6 +63,7 @@
 
 </script>
 <script type="text/plain" id="tested">
+    [Exposed=Window, SecureContext]
     interface CredentialsContainer {
       Promise<Credential> get(optional CredentialRequestOptions options);
       Promise<Credential> store(Credential credential);
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/Flexible-order.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/Flexible-order.html
index 38a5fd4..9b61e1e 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/Flexible-order.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/Flexible-order.html
@@ -6,7 +6,7 @@
 
 <link rel="match" href="reference/Flexible-order-ref.html">
 <link rel="author" title="KeynesQu" href="mailto:keynesqu@sohu.com" />
-<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-order" />
+<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#order-property" />
 
 <style>
 
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/align-items-001.htm b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/align-items-001.htm
index 1991656d..c637ebf 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/align-items-001.htm
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/align-items-001.htm
@@ -4,7 +4,7 @@
         <title>CSS Test: A flex container with the 'align-items' property set to 'center'</title>
         <link rel="author" title="Microsoft" href="http://www.microsoft.com/" />
         <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#align-items-property" />
-        <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-align-items" />
+        <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#align-items-property" />
         <link rel="match" href="reference/align-content-001-ref.html" />
         <meta name="flags" content="">
         <meta name="assert" content="This test checks that the flex container with 'align-items: center' centers each flex item's margin box in the cross-axis of its line." />
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/align-items-002.htm b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/align-items-002.htm
index f56430f..205cd18 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/align-items-002.htm
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/align-items-002.htm
@@ -4,7 +4,7 @@
         <title>CSS Test: A flex container with the 'align-items' property set to 'flex-start'</title>
         <link rel="author" title="Microsoft" href="http://www.microsoft.com/" />
         <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#align-items-property" />
-        <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-align-items" />
+        <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#align-items-property" />
         <link rel="match" href="reference/align-content-001-ref.html" />
         <meta name="flags" content="">
         <meta name="assert" content="This test checks that the flex container with 'align-items: flex-start' places each flex item's margin box flush with the cross-start edge of line." />
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/align-items-003.htm b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/align-items-003.htm
index b9f1eac..adbf9fe 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/align-items-003.htm
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/align-items-003.htm
@@ -4,7 +4,7 @@
         <title>CSS Test: A flex container with the 'align-items' property set to 'flex-end'</title>
         <link rel="author" title="Microsoft" href="http://www.microsoft.com/" />
         <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#align-items-property" />
-        <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-align-items" />
+        <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#align-items-property" />
         <link rel="match" href="reference/align-content-001-ref.html" />
         <meta name="flags" content="">
         <meta name="assert" content="This test checks that the flex container with 'align-items: flex-end' places each flex item's margin box flush with the cross-end edge of line." />
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/align-items-004.htm b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/align-items-004.htm
index 4d7abff..b86f217 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/align-items-004.htm
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/align-items-004.htm
@@ -4,7 +4,7 @@
         <title>CSS Test: A flex container with the 'align-items' property set to 'baseline'</title>
         <link rel="author" title="Microsoft" href="http://www.microsoft.com/" />
         <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#align-items-property" />
-        <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-align-items" />
+        <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#align-items-property" />
         <link rel="match" href="reference/align-content-001-ref.html" />
         <meta name="flags" content="ahem">
         <meta name="assert" content="This test checks that the flex container with 'align-items: baseline' places each flex item's margin box so that their baselines align." />
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/align-items-005.htm b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/align-items-005.htm
index 6d5b338..d0d07ca 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/align-items-005.htm
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/align-items-005.htm
@@ -4,7 +4,7 @@
         <title>CSS Test: A flex container with the 'align-items' property set to 'stretch'</title>
         <link rel="author" title="Microsoft" href="http://www.microsoft.com/" />
         <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#align-items-property" />
-        <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-align-items" />
+        <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#align-items-property" />
         <link rel="match" href="reference/align-content-001-ref.html" />
         <meta name="flags" content="">
         <meta name="assert" content="This test checks that the flex container with 'align-items: stretch' places each flex item's margin box so that its cross size is the same as the cross size of the line." />
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/align-self-001.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/align-self-001.html
index a46b431c..d824125 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/align-self-001.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/align-self-001.html
@@ -4,7 +4,7 @@
 <link rel="author" title="Intel" href="http://www.intel.com">
 <link rel="author" title="Shiyou Tan" href="mailto:shiyoux.tan@intel.com">
 <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#align-items-property" title="8.3. Cross-axis Alignment: the 'align-items' and 'align-self' properties">
-<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-align-self" />
+<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#align-items-property" />
 <link rel="match" href="../reference/ref-filled-green-100px-square.xht">
 <meta name="flags" content="">
 <meta name="assert" content="The 'align-self' property set 'flex-start' aligns the flex items to the start edge of cross axis">
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/align-self-002.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/align-self-002.html
index 7a6540d0..f3e9513 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/align-self-002.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/align-self-002.html
@@ -4,7 +4,7 @@
 <link rel="author" title="Intel" href="http://www.intel.com">
 <link rel="author" title="Shiyou Tan" href="mailto:shiyoux.tan@intel.com">
 <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#align-items-property" title="8.3. Cross-axis Alignment: the 'align-items' and 'align-self' properties">
-<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-align-self" />
+<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#align-items-property" />
 <link rel="match" href="../reference/ref-filled-green-100px-square.xht">
 <meta name="flags" content="">
 <meta name="assert" content="The 'align-self' property set 'flex-end' aligns the flex items to the end edge of cross axis">
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/align-self-003.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/align-self-003.html
index 6be7906..d9c9294 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/align-self-003.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/align-self-003.html
@@ -4,7 +4,7 @@
 <link rel="author" title="Intel" href="http://www.intel.com">
 <link rel="author" title="Shiyou Tan" href="mailto:shiyoux.tan@intel.com">
 <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#align-items-property" title="8.3. Cross-axis Alignment: the 'align-items' and 'align-self' properties">
-<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-align-self" />
+<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#align-items-property" />
 <link rel="match" href="../reference/ref-filled-green-100px-square.xht">
 <meta name="flags" content="">
 <meta name="assert" content="The 'align-self' property set 'center' centered the flex items in the cross axis within the line">
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/align-self-004.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/align-self-004.html
index bb568a55..7feeb09 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/align-self-004.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/align-self-004.html
@@ -4,7 +4,7 @@
 <link rel="author" title="Intel" href="http://www.intel.com">
 <link rel="author" title="Shiyou Tan" href="mailto:shiyoux.tan@intel.com">
 <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#align-items-property" title="8.3. Cross-axis Alignment: the 'align-items' and 'align-self' properties">
-<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-align-self" />
+<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#align-items-property" />
 <link rel="match" href="../reference/ref-filled-green-100px-square.xht">
 <meta name="flags" content="">
 <meta name="assert" content="The 'align-self' property set 'stretch' makes the cross size of the item's margin box
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/align-self-005.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/align-self-005.html
index 6185ca7d..f1df4ce 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/align-self-005.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/align-self-005.html
@@ -4,7 +4,7 @@
 <link rel="author" title="Intel" href="http://www.intel.com">
 <link rel="author" title="Shiyou Tan" href="mailto:shiyoux.tan@intel.com">
 <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#align-items-property" title="8.3. Cross-axis Alignment: the 'align-items' and 'align-self' properties">
-<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-align-self" />
+<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#align-items-property" />
 <link rel="match" href="../reference/ref-filled-green-100px-square.xht">
 <meta name="flags" content="">
 <meta name="assert" content="The 'align-self' property set 'stretch' will be invalid while cross size of the flex item set exact number">
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/align-self-006.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/align-self-006.html
index bb6237c9..dbc637b 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/align-self-006.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/align-self-006.html
@@ -4,7 +4,7 @@
 <link rel="author" title="Intel" href="http://www.intel.com">
 <link rel="author" title="Shiyou Tan" href="mailto:shiyoux.tan@intel.com">
 <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#align-items-property" title="8.3. Cross-axis Alignment: the 'align-items' and 'align-self' properties">
-<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-align-self" />
+<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#align-items-property" />
 <meta name="flags" content="">
 <meta name="assert" content="The 'align-self' property set 'baseline' aligns the flex items to the baseline of content">
 <style>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/align-self-007.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/align-self-007.html
index b729429..1e67947 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/align-self-007.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/align-self-007.html
@@ -4,8 +4,8 @@
 <link rel="author" title="Intel" href="http://www.intel.com">
 <link rel="author" title="Shiyou Tan" href="mailto:shiyoux.tan@intel.com">
 <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#align-items-property" title="8.3. Cross-axis Alignment: the 'align-items' and 'align-self' properties">
-<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-align-self" />
-<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-align-items">
+<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#align-items-property" />
+<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#align-items-property">
 <link rel="match" href="../reference/ref-filled-green-100px-square.xht">
 <meta name="flags" content="">
 <meta name="assert" content="The 'align-self' property set 'auto' aligns flex items to start edge of cross-axis when 'align-items' set 'flex-start'">
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/align-self-008.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/align-self-008.html
index 977afd9a..fab9164e 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/align-self-008.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/align-self-008.html
@@ -4,7 +4,7 @@
 <link rel="author" title="Intel" href="http://www.intel.com">
 <link rel="author" title="Shiyou Tan" href="mailto:shiyoux.tan@intel.com">
 <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#align-items-property" title="8.3. Cross-axis Alignment: the 'align-items' and 'align-self' properties">
-<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-align-self" />
+<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#align-items-property" />
 <link rel="match" href="../reference/ref-filled-green-100px-square.xht">
 <meta name="flags" content="">
 <meta name="assert" content="The 'align-self' property set 'auto' aligns flex items to end edge of cross-axis when 'align-items' set 'flex-end'">
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/align-self-009.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/align-self-009.html
index dbf7fa7..0d93330 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/align-self-009.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/align-self-009.html
@@ -4,7 +4,7 @@
 <link rel="author" title="Intel" href="http://www.intel.com">
 <link rel="author" title="Shiyou Tan" href="mailto:shiyoux.tan@intel.com">
 <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#align-items-property" title="8.3. Cross-axis Alignment: the 'align-items' and 'align-self' properties">
-<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-align-self" />
+<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#align-items-property" />
 <link rel="match" href="../reference/ref-filled-green-100px-square.xht">
 <meta name="flags" content="">
 <meta name="assert" content="The 'align-self' property set 'auto' will center flex items the flex items in the cross axis when 'align-items' set 'center'">
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/align-self-010.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/align-self-010.html
index a684c1d124..eb9e7f3 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/align-self-010.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/align-self-010.html
@@ -4,7 +4,7 @@
 <link rel="author" title="Intel" href="http://www.intel.com">
 <link rel="author" title="Shiyou Tan" href="mailto:shiyoux.tan@intel.com">
 <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#align-items-property" title="8.3. Cross-axis Alignment: the 'align-items' and 'align-self' properties">
-<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-align-self" />
+<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#align-items-property" />
 <meta name="flags" content="">
 <meta name="assert" content="The 'align-self' property set 'auto' aligns the flex items to the baseline of content when 'align-items' set 'baseline'">
 <style>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/align-self-011.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/align-self-011.html
index d707980..9f5fcc2 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/align-self-011.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/align-self-011.html
@@ -4,7 +4,7 @@
 <link rel="author" title="Intel" href="http://www.intel.com">
 <link rel="author" title="Shiyou Tan" href="mailto:shiyoux.tan@intel.com">
 <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#align-items-property" title="8.3. Cross-axis Alignment: the 'align-items' and 'align-self' properties">
-<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-align-self" />
+<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#align-items-property" />
 <link rel="match" href="../reference/ref-filled-green-100px-square.xht">
 <meta name="flags" content="">
 <meta name="assert" content="The 'align-self' property set 'auto' makes the cross size of the item's margin box
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/align-self-012.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/align-self-012.html
index b97cb391..f2bc5d6 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/align-self-012.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/align-self-012.html
@@ -4,7 +4,7 @@
 <link rel="author" title="Intel" href="http://www.intel.com">
 <link rel="author" title="Shiyou Tan" href="mailto:shiyoux.tan@intel.com">
 <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#align-items-property" title="8.3. Cross-axis Alignment: the 'align-items' and 'align-self' properties">
-<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-align-self" />
+<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#align-items-property" />
 <link rel="match" href="../reference/ref-filled-green-100px-square.xht">
 <meta name="flags" content="">
 <meta name="assert" content="The initial value of 'align-self' property is 'auto'">
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/align-self-013.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/align-self-013.html
index 0323ee8..f16d298 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/align-self-013.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/align-self-013.html
@@ -4,7 +4,7 @@
 <link rel="author" title="Intel" href="http://www.intel.com">
 <link rel="author" title="Shiyou Tan" href="mailto:shiyoux.tan@intel.com">
 <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#align-items-property" title="8.3. Cross-axis Alignment: the 'align-items' and 'align-self' properties">
-<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-align-self" />
+<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#align-items-property" />
 <link rel="match" href="../reference/ref-filled-green-100px-square.xht">
 <meta name="flags" content="">
 <meta name="assert" content="The 'align-self' property is invalid if applied to flex container">
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/css-box-justify-content.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/css-box-justify-content.html
index 06223d5a..d5c7244f 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/css-box-justify-content.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/css-box-justify-content.html
@@ -1,8 +1,8 @@
 <!DOCTYPE html>
 <title>flexbox |css-box-justify-content</title>
 <link rel="author" href="mailto:ava656094@gmail.com" title="xiaoxia">
-<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-justify-content">
-<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-flex-flow">
+<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#justify-content-property">
+<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#flex-flow-property">
 <link rel="match" href="reference/css-box-justify-content-ref.html">
 <style>
 #flexbox {
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/css-flexbox-column-reverse-wrap-reverse.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/css-flexbox-column-reverse-wrap-reverse.html
index 59351eb3..d4787bc 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/css-flexbox-column-reverse-wrap-reverse.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/css-flexbox-column-reverse-wrap-reverse.html
@@ -4,7 +4,7 @@
     <meta charset="utf-8" />
     <title>CSS Flexbox Test: flex direction: row</title>
     <link rel="author" title="Naoki Okada" href="mailto:somathor@gmail.com" />
-    <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-flex-flow">
+    <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#flex-flow-property">
     <link rel="match" href="css-flexbox-column-ref.html">
     <meta name="flags" content="">
     <meta name="assert" content="Test checks that when writing mode is vertical and flex-flow: column wrap-reverse, the flex container is vertical.">
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/css-flexbox-column-reverse-wrap.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/css-flexbox-column-reverse-wrap.html
index 349d230..05c4c7f5 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/css-flexbox-column-reverse-wrap.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/css-flexbox-column-reverse-wrap.html
@@ -4,7 +4,7 @@
     <meta charset="utf-8" />
     <title>CSS Flexbox Test: flex direction: row</title>
     <link rel="author" title="Naoki Okada" href="mailto:somathor@gmail.com" />
-    <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-flex-flow">
+    <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#flex-flow-property">
     <link rel="match" href="css-flexbox-column-ref.html">
     <meta name="flags" content="">
     <meta name="assert" content="Test checks that when writing mode is vertical and flex-flow: column wrap, the flex container is vertical.">
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/css-flexbox-column-reverse.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/css-flexbox-column-reverse.html
index 15276ce3..9115ae3 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/css-flexbox-column-reverse.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/css-flexbox-column-reverse.html
@@ -4,7 +4,7 @@
     <meta charset="utf-8" />
     <title>CSS Flexbox Test: flex direction: row</title>
     <link rel="author" title="Naoki Okada" href="mailto:somathor@gmail.com" />
-    <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-flex-flow">
+    <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#flex-flow-property">
     <link rel="match" href="css-flexbox-column-ref.html">
     <meta name="flags" content="">
     <meta name="assert" content="Test checks that when writing mode is vertical and flex-flow: column, the flex container is vertical.">
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/css-flexbox-column-wrap-reverse.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/css-flexbox-column-wrap-reverse.html
index 70857fab..ec309ba 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/css-flexbox-column-wrap-reverse.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/css-flexbox-column-wrap-reverse.html
@@ -4,7 +4,7 @@
     <meta charset="utf-8" />
     <title>CSS Flexbox Test: flex direction: row</title>
     <link rel="author" title="Naoki Okada" href="mailto:somathor@gmail.com" />
-    <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-flex-flow">
+    <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#flex-flow-property">
     <link rel="match" href="css-flexbox-column-ref.html">
     <meta name="flags" content="">
     <meta name="assert" content="Test checks that when writing mode is vertical and flex-flow: column wrap-reverse, the flex container is vertical.">
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/css-flexbox-column-wrap.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/css-flexbox-column-wrap.html
index 289ae9e4..c4797a9d 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/css-flexbox-column-wrap.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/css-flexbox-column-wrap.html
@@ -4,7 +4,7 @@
     <meta charset="utf-8" />
     <title>CSS Flexbox Test: flex direction: row</title>
     <link rel="author" title="Naoki Okada" href="mailto:somathor@gmail.com" />
-    <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-flex-flow">
+    <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#flex-flow-property">
     <link rel="match" href="css-flexbox-column-ref.html">
     <meta name="flags" content="">
     <meta name="assert" content="Test checks that when writing mode is vertical and flex-flow: column wrap, the flex container is vertical.">
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/css-flexbox-column.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/css-flexbox-column.html
index 2640450f..c633a44 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/css-flexbox-column.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/css-flexbox-column.html
@@ -4,7 +4,7 @@
     <meta charset="utf-8" />
     <title>CSS Flexbox Test: flex direction: row</title>
     <link rel="author" title="Naoki Okada" href="mailto:somathor@gmail.com" />
-    <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-flex-flow">
+    <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#flex-flow-property">
     <link rel="match" href="css-flexbox-column-ref.html">
     <meta name="flags" content="">
     <meta name="assert" content="Test checks that when writing mode is vertical and flex-flow: column, the flex container is vertical.">
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/css-flexbox-height-animation-stretch.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/css-flexbox-height-animation-stretch.html
index 8a68290..b98184f 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/css-flexbox-height-animation-stretch.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/css-flexbox-height-animation-stretch.html
@@ -3,7 +3,7 @@
 <head>
 	<title>CSS Flexbox Test: Items stretch correctly while content is animating</title>
 	<link rel="author" title="Micky Brunetti" href="mailto:micky2be@gmail.com">
-	<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-align-items">
+	<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#align-items-property">
 	<link rel="match" href="css-flexbox-height-animation-stretch-ref.html"/>
 	<meta name="flags" content="">
 	<meta name="assert" content="Items should stretch vertically in all time">
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/css-flexbox-img-expand-evenly.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/css-flexbox-img-expand-evenly.html
index 3fbb1eeb..8e8c1d85 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/css-flexbox-img-expand-evenly.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/css-flexbox-img-expand-evenly.html
@@ -5,7 +5,7 @@
     <link rel="author" title="Eiji Kitamura" href="mailto:agektmr@gmail.com">
     <!-- You must have at least one spec link, but may have as many as are covered in the test. -->
     <!-- Be sure to make the main testing area first in the order -->
-    <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-flex-grow">
+    <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#flex-grow-property">
     <!-- The match link is only required if this is a reftest -->
     <link rel="match" href="reference/css-flexbox-img-expand-evenly-ref.html">
     <meta name="flags" content="">
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/css-flexbox-row-reverse-wrap-reverse.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/css-flexbox-row-reverse-wrap-reverse.html
index 0e883e96..3d0d6a5 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/css-flexbox-row-reverse-wrap-reverse.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/css-flexbox-row-reverse-wrap-reverse.html
@@ -7,8 +7,8 @@
     <link rel="reviewer" title="Elika J Etemad" href="http://fantasai.inkedblade.net/contact" />
     <!-- You must have at least one spec link, but may have as many as are covered in the test. -->
     <!-- Be sure to make the main testing area first in the order -->
-    <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-flex-flow">
-    <link rel="help" href="http://www.w3.org/TR/css-writing-modes-3/#propdef-writing-mode">
+    <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#flex-flow-property">
+    <link rel="help" href="http://www.w3.org/TR/css-writing-modes-3/#block-flow">
     <!-- The match link is only required if this is a reftest -->
     <link rel="match" href="css-flexbox-row-ref.html">
     <meta name="flags" content="">
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/css-flexbox-row-reverse-wrap.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/css-flexbox-row-reverse-wrap.html
index e9be524..8242f22 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/css-flexbox-row-reverse-wrap.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/css-flexbox-row-reverse-wrap.html
@@ -7,8 +7,8 @@
     <link rel="reviewer" title="Elika J Etemad" href="http://fantasai.inkedblade.net/contact" />
     <!-- You must have at least one spec link, but may have as many as are covered in the test. -->
     <!-- Be sure to make the main testing area first in the order -->
-    <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-flex-flow">
-    <link rel="help" href="http://www.w3.org/TR/css-writing-modes-3/#propdef-writing-mode">
+    <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#flex-flow-property">
+    <link rel="help" href="http://www.w3.org/TR/css-writing-modes-3/#block-flow">
     <!-- The match link is only required if this is a reftest -->
     <link rel="match" href="css-flexbox-row-ref.html">
     <meta name="flags" content="">
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/css-flexbox-row-reverse.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/css-flexbox-row-reverse.html
index 3295bdd..d5a857ea 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/css-flexbox-row-reverse.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/css-flexbox-row-reverse.html
@@ -7,8 +7,8 @@
     <link rel="reviewer" title="Elika J Etemad" href="http://fantasai.inkedblade.net/contact" />
     <!-- You must have at least one spec link, but may have as many as are covered in the test. -->
     <!-- Be sure to make the main testing area first in the order -->
-    <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-flex-flow">
-    <link rel="help" href="http://www.w3.org/TR/css-writing-modes-3/#propdef-writing-mode">
+    <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#flex-flow-property">
+    <link rel="help" href="http://www.w3.org/TR/css-writing-modes-3/#block-flow">
     <!-- The match link is only required if this is a reftest -->
     <link rel="match" href="css-flexbox-row-ref.html">
     <meta name="flags" content="">
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/css-flexbox-row-wrap-reverse.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/css-flexbox-row-wrap-reverse.html
index 08a08669f..94d4346b 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/css-flexbox-row-wrap-reverse.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/css-flexbox-row-wrap-reverse.html
@@ -7,8 +7,8 @@
     <link rel="reviewer" title="Elika J Etemad" href="http://fantasai.inkedblade.net/contact" />
     <!-- You must have at least one spec link, but may have as many as are covered in the test. -->
     <!-- Be sure to make the main testing area first in the order -->
-    <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-flex-flow">
-    <link rel="help" href="http://www.w3.org/TR/css-writing-modes-3/#propdef-writing-mode">
+    <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#flex-flow-property">
+    <link rel="help" href="http://www.w3.org/TR/css-writing-modes-3/#block-flow">
     <!-- The match link is only required if this is a reftest -->
     <link rel="match" href="css-flexbox-row-ref.html">
     <meta name="flags" content="">
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/css-flexbox-row-wrap.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/css-flexbox-row-wrap.html
index 4a56b50a..22ed901 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/css-flexbox-row-wrap.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/css-flexbox-row-wrap.html
@@ -7,8 +7,8 @@
     <link rel="reviewer" title="Elika J Etemad" href="http://fantasai.inkedblade.net/contact" />
     <!-- You must have at least one spec link, but may have as many as are covered in the test. -->
     <!-- Be sure to make the main testing area first in the order -->
-    <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-flex-flow">
-    <link rel="help" href="http://www.w3.org/TR/css-writing-modes-3/#propdef-writing-mode">
+    <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#flex-flow-property">
+    <link rel="help" href="http://www.w3.org/TR/css-writing-modes-3/#block-flow">
     <!-- The match link is only required if this is a reftest -->
     <link rel="match" href="css-flexbox-row-ref.html">
     <meta name="flags" content="">
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/css-flexbox-row.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/css-flexbox-row.html
index 98d6dd8..15f4f69 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/css-flexbox-row.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/css-flexbox-row.html
@@ -7,8 +7,8 @@
     <link rel="reviewer" title="Elika J Etemad" href="http://fantasai.inkedblade.net/contact" />
     <!-- You must have at least one spec link, but may have as many as are covered in the test. -->
     <!-- Be sure to make the main testing area first in the order -->
-    <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-flex-flow">
-    <link rel="help" href="http://www.w3.org/TR/css-writing-modes-3/#propdef-writing-mode">
+    <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#flex-flow-property">
+    <link rel="help" href="http://www.w3.org/TR/css-writing-modes-3/#block-flow">
     <!-- The match link is only required if this is a reftest -->
     <link rel="match" href="css-flexbox-row-ref.html">
     <meta name="flags" content="">
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/css-flexbox-test1.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/css-flexbox-test1.html
index 5ee6f2f..f797db8 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/css-flexbox-test1.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/css-flexbox-test1.html
@@ -7,7 +7,7 @@
     <link rel="reviewer" title="Elika J Etemad" href="http://fantasai.inkedblade.net/contact" />
     <!-- You must have at least one spec link, but may have as many as are covered in the test. -->
     <!-- Be sure to make the main testing area first in the order -->
-    <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-flex-flow">
+    <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#flex-flow-property">
     <!-- The match link is only required if this is a reftest -->
     <link rel="match" href="css-flexbox-test1-ref.html">
     <meta name="flags" content="">
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-basis-001.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-basis-001.html
index f75026d..238dc3f 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-basis-001.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-basis-001.html
@@ -3,7 +3,7 @@
 <title>CSS Flexbox Test: flex-basis - positive number</title>
 <link rel="author" title="Intel" href="http://www.intel.com">
 <link rel="author" title="Intel" href="mailto:shiyoux.tan@intel.com">
-<link rel="help" title="7.3.3. The 'flex-basis' property" href="http://www.w3.org/TR/css-flexbox-1/#propdef-flex-basis">
+<link rel="help" title="7.3.3. The 'flex-basis' property" href="http://www.w3.org/TR/css-flexbox-1/#flex-basis-property">
 <link rel="match" href="../reference/ref-filled-green-100px-square.xht">
 <meta name="flags" content="">
 <meta name="assert" content="The 'flex-basis' property set positive number, the actual value of test element size is same as the positive number">
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-basis-002.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-basis-002.html
index f19dc5d..83e41472 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-basis-002.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-basis-002.html
@@ -3,7 +3,7 @@
 <title>CSS Flexbox Test: flex-basis - positive number</title>
 <link rel="author" title="Intel" href="http://www.intel.com">
 <link rel="author" title="Intel" href="mailto:shiyoux.tan@intel.com">
-<link rel="help" title="7.3.3. The 'flex-basis' property" href="http://www.w3.org/TR/css-flexbox-1/#propdef-flex-basis">
+<link rel="help" title="7.3.3. The 'flex-basis' property" href="http://www.w3.org/TR/css-flexbox-1/#flex-basis-property">
 <link rel="match" href="../reference/ref-filled-green-100px-square.xht">
 <meta name="flags" content="">
 <meta name="assert" content="The 'flex-basis' property specified correct value, the actual value of test element size is same as to the value of 'flex-basis' property, and the 'width' property is invalid.">
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-basis-003.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-basis-003.html
index 0d0813f2..4c350cc6 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-basis-003.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-basis-003.html
@@ -3,7 +3,7 @@
 <title>CSS Flexbox Test: flex-basis - negative number(width not specified)</title>
 <link rel="author" title="Intel" href="http://www.intel.com">
 <link rel="author" title="Intel" href="mailto:shiyoux.tan@intel.com">
-<link rel="help" title="7.3.3. The 'flex-basis' property" href="http://www.w3.org/TR/css-flexbox-1/#propdef-flex-basis">
+<link rel="help" title="7.3.3. The 'flex-basis' property" href="http://www.w3.org/TR/css-flexbox-1/#flex-basis-property">
 <link rel="match" href="../reference/ref-filled-green-100px-square.xht">
 <meta name="flags" content="">
 <meta name="assert" content="The 'flex-basis' property set negative number, the tested element is not shown when width not set either.">
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-basis-004.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-basis-004.html
index a1d59943..388e65b 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-basis-004.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-basis-004.html
@@ -3,7 +3,7 @@
 <title>CSS Flexbox Test: flex-basis - negative number(width specified)</title>
 <link rel="author" title="Intel" href="http://www.intel.com">
 <link rel="author" title="Intel" href="mailto:shiyoux.tan@intel.com">
-<link rel="help" title="7.3.3. The 'flex-basis' property" href="http://www.w3.org/TR/css-flexbox-1/#propdef-flex-basis">
+<link rel="help" title="7.3.3. The 'flex-basis' property" href="http://www.w3.org/TR/css-flexbox-1/#flex-basis-property">
 <link rel="match" href="../reference/ref-filled-green-100px-square.xht">
 <meta name="flags" content="">
 <meta name="assert" content="The 'flex-basis' property set negative number, the actual width of tested element is
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-basis-005.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-basis-005.html
index 214f5745..494e5a6 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-basis-005.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-basis-005.html
@@ -3,7 +3,7 @@
 <title>CSS Flexbox Test: flex-basis - 0</title>
 <link rel="author" title="Intel" href="http://www.intel.com">
 <link rel="author" title="Intel" href="mailto:shiyoux.tan@intel.com">
-<link rel="help" title="7.3.3. The 'flex-basis' property" href="http://www.w3.org/TR/css-flexbox-1/#propdef-flex-basis">
+<link rel="help" title="7.3.3. The 'flex-basis' property" href="http://www.w3.org/TR/css-flexbox-1/#flex-basis-property">
 <link rel="match" href="../reference/ref-filled-green-100px-square.xht">
 <meta name="flags" content="">
 <meta name="assert" content="The 'flex-basis' property set '0', the actual width of tested element is same as 0.">
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-basis-006.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-basis-006.html
index edf2f1d..6c4cc10c 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-basis-006.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-basis-006.html
@@ -3,7 +3,7 @@
 <title>CSS Flexbox Test: flex-basis - 0%</title>
 <link rel="author" title="Intel" href="http://www.intel.com">
 <link rel="author" title="Intel" href="mailto:shiyoux.tan@intel.com">
-<link rel="help" title="7.3.3. The 'flex-basis' property" href="http://www.w3.org/TR/css-flexbox-1/#propdef-flex-basis">
+<link rel="help" title="7.3.3. The 'flex-basis' property" href="http://www.w3.org/TR/css-flexbox-1/#flex-basis-property">
 <link rel="match" href="../reference/ref-filled-green-100px-square.xht">
 <meta name="flags" content="">
 <meta name="assert" content="The 'flex-basis' property set '0%', the actual width of tested element is same as 0.">
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-basis-007.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-basis-007.html
index ee8c3cf..5259066 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-basis-007.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-basis-007.html
@@ -3,7 +3,7 @@
 <title>CSS Flexbox Test: flex-basis - auto</title>
 <link rel="author" title="Intel" href="http://www.intel.com">
 <link rel="author" title="Intel" href="mailto:shiyoux.tan@intel.com">
-<link rel="help" title="7.3.3. The 'flex-basis' property" href="http://www.w3.org/TR/css-flexbox-1/#propdef-flex-basis">
+<link rel="help" title="7.3.3. The 'flex-basis' property" href="http://www.w3.org/TR/css-flexbox-1/#flex-basis-property">
 <link rel="match" href="../reference/ref-filled-green-100px-square.xht">
 <meta name="flags" content="">
 <meta name="assert" content="The 'flex-basis' property set 'auto', the actual width of tested element same as the value which specified by width property.">
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-basis-008.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-basis-008.html
index 4f19ac0..e454f19 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-basis-008.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-basis-008.html
@@ -3,7 +3,7 @@
 <title>CSS Flexbox Test: flex-basis - 50%</title>
 <link rel="author" title="Intel" href="http://www.intel.com">
 <link rel="author" title="Intel" href="mailto:shiyoux.tan@intel.com">
-<link rel="help" title="7.3.3. The 'flex-basis' property" href="http://www.w3.org/TR/css-flexbox-1/#propdef-flex-basis">
+<link rel="help" title="7.3.3. The 'flex-basis' property" href="http://www.w3.org/TR/css-flexbox-1/#flex-basis-property">
 <link rel="match" href="../reference/ref-filled-green-100px-square.xht">
 <meta name="flags" content="">
 <meta name="assert" content="The 'flex-basis' property set positive percentage, the actual width of tested element same as the percentage of flex container size.">
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-box-wrap.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-box-wrap.html
index 38cac534..2a1ab9c 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-box-wrap.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-box-wrap.html
@@ -3,7 +3,7 @@
 <head>
     <title>CSS Flexbox Test: flex-wrap: wrap</title>
     <link rel="author" title="Tsuyoshi Tokuda" href="mailto:tokuda109@gmail.com">
-    <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-flex-wrap">
+    <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#flex-wrap-property">
     <link rel="match" href="reference/flex-box-wrap-ref.html">
     <meta name="flags" content="">
     <meta name="assert" content="the test passes if you see green box.">
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-flow-001.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-flow-001.html
index d091d06..cda4550 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-flow-001.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-flow-001.html
@@ -3,9 +3,9 @@
 <title>CSS Flexbox Test: flex-flow - row nowrap</title>
 <link rel="author" title="Intel" href="http://www.intel.com">
 <link rel="author" title="Shiyou Tan" href="mailto:shiyoux.tan@intel.com">
-<link rel="help" title="5.3. Flex Direction and Wrap: the 'flex-flow' shorthand" href="http://www.w3.org/TR/css-flexbox-1/#propdef-flex-flow">
+<link rel="help" title="5.3. Flex Direction and Wrap: the 'flex-flow' shorthand" href="http://www.w3.org/TR/css-flexbox-1/#flex-flow-property">
 <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#flex-direction">
-<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-flex-wrap">
+<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#flex-wrap-property">
 <link rel="match" href="flex-flow-001-ref.html">
 <meta name="flags" content="">
 <meta name="assert" content="The 'flex-flow' property set 'row nowrap' controls the flex container is single-line">
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-flow-002.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-flow-002.html
index 04bd5f5..15baeb0 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-flow-002.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-flow-002.html
@@ -3,9 +3,9 @@
 <title>CSS Flexbox Test: flex-flow - row wrap</title>
 <link rel="author" title="Intel" href="http://www.intel.com">
 <link rel="author" title="Shiyou Tan" href="mailto:shiyoux.tan@intel.com">
-<link rel="help" title="5.3. Flex Direction and Wrap: the 'flex-flow' shorthand" href="http://www.w3.org/TR/css-flexbox-1/#propdef-flex-flow">
+<link rel="help" title="5.3. Flex Direction and Wrap: the 'flex-flow' shorthand" href="http://www.w3.org/TR/css-flexbox-1/#flex-flow-property">
 <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#flex-direction">
-<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-flex-wrap">
+<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#flex-wrap-property">
 <link rel="match" href="flex-flow-002-ref.html">
 <meta name="flags" content="">
 <meta name="assert" content="The 'flex-flow' property set 'row wrap' controls the flex container is multi-line">
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-flow-003.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-flow-003.html
index 2f0463b..aa1673ef 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-flow-003.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-flow-003.html
@@ -3,9 +3,9 @@
 <title>CSS Flexbox Test: flex-flow - row wrap-reverse</title>
 <link rel="author" title="Intel" href="http://www.intel.com">
 <link rel="author" title="Shiyou Tan" href="mailto:shiyoux.tan@intel.com">
-<link rel="help" title="5.3. Flex Direction and Wrap: the 'flex-flow' shorthand" href="http://www.w3.org/TR/css-flexbox-1/#propdef-flex-flow">
+<link rel="help" title="5.3. Flex Direction and Wrap: the 'flex-flow' shorthand" href="http://www.w3.org/TR/css-flexbox-1/#flex-flow-property">
 <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#flex-direction">
-<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-flex-wrap">
+<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#flex-wrap-property">
 <link rel="match" href="flex-flow-002-ref.html">
 <meta name="flags" content="">
 <meta name="assert" content="The 'flex-flow' property set 'row wrap-reverse' controls the flex container is multi-line
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-flow-004.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-flow-004.html
index 238bc92..2eb3b29 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-flow-004.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-flow-004.html
@@ -3,9 +3,9 @@
 <title>CSS Flexbox Test: flex-flow - row-reverse nowrap</title>
 <link rel="author" title="Intel" href="http://www.intel.com">
 <link rel="author" title="Shiyou Tan" href="mailto:shiyoux.tan@intel.com">
-<link rel="help" title="5.3. Flex Direction and Wrap: the 'flex-flow' shorthand" href="http://www.w3.org/TR/css-flexbox-1/#propdef-flex-flow">
+<link rel="help" title="5.3. Flex Direction and Wrap: the 'flex-flow' shorthand" href="http://www.w3.org/TR/css-flexbox-1/#flex-flow-property">
 <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#flex-direction">
-<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-flex-wrap">
+<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#flex-wrap-property">
 <link rel="match" href="flex-flow-001-ref.html">
 <meta name="flags" content="">
 <meta name="assert" content="The 'flex-flow' property set 'row-reverse nowrap' controls the flex container is single-line,
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-flow-005.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-flow-005.html
index b5297b0..bbad2cf8 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-flow-005.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-flow-005.html
@@ -3,9 +3,9 @@
 <title>CSS Flexbox Test: flex-flow - row-reverse wrap</title>
 <link rel="author" title="Intel" href="http://www.intel.com">
 <link rel="author" title="Shiyou Tan" href="mailto:shiyoux.tan@intel.com">
-<link rel="help" title="5.3. Flex Direction and Wrap: the 'flex-flow' shorthand" href="http://www.w3.org/TR/css-flexbox-1/#propdef-flex-flow">
+<link rel="help" title="5.3. Flex Direction and Wrap: the 'flex-flow' shorthand" href="http://www.w3.org/TR/css-flexbox-1/#flex-flow-property">
 <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#flex-direction">
-<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-flex-wrap">
+<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#flex-wrap-property">
 <link rel="match" href="flex-flow-002-ref.html">
 <meta name="flags" content="">
 <meta name="assert" content="The 'flex-flow' property set 'row-reverse wrap' controls the flex container is multi-line
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-flow-006.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-flow-006.html
index 8196cd6..d22a2b3 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-flow-006.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-flow-006.html
@@ -3,9 +3,9 @@
 <title>CSS Flexbox Test: flex-flow - row-reverse wrap-reverse</title>
 <link rel="author" title="Intel" href="http://www.intel.com">
 <link rel="author" title="Shiyou Tan" href="mailto:shiyoux.tan@intel.com">
-<link rel="help" title="5.3. Flex Direction and Wrap: the 'flex-flow' shorthand" href="http://www.w3.org/TR/css-flexbox-1/#propdef-flex-flow">
+<link rel="help" title="5.3. Flex Direction and Wrap: the 'flex-flow' shorthand" href="http://www.w3.org/TR/css-flexbox-1/#flex-flow-property">
 <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#flex-direction">
-<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-flex-wrap">
+<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#flex-wrap-property">
 <link rel="match" href="flex-flow-002-ref.html">
 <meta name="flags" content="">
 <meta name="assert" content="The 'flex-flow' property set 'row-reverse wrap-reverse' controls the flex container is multi-line
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-flow-007.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-flow-007.html
index 699e714..ae98ede 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-flow-007.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-flow-007.html
@@ -3,9 +3,9 @@
 <title>CSS Flexbox Test: flex-flow - column nowrap</title>
 <link rel="author" title="Intel" href="http://www.intel.com">
 <link rel="author" title="Shiyou Tan" href="mailto:shiyoux.tan@intel.com">
-<link rel="help" title="5.3. Flex Direction and Wrap: the 'flex-flow' shorthand" href="http://www.w3.org/TR/css-flexbox-1/#propdef-flex-flow">
+<link rel="help" title="5.3. Flex Direction and Wrap: the 'flex-flow' shorthand" href="http://www.w3.org/TR/css-flexbox-1/#flex-flow-property">
 <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#flex-direction">
-<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-flex-wrap">
+<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#flex-wrap-property">
 <link rel="match" href="flex-flow-007-ref.html">
 <meta name="flags" content="">
 <meta name="assert" content="The 'flex-flow' property set 'column nowrap' controls the flex container is single-line,
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-flow-008.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-flow-008.html
index bbb4d41a..23c134d1 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-flow-008.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-flow-008.html
@@ -3,9 +3,9 @@
 <title>CSS Flexbox Test: flex-flow - column wrap</title>
 <link rel="author" title="Intel" href="http://www.intel.com">
 <link rel="author" title="Shiyou Tan" href="mailto:shiyoux.tan@intel.com">
-<link rel="help" title="5.3. Flex Direction and Wrap: the 'flex-flow' shorthand" href="http://www.w3.org/TR/css-flexbox-1/#propdef-flex-flow">
+<link rel="help" title="5.3. Flex Direction and Wrap: the 'flex-flow' shorthand" href="http://www.w3.org/TR/css-flexbox-1/#flex-flow-property">
 <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#flex-direction">
-<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-flex-wrap">
+<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#flex-wrap-property">
 <link rel="match" href="flex-flow-002-ref.html">
 <meta name="flags" content="">
 <meta name="assert" content="The 'flex-flow' property set 'column wrap' controls the flex container is multi-line
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-flow-009.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-flow-009.html
index bae24be..9cc4229 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-flow-009.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-flow-009.html
@@ -3,9 +3,9 @@
 <title>CSS Flexbox Test: flex-flow - column wrap-reverse</title>
 <link rel="author" title="Intel" href="http://www.intel.com">
 <link rel="author" title="Shiyou Tan" href="mailto:shiyoux.tan@intel.com">
-<link rel="help" title="5.3. Flex Direction and Wrap: the 'flex-flow' shorthand" href="http://www.w3.org/TR/css-flexbox-1/#propdef-flex-flow">
+<link rel="help" title="5.3. Flex Direction and Wrap: the 'flex-flow' shorthand" href="http://www.w3.org/TR/css-flexbox-1/#flex-flow-property">
 <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#flex-direction">
-<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-flex-wrap">
+<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#flex-wrap-property">
 <link rel="match" href="flex-flow-002-ref.html">
 <meta name="flags" content="">
 <meta name="assert" content="The 'flex-flow' property set 'column wrap-reverse' controls the flex container is multi-line
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-flow-010.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-flow-010.html
index 4c3f11d..d1ff16f 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-flow-010.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-flow-010.html
@@ -3,9 +3,9 @@
 <title>CSS Flexbox Test: flex-flow - column-reverse nowrap</title>
 <link rel="author" title="Intel" href="http://www.intel.com">
 <link rel="author" title="Shiyou Tan" href="mailto:shiyoux.tan@intel.com">
-<link rel="help" title="5.3. Flex Direction and Wrap: the 'flex-flow' shorthand" href="http://www.w3.org/TR/css-flexbox-1/#propdef-flex-flow">
+<link rel="help" title="5.3. Flex Direction and Wrap: the 'flex-flow' shorthand" href="http://www.w3.org/TR/css-flexbox-1/#flex-flow-property">
 <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#flex-direction">
-<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-flex-wrap">
+<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#flex-wrap-property">
 <link rel="match" href="flex-flow-007-ref.html">
 <meta name="flags" content="">
 <meta name="assert" content="The 'flex-flow' property set 'column-reverse nowrap' controls the flex container is single-line,
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-flow-011.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-flow-011.html
index d0c0c35..b642766 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-flow-011.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-flow-011.html
@@ -3,9 +3,9 @@
 <title>CSS Flexbox Test: flex-flow - column-reverse wrap</title>
 <link rel="author" title="Intel" href="http://www.intel.com">
 <link rel="author" title="Shiyou Tan" href="mailto:shiyoux.tan@intel.com">
-<link rel="help" title="5.3. Flex Direction and Wrap: the 'flex-flow' shorthand" href="http://www.w3.org/TR/css-flexbox-1/#propdef-flex-flow">
+<link rel="help" title="5.3. Flex Direction and Wrap: the 'flex-flow' shorthand" href="http://www.w3.org/TR/css-flexbox-1/#flex-flow-property">
 <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#flex-direction">
-<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-flex-wrap">
+<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#flex-wrap-property">
 <link rel="match" href="flex-flow-002-ref.html">
 <meta name="flags" content="">
 <meta name="assert" content="The 'flex-flow' property set 'column-reverse wrap' controls the flex container is multi-line
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-flow-012.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-flow-012.html
index 36a54eb..d22fbdc 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-flow-012.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-flow-012.html
@@ -3,9 +3,9 @@
 <title>CSS Flexbox Test: flex-flow - column-reverse wrap-reverse</title>
 <link rel="author" title="Intel" href="http://www.intel.com">
 <link rel="author" title="Shiyou Tan" href="mailto:shiyoux.tan@intel.com">
-<link rel="help" title="5.3. Flex Direction and Wrap: the 'flex-flow' shorthand" href="http://www.w3.org/TR/css-flexbox-1/#propdef-flex-flow">
+<link rel="help" title="5.3. Flex Direction and Wrap: the 'flex-flow' shorthand" href="http://www.w3.org/TR/css-flexbox-1/#flex-flow-property">
 <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#flex-direction">
-<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-flex-wrap">
+<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#flex-wrap-property">
 <link rel="match" href="flex-flow-002-ref.html">
 <meta name="flags" content="">
 <meta name="assert" content="The 'flex-flow' property set 'column-reverse wrap-reverse' controls the flex container is multi-line
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-grow-001.xht b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-grow-001.xht
index ba82c601..e73c33c0 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-grow-001.xht
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-grow-001.xht
@@ -3,7 +3,7 @@
  <head>
   <title>CSS Test: Flex-grow Property of Block-level Flex Items</title>
   <link rel="author" title="Hanrui Gao" href="mailto:hanrui.gao@gmail.com"/>
-  <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-flex-grow"/>
+  <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#flex-grow-property"/>
   <link rel="match" href="flex-grow-001-ref.xht"/>
   <meta name="flags" content="" />
   <meta name="assert" content="'flex-grow' property specifies the flex grow factor, which determines how much the flex item will grow relative to the rest of the flex items in the flex container when positive free space is distributed." />
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-grow-002.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-grow-002.html
index f119d218..9cb79dd 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-grow-002.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-grow-002.html
@@ -3,7 +3,7 @@
 <title>CSS Flexbox Test: flex-grow - 0(initial value)</title>
 <link rel="author" title="Intel" href="http://www.intel.com">
 <link rel="author" title="Shiyou Tan" href="mailto:shiyoux.tan@intel.com">
-<link rel="help" title="7.3.1. The 'flex-grow' property" href="http://www.w3.org/TR/css-flexbox-1/#propdef-flex-grow">
+<link rel="help" title="7.3.1. The 'flex-grow' property" href="http://www.w3.org/TR/css-flexbox-1/#flex-grow-property">
 <link rel="match" href="../reference/ref-filled-green-100px-square.xht">
 <meta name="flags" content="">
 <meta name="assert" content="The 'flex-grow' property initial value is '0', the flex item will keep the width when 'flex-grow' set '0'">
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-grow-003.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-grow-003.html
index a0204d23..7bf3c9f 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-grow-003.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-grow-003.html
@@ -3,7 +3,7 @@
 <title>CSS Flexbox Test: flex-grow - negative number</title>
 <link rel="author" title="Intel" href="http://www.intel.com">
 <link rel="author" title="Shiyou Tan" href="mailto:shiyoux.tan@intel.com">
-<link rel="help" title="7.3.1. The 'flex-grow' property" href="http://www.w3.org/TR/css-flexbox-1/#propdef-flex-grow">
+<link rel="help" title="7.3.1. The 'flex-grow' property" href="http://www.w3.org/TR/css-flexbox-1/#flex-grow-property">
 <link rel="match" href="../reference/ref-filled-green-100px-square.xht">
 <meta name="flags" content="">
 <meta name="assert" content="The 'flex-grow' property set negative number, the flex item will not grow.">
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-grow-004.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-grow-004.html
index aa29631..f9f8d738 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-grow-004.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-grow-004.html
@@ -3,7 +3,7 @@
 <title>CSS Flexbox Test: flex-grow - (invalid when no space distributed)</title>
 <link rel="author" title="Intel" href="http://www.intel.com">
 <link rel="author" title="Shiyou Tan" href="mailto:shiyoux.tan@intel.com">
-<link rel="help" title="7.3.1. The 'flex-grow' property" href="http://www.w3.org/TR/css-flexbox-1/#propdef-flex-grow">
+<link rel="help" title="7.3.1. The 'flex-grow' property" href="http://www.w3.org/TR/css-flexbox-1/#flex-grow-property">
 <link rel="match" href="../reference/ref-filled-green-100px-square.xht">
 <meta name="flags" content="">
 <meta name="assert" content="The 'flex-grow' property is invalid when the flex container has no space distributed.">
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-grow-005.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-grow-005.html
index cceb051..0f160ab2 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-grow-005.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-grow-005.html
@@ -3,7 +3,7 @@
 <title>CSS Flexbox Test: flex-grow - (invalid when applied to flex container)</title>
 <link rel="author" title="Intel" href="http://www.intel.com">
 <link rel="author" title="Shiyou Tan" href="mailto:shiyoux.tan@intel.com">
-<link rel="help" title="7.3.1. The 'flex-grow' property" href="http://www.w3.org/TR/css-flexbox-1/#propdef-flex-grow">
+<link rel="help" title="7.3.1. The 'flex-grow' property" href="http://www.w3.org/TR/css-flexbox-1/#flex-grow-property">
 <link rel="match" href="../reference/ref-filled-green-100px-square.xht">
 <meta name="flags" content="">
 <meta name="assert" content="The 'flex-grow' property is invalid when the property applied to flex container.">
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-grow-006.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-grow-006.html
index e0ac6fb..2bb89bb 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-grow-006.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-grow-006.html
@@ -3,7 +3,7 @@
 <title>CSS Flexbox Test: flex-grow - positive number(fill all space)</title>
 <link rel="author" title="Intel" href="http://www.intel.com">
 <link rel="author" title="Shiyou Tan" href="mailto:shiyoux.tan@intel.com">
-<link rel="help" title="7.3.1. The 'flex-grow' property" href="http://www.w3.org/TR/css-flexbox-1/#propdef-flex-grow">
+<link rel="help" title="7.3.1. The 'flex-grow' property" href="http://www.w3.org/TR/css-flexbox-1/#flex-grow-property">
 <link rel="match" href="../reference/ref-filled-green-100px-square.xht">
 <meta name="flags" content="">
 <meta name="assert" content="Test checks that all space of flex container will be filled when there is only one flex item and 'flex-grow' set any positive number.">
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-grow-007.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-grow-007.html
index 33ac807..da48135b 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-grow-007.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-grow-007.html
@@ -2,7 +2,7 @@
 <meta charset="utf-8">
 <title>CSS Flexbox Test: flex-grow - less than one</title>
 <link rel="author" title="Geoffrey Sneddon" href="mailto:me@gsnedders.com">
-<link rel="help" title="7.3.1. The 'flex-grow' property" href="http://www.w3.org/TR/css-flexbox-1/#propdef-flex-grow">
+<link rel="help" title="7.3.1. The 'flex-grow' property" href="http://www.w3.org/TR/css-flexbox-1/#flex-grow-property">
 <link rel="match" href="../reference/ref-filled-green-100px-square.xht">
 <meta name="flags" content="">
 <meta name="assert" content="Test checks that remaining free space is calculated from 'flex-grow' set to positive number less than one.">
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-lines/multi-line-wrap-reverse-column-reverse.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-lines/multi-line-wrap-reverse-column-reverse.html
index 1e7dd9e..e24c92e 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-lines/multi-line-wrap-reverse-column-reverse.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-lines/multi-line-wrap-reverse-column-reverse.html
@@ -4,7 +4,7 @@
   <title>CSS Test: flex container multiline wrapping-reverse in column-reverse direction.</title>
   <link rel="author" title="tmtysk" href="mailto:tmtysk@gmail.com">
   <link rel="reviewer" title="Tab Atkins" href="mailto:jackalmage@gmail.com">
-  <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-flex-wrap">
+  <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#flex-wrap-property">
   <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#flex-direction-property">
   <link rel="match" href="multi-line-wrap-reverse-column-reverse-ref.html">
   <meta name="assert" content="This test check that a flex container reverse-wraps blocks multiline in column-reverse direction.">
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-lines/multi-line-wrap-reverse-row-reverse.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-lines/multi-line-wrap-reverse-row-reverse.html
index 8fa86c7..52943ae0 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-lines/multi-line-wrap-reverse-row-reverse.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-lines/multi-line-wrap-reverse-row-reverse.html
@@ -4,7 +4,7 @@
   <title>CSS Test: flex container multiline wrapping-reverse in row-reverse direction.</title>
   <link rel="author" title="tmtysk" href="mailto:tmtysk@gmail.com">
   <link rel="reviewer" title="Tab Atkins" href="mailto:jackalmage@gmail.com">
-  <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-flex-wrap">
+  <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#flex-wrap-property">
   <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#flex-direction-property">
   <link rel="match" href="multi-line-wrap-reverse-row-reverse-ref.html">
   <meta name="assert" content="This test check that a flex container reverse-wraps blocks multiline in row-reverse direction.">
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-lines/multi-line-wrap-with-column-reverse.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-lines/multi-line-wrap-with-column-reverse.html
index 5f41125..83acae4 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-lines/multi-line-wrap-with-column-reverse.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-lines/multi-line-wrap-with-column-reverse.html
@@ -4,7 +4,7 @@
   <title>CSS Test: flex container multiline wrapping in column-reverse direction</title>
   <link rel="author" title="tmtysk" href="mailto:tmtysk@gmail.com">
   <link rel="reviewer" title="Tab Atkins" href="mailto:jackalmage@gmail.com">
-  <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-flex-wrap">
+  <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#flex-wrap-property">
   <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#flex-direction-property">
   <link rel="match" href="multi-line-wrap-with-column-reverse-ref.html">
   <meta name="assert" content="This test check that a flex container wraps blocks multiline in column-reverse direction.">
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-lines/multi-line-wrap-with-row-reverse.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-lines/multi-line-wrap-with-row-reverse.html
index 0427f89..220ce0a 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-lines/multi-line-wrap-with-row-reverse.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-lines/multi-line-wrap-with-row-reverse.html
@@ -4,7 +4,7 @@
   <title>CSS Test: flex container multiline wrapping in row-reverse direction</title>
   <link rel="author" title="tmtysk" href="mailto:tmtysk@gmail.com">
   <link rel="reviewer" title="Tab Atkins" href="mailto:jackalmage@gmail.com">
-  <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-flex-wrap">
+  <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#flex-wrap-property">
   <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#flex-direction-property">
   <link rel="match" href="multi-line-wrap-with-row-reverse-ref.html">
   <meta name="assert" content="This test check that a flex container wraps blocks multiline in row-reverse direction.">
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-margin-no-collapse.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-margin-no-collapse.html
index 1564fcbb..a103c42b 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-margin-no-collapse.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-margin-no-collapse.html
@@ -3,7 +3,7 @@
 <head>
 	<title>CSS Flexible Box Test: flex item margins</title>
 	<link rel="author" title="Ping Huang" href="mailto:phuangce@gmail.com" />
-	<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-flex-direction">
+	<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#flex-property-direction">
 	<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#item-margins">
 	<link rel="match" href="reference/flex-margin-no-collapse-ref.html">
 	<meta name="assert" content="The vertical gap between two green boxs should be 100px." />
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-shrink-001.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-shrink-001.html
index ec45de0..7427004 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-shrink-001.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-shrink-001.html
@@ -3,7 +3,7 @@
 <title>CSS Flexbox Test: flex-shrink - number(positive)</title>
 <link rel="author" title="Intel" href="http://www.intel.com">
 <link rel="author" title="Shiyou Tan" href="mailto:shiyoux.tan@intel.com">
-<link rel="help" title="7.3.2. The 'flex-shrink' property" href="http://www.w3.org/TR/css-flexbox-1/#propdef-flex-shrink">
+<link rel="help" title="7.3.2. The 'flex-shrink' property" href="http://www.w3.org/TR/css-flexbox-1/#flex-shrink-property">
 <link rel="match" href="../reference/ref-filled-green-100px-square.xht">
 <meta name="flags" content="">
 <meta name="assert" content="The flex-shrink property set positive number determines how much the flex item will shrink relative to the rest of the flex items in the flex container when negative free space is distributed">
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-shrink-002.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-shrink-002.html
index 044d8c7..d1d06a4 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-shrink-002.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-shrink-002.html
@@ -3,7 +3,7 @@
 <title>CSS Flexbox Test: flex-shrink - number(negative)</title>
 <link rel="author" title="Intel" href="http://www.intel.com">
 <link rel="author" title="Shiyou Tan" href="mailto:shiyoux.tan@intel.com">
-<link rel="help" title="7.3.2. The 'flex-shrink' property" href="http://www.w3.org/TR/css-flexbox-1/#propdef-flex-shrink">
+<link rel="help" title="7.3.2. The 'flex-shrink' property" href="http://www.w3.org/TR/css-flexbox-1/#flex-shrink-property">
 <link rel="match" href="../reference/ref-filled-green-100px-square.xht">
 <meta name="flags" content="">
 <meta name="assert" content="The flex-shrink property set negative is invalid to shrink flex items when negative free space is distributed">
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-shrink-003.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-shrink-003.html
index e7dc319..e12c408 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-shrink-003.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-shrink-003.html
@@ -3,7 +3,7 @@
 <title>CSS Flexbox Test: flex-shrink - 1(initial value)</title>
 <link rel="author" title="Intel" href="http://www.intel.com">
 <link rel="author" title="Shiyou Tan" href="mailto:shiyoux.tan@intel.com">
-<link rel="help" title="7.3.2. The 'flex-shrink' property" href="http://www.w3.org/TR/css-flexbox-1/#propdef-flex-shrink">
+<link rel="help" title="7.3.2. The 'flex-shrink' property" href="http://www.w3.org/TR/css-flexbox-1/#flex-shrink-property">
 <link rel="match" href="../reference/ref-filled-green-100px-square.xht">
 <meta name="flags" content="">
 <meta name="assert" content="The flex-shrink property initial value is 1">
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-shrink-004.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-shrink-004.html
index 1d2113f..0dd3622 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-shrink-004.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-shrink-004.html
@@ -3,7 +3,7 @@
 <title>CSS Flexbox Test: flex-shrink - number(flex container has enough space)</title>
 <link rel="author" title="Intel" href="http://www.intel.com">
 <link rel="author" title="Shiyou Tan" href="mailto:shiyoux.tan@intel.com">
-<link rel="help" title="7.3.2. The 'flex-shrink' property" href="http://www.w3.org/TR/css-flexbox-1/#propdef-flex-shrink">
+<link rel="help" title="7.3.2. The 'flex-shrink' property" href="http://www.w3.org/TR/css-flexbox-1/#flex-shrink-property">
 <link rel="match" href="../reference/ref-filled-green-100px-square.xht">
 <meta name="flags" content="">
 <meta name="assert" content="The flex-shrink property is invalid when flex container has enough space to load flex items">
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-shrink-005.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-shrink-005.html
index 4c199042..f619406 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-shrink-005.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-shrink-005.html
@@ -3,7 +3,7 @@
 <title>CSS Flexbox Test: flex-shrink - 0</title>
 <link rel="author" title="Intel" href="http://www.intel.com">
 <link rel="author" title="Shiyou Tan" href="mailto:shiyoux.tan@intel.com">
-<link rel="help" title="7.3.2. The 'flex-shrink' property" href="http://www.w3.org/TR/css-flexbox-1/#propdef-flex-shrink">
+<link rel="help" title="7.3.2. The 'flex-shrink' property" href="http://www.w3.org/TR/css-flexbox-1/#flex-shrink-property">
 <link rel="match" href="../reference/ref-filled-green-100px-square.xht">
 <meta name="flags" content="">
 <meta name="assert" content="The flex-shrink property set 0 will ignore the flex container">
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-shrink-006.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-shrink-006.html
index 40cbf665..357a7e9 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-shrink-006.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-shrink-006.html
@@ -3,7 +3,7 @@
 <title>CSS Flexbox Test: flex-shrink - 0(one of flex-shrinks sets 0, another not)</title>
 <link rel="author" title="Intel" href="http://www.intel.com">
 <link rel="author" title="Shiyou Tan" href="mailto:shiyoux.tan@intel.com">
-<link rel="help" title="7.3.2. The 'flex-shrink' property" href="http://www.w3.org/TR/css-flexbox-1/#propdef-flex-shrink">
+<link rel="help" title="7.3.2. The 'flex-shrink' property" href="http://www.w3.org/TR/css-flexbox-1/#flex-shrink-property">
 <link rel="match" href="../reference/ref-filled-green-100px-square.xht">
 <meta name="flags" content="">
 <meta name="assert" content="The flex item whose flex-shrink property of set 0 will displayed on the top of all flex items">
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-shrink-007.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-shrink-007.html
index 8d092f5..e4ee4b9 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-shrink-007.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-shrink-007.html
@@ -3,7 +3,7 @@
 <title>CSS Flexbox Test: flex-shrink - applied to flex container</title>
 <link rel="author" title="Intel" href="http://www.intel.com">
 <link rel="author" title="Shiyou Tan" href="mailto:shiyoux.tan@intel.com">
-<link rel="help" title="7.3.2. The 'flex-shrink' property" href="http://www.w3.org/TR/css-flexbox-1/#propdef-flex-shrink">
+<link rel="help" title="7.3.2. The 'flex-shrink' property" href="http://www.w3.org/TR/css-flexbox-1/#flex-shrink-property">
 <link rel="match" href="../reference/ref-filled-green-100px-square.xht">
 <meta name="flags" content="">
 <meta name="assert" content="The flex-shrink property applied to flex container is invalid, all flex items will use the default value 1">
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-shrink-008.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-shrink-008.html
index f157480..a0104489 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-shrink-008.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-shrink-008.html
@@ -2,7 +2,7 @@
 <meta charset="utf-8">
 <title>CSS Flexbox Test: flex-shrink - less than one</title>
 <link rel="author" title="Geoffrey Sneddon" href="mailto:me@gsnedders.com">
-<link rel="help" title="7.3.1. The 'flex-shrink' property" href="http://www.w3.org/TR/css-flexbox-1/#propdef-flex-shrink">
+<link rel="help" title="7.3.1. The 'flex-shrink' property" href="http://www.w3.org/TR/css-flexbox-1/#flex-shrink-property">
 <link rel="match" href="../reference/ref-filled-green-100px-square.xht">
 <meta name="flags" content="">
 <meta name="assert" content="Test checks that remaining free space is calculated from 'flex-shrink' set to positive number less than one.">
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-wrap-001.htm b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-wrap-001.htm
index 462ac97..127100a 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-wrap-001.htm
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-wrap-001.htm
@@ -3,7 +3,7 @@
     <head>
         <title>CSS Test: A flex container with 'flex-flow' set to 'wrap'</title>
         <link rel="author" title="Microsoft" href="http://www.microsoft.com/" />
-        <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-flex-wrap" />
+        <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#flex-wrap-property" />
         <meta name="flags" content="">
         <meta name="assert" content="This test checks that the flex container with 'flex-flow: wrap' is a multi-line flex container." />
         <style type="text/css">
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-wrap_nowrap.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-wrap_nowrap.html
index 398d6ed..ef53bb2 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-wrap_nowrap.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-wrap_nowrap.html
@@ -3,7 +3,7 @@
   <head>
     <title>CSS Flexible Box Test: flex-wrap_nowrap</title>
     <link rel="author" title="Intel" href="http://www.intel.com" />
-    <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-flex-wrap" />
+    <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#flex-wrap-property" />
     <link rel="stylesheet" href="support/test-style.css">
     <meta name="flags" content="" />
     <meta name="assert" content="Check if the web engine can identify the flex-wrap value nowrap." />
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-wrap_wrap-reverse.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-wrap_wrap-reverse.html
index d76839a5..ce23e935 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-wrap_wrap-reverse.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-wrap_wrap-reverse.html
@@ -3,7 +3,7 @@
   <head>
     <title>CSS Flexible Box Test: flex-wrap_wrap-reverse</title>
     <link rel="author" title="Intel" href="http://www.intel.com" />
-    <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-flex-wrap" />
+    <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#flex-wrap-property" />
     <link rel="stylesheet" href="support/test-style.css">
     <meta name="flags" content="" />
     <meta name="assert" content="Check if the web engine can identify the flex-wrap value wrap-reverse." />
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-wrap_wrap.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-wrap_wrap.html
index ac1747b0..302c9cd 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-wrap_wrap.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flex-wrap_wrap.html
@@ -3,7 +3,7 @@
   <head>
     <title>CSS Flexible Box Test: flex-wrap_wrap</title>
     <link rel="author" title="Intel" href="http://www.intel.com" />
-    <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-flex-wrap" />
+    <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#flex-wrap-property" />
     <link rel="stylesheet" href="support/test-style.css">
     <meta name="flags" content="" />
     <meta name="assert" content="Check if the display can recognize inline-flex value." />
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox-flex-wrap-default.htm b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox-flex-wrap-default.htm
index 267e5d13..51136da 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox-flex-wrap-default.htm
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox-flex-wrap-default.htm
@@ -4,7 +4,7 @@
 		<title>CSS Flexbox Test: Flex-wrap defaults to nowrap</title>
 		<link rel="author" title="Gavin Elster" href="mailto:gavin.elster@me.com">
 		<link rel="reviewer" title="Elika J. Etemad" href="http://fantasai.inkedblade.net/contact">
-		<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-flex-wrap">
+		<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#flex-wrap-property">
 		<link rel="match" href="reference/flexbox-flex-wrap-nowrap-ref.htm" />
 		<meta name="flags" content="">
 		<meta name="assert" content="Test checks that flex elements default to flex-wrap: nowrap if flex-wrap is not set. With wrapping disabled, the .green flex item should extend outside the bounds of its container, as it is set to flex:none.">
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox-flex-wrap-flexing.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox-flex-wrap-flexing.html
index fb0e66b3..93bc301 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox-flex-wrap-flexing.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox-flex-wrap-flexing.html
@@ -8,7 +8,7 @@
     <meta name="flags" content="">
     <link rel="match" href="flexbox-flex-wrap-flexing-ref.html"/>
     <meta name="assert" content="Flex items given more space after line breaking should flex wider">
-    <meta name="assert" content="http://www.w3.org/TR/css-flexbox-1/#propdef-flex-wrap">
+    <meta name="assert" content="http://www.w3.org/TR/css-flexbox-1/#flex-wrap-property">
     <meta name="assert" content="http://www.w3.org/TR/css-flexbox-1/#flex-property">
     <style>
         .container {
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox-flex-wrap-nowrap.htm b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox-flex-wrap-nowrap.htm
index e7850b3..2cbf08f 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox-flex-wrap-nowrap.htm
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox-flex-wrap-nowrap.htm
@@ -4,7 +4,7 @@
 		<title>CSS Flexbox Test: Flex-wrap = nowrap</title>
 		<link rel="author" title="Gavin Elster" href="mailto:gavin.elster@me.com">
 		<link rel="reviewer" title="Elika J. Etemad" href="http://fantasai.inkedblade.net/contact">
-		<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-flex-wrap">
+		<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#flex-wrap-property">
 		<link rel="match" href="reference/flexbox-flex-wrap-nowrap-ref.htm" />
 		<meta name="flags" content="">
 		<meta name="assert" content="Test checks that flex elements set to flex-wrap: nowrap will not wrap their flex items. With wrapping disabled, the .green flex item should extend outside the bounds of its container, as it is set to flex:none.">
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox-flex-wrap-wrap-reverse.htm b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox-flex-wrap-wrap-reverse.htm
index 41741be..45b1c005 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox-flex-wrap-wrap-reverse.htm
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox-flex-wrap-wrap-reverse.htm
@@ -4,7 +4,7 @@
 		<title>CSS Flexbox Test: Flex-wrap = wrap-reverse</title>
 		<link rel="author" title="Gavin Elster" href="mailto:gavin.elster@me.com">
 		<link rel="reviewer" title="Elika J. Etemad" href="http://fantasai.inkedblade.net/contact">
-		<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-flex-wrap">
+		<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#flex-wrap-property">
 		<link rel="match" href="reference/flexbox-flex-direction-ref.htm" />
 		<meta name="flags" content="">
 		<meta name="assert" content="Test checks that flex elements wrap left-to-right and bottom-to-top within their flex container when flex-wrap = 'wrap-reverse'. This assumes writing-direction = horizontal-tb', and direction = 'ltr'.">
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox-flex-wrap-wrap.htm b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox-flex-wrap-wrap.htm
index ca067ff..5e069c5 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox-flex-wrap-wrap.htm
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox-flex-wrap-wrap.htm
@@ -4,7 +4,7 @@
 		<title>CSS Flexbox Test: Flex-wrap = wrap</title>
 		<link rel="author" title="Gavin Elster" href="mailto:gavin.elster@me.com">
 		<link rel="reviewer" title="Elika J. Etemad" href="http://fantasai.inkedblade.net/contact">
-		<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-flex-wrap">
+		<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#flex-wrap-property">
 		<link rel="match" href="reference/flexbox-flex-direction-ref.htm" />
 		<meta name="flags" content="">
 		<meta name="assert" content="Test checks that flex elements wrap left-to-right within their flex container when flex-wrap = 'wrap', matching the writing direction. This assumes writing-direction = horizontal-tb', and direction = 'ltr'.">
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox-order-from-lowest.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox-order-from-lowest.html
index 8ade632..34bc027 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox-order-from-lowest.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox-order-from-lowest.html
@@ -4,7 +4,7 @@
   <title>CSS Test: flex container layout starts with lowest order item</title>
   <link rel="author" title="Sylvain Galineau" href="mailto:galineau@adobe.com">
   <link rel="reviewer" title="Arron Eicholz" href="mailto:arronei@microsoft.com">
-  <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-order">
+  <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#order-property">
   <meta name="flags" content="">
   <meta name="assert" content="This test check that a flex container layous out its content starting with the lowest numbered ordinal group and going up">
   <style>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox-order-only-flexitems.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox-order-only-flexitems.html
index 6251d49..b06f24c 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox-order-only-flexitems.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox-order-only-flexitems.html
@@ -4,7 +4,7 @@
   <title>CSS Test: order only affects flex items</title>
   <link rel="author" title="Sylvain Galineau" href="mailto:galineau@adobe.com">
   <link rel="reviewer" title="Arron Eicholz" href="mailto:arronei@microsoft.com">
-  <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-order">
+  <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#order-property">
   <meta name="flags" content="">
   <meta name="assert" content="This test check that the order property has no effect on elements that are not flex items">
   <style>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_align-items-baseline.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_align-items-baseline.html
index 70a0ba4..10d637b 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_align-items-baseline.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_align-items-baseline.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <title>flexbox | align-items: baseline</title>
 <link rel="author" href="http://opera.com" title="Opera Software">
-<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-align-items">
+<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#align-items-property">
 <link rel="match" href="flexbox_align-items-baseline-ref.html">
 <style>
 div {
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_align-items-center-2.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_align-items-center-2.html
index f36a503..bbdccef 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_align-items-center-2.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_align-items-center-2.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <title>flexbox | align-items: center</title>
 <link rel="author" href="http://opera.com" title="Opera Software">
-<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-align-items">
+<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#align-items-property">
 <link rel="match" href="flexbox_align-items-center-2-ref.html">
 <style>
 div {
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_align-items-center.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_align-items-center.html
index a8d2d11..5a680473 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_align-items-center.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_align-items-center.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <title>flexbox | align-items: center</title>
 <link rel="author" href="http://opera.com" title="Opera Software">
-<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-align-items">
+<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#align-items-property">
 <link rel="match" href="flexbox_align-items-center-ref.html">
 <style>
 div {
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_align-items-flexend-2.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_align-items-flexend-2.html
index 47f7e26..d714585 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_align-items-flexend-2.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_align-items-flexend-2.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <title>flexbox | align-items: flex-end</title>
 <link rel="author" href="http://opera.com" title="Opera Software">
-<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-align-items">
+<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#align-items-property">
 <link rel="match" href="flexbox_align-items-flexend-2-ref.html">
 <style>
 div {
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_align-items-flexend.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_align-items-flexend.html
index b1a8d09..dcee276 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_align-items-flexend.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_align-items-flexend.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <title>flexbox | align-items: flex-end</title>
 <link rel="author" href="http://opera.com" title="Opera Software">
-<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-align-items">
+<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#align-items-property">
 <link rel="match" href="flexbox_align-items-flexend-ref.html">
 <style>
 div {
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_align-items-flexstart-2.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_align-items-flexstart-2.html
index 8e51045a..d67b81e 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_align-items-flexstart-2.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_align-items-flexstart-2.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <title>flexbox | align-items: flex-start</title>
 <link rel="author" href="http://opera.com" title="Opera Software">
-<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-align-items">
+<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#align-items-property">
 <link rel="match" href="flexbox_align-items-flexstart-2-ref.html">
 <style>
 div {
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_align-items-flexstart.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_align-items-flexstart.html
index 5a0e9dd..d5558e59 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_align-items-flexstart.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_align-items-flexstart.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <title>flexbox | align-items: flex-start</title>
 <link rel="author" href="http://opera.com" title="Opera Software">
-<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-align-items">
+<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#align-items-property">
 <link rel="match" href="flexbox_align-items-flexstart-ref.html">
 <style>
 div {
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_align-items-stretch-2.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_align-items-stretch-2.html
index 2fccdec..c74ad83 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_align-items-stretch-2.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_align-items-stretch-2.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <title>flexbox | align-items: stretch</title>
 <link rel="author" href="http://opera.com" title="Opera Software">
-<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-align-items">
+<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#align-items-property">
 <link rel="match" href="flexbox_align-items-stretch-2-ref.html">
 <style>
 div {
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_align-items-stretch.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_align-items-stretch.html
index e0e8d1a..bea0d7f 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_align-items-stretch.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_align-items-stretch.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <title>flexbox | align-items: stretch</title>
 <link rel="author" href="http://opera.com" title="Opera Software">
-<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-align-items">
+<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#align-items-property">
 <link rel="match" href="flexbox_align-items-stretch-ref.html">
 <style>
 div {
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_align-self-auto.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_align-self-auto.html
index 5c5905d..ccede24 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_align-self-auto.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_align-self-auto.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <title>flexbox | align-self: auto</title>
 <link rel="author" href="http://opera.com" title="Opera Software">
-<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-align-items">
+<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#align-items-property">
 <link rel="match" href="flexbox_align-self-auto-ref.html">
 <style>
 div {
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_align-self-baseline.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_align-self-baseline.html
index e658c9a..1c2b1e39 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_align-self-baseline.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_align-self-baseline.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <title>flexbox | align-self: baseline</title>
 <link rel="author" href="http://opera.com" title="Opera Software">
-<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-align-items">
+<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#align-items-property">
 <link rel="match" href="flexbox_align-self-baseline-ref.html">
 <style>
 div {
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_align-self-center.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_align-self-center.html
index 6e95ccd2..e269708c 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_align-self-center.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_align-self-center.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <title>flexbox | align-self: center</title>
 <link rel="author" href="http://opera.com" title="Opera Software">
-<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-align-items">
+<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#align-items-property">
 <link rel="match" href="flexbox_align-self-center-ref.html">
 <style>
 div {
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_align-self-flexend.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_align-self-flexend.html
index 9e41e9d..f85931d 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_align-self-flexend.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_align-self-flexend.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <title>flexbox | align-self: flex-end</title>
 <link rel="author" href="http://opera.com" title="Opera Software">
-<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-align-items">
+<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#align-items-property">
 <link rel="match" href="flexbox_align-self-flexend-ref.html">
 <style>
 div {
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_align-self-flexstart.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_align-self-flexstart.html
index e8aa481..0f03881 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_align-self-flexstart.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_align-self-flexstart.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <title>flexbox | align-self: flex-start</title>
 <link rel="author" href="http://opera.com" title="Opera Software">
-<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-align-items">
+<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#align-items-property">
 <link rel="match" href="flexbox_align-self-flexstart-ref.html">
 <style>
 div {
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_align-self-stretch.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_align-self-stretch.html
index c06d175..52874469 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_align-self-stretch.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_align-self-stretch.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <title>flexbox | align-self: stretch</title>
 <link rel="author" href="http://opera.com" title="Opera Software">
-<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-align-items">
+<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#align-items-property">
 <link rel="match" href="flexbox_align-self-stretch-ref.html">
 <style>
 div {
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_flex-natural-variable-zero-basis.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_flex-natural-variable-zero-basis.html
index be92a69..6ea8f29a 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_flex-natural-variable-zero-basis.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_flex-natural-variable-zero-basis.html
@@ -2,7 +2,7 @@
 <title>flexbox | flex: larger integer, zero basis</title>
 <link rel="author" href="http://opera.com" title="Opera Software">
 <link rel="help"
-	href="http://www.w3.org/TR/css-flexbox-1/#propdef-flex-basis">
+	href="http://www.w3.org/TR/css-flexbox-1/#flex-basis-property">
 <link rel="match" href="flexbox_flex-natural-variable-zero-basis-ref.html">
 <style>
 div {
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_flow-column-reverse-wrap-reverse.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_flow-column-reverse-wrap-reverse.html
index 4f298f3..2b65260 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_flow-column-reverse-wrap-reverse.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_flow-column-reverse-wrap-reverse.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <title>flexbox | flex-flow: column-reverse wrap-reverse</title>
 <link rel="author" href="http://opera.com" title="Opera Software">
-<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-flex-flow">
+<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#flex-flow-property">
 <link rel="match" href="flexbox_flow-column-reverse-wrap-reverse-ref.html">
 <style>
 div {
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_flow-column-reverse-wrap.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_flow-column-reverse-wrap.html
index 5895abf..014bbddc 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_flow-column-reverse-wrap.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_flow-column-reverse-wrap.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <title>flexbox | flex-flow: column-reverse wrap</title>
 <link rel="author" href="http://opera.com" title="Opera Software">
-<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-flex-flow">
+<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#flex-flow-property">
 <link rel="match" href="flexbox_flow-column-reverse-wrap-ref.html">
 <style>
 div {
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_flow-column-wrap-reverse.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_flow-column-wrap-reverse.html
index 7d9116a6..602e0d89 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_flow-column-wrap-reverse.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_flow-column-wrap-reverse.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <title>flexbox | flex-flow: column wrap-reverse</title>
 <link rel="author" href="http://opera.com" title="Opera Software">
-<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-flex-flow">
+<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#flex-flow-property">
 <link rel="match" href="flexbox_flow-column-wrap-reverse-ref.html">
 <style>
 div {
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_flow-column-wrap.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_flow-column-wrap.html
index 6e7a490..c5b95c20 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_flow-column-wrap.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_flow-column-wrap.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <title>flexbox | flex-flow: column wrap</title>
 <link rel="author" href="http://opera.com" title="Opera Software">
-<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-flex-flow">
+<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#flex-flow-property">
 <link rel="match" href="flexbox_flow-column-wrap-ref.html">
 <style>
 div {
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_flow-row-wrap-reverse.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_flow-row-wrap-reverse.html
index b36b8653a..28d7c34 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_flow-row-wrap-reverse.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_flow-row-wrap-reverse.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <title>flexbox | flex-flow: row wrap-reverse</title>
 <link rel="author" href="http://opera.com" title="Opera Software">
-<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-flex-flow">
+<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#flex-flow-property">
 <link rel="match" href="flexbox_flow-row-wrap-reverse-ref.html">
 <style>
 div {
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_flow-row-wrap.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_flow-row-wrap.html
index 9279f88..a1a17ab 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_flow-row-wrap.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_flow-row-wrap.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <title>flexbox | flex-flow: row wrap</title>
 <link rel="author" href="http://opera.com" title="Opera Software">
-<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-flex-flow">
+<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#flex-flow-property">
 <link rel="match" href="flexbox_flow-row-wrap-ref.html">
 <style>
 div {
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_justifycontent-center-overflow.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_justifycontent-center-overflow.html
index 1ea12bb1..6f4d2baae 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_justifycontent-center-overflow.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_justifycontent-center-overflow.html
@@ -2,7 +2,7 @@
 <title>flexbox | justify-content: center / overflow</title>
 <link rel="author" href="http://opera.com" title="Opera Software">
 <link rel="help"
-	href="http://www.w3.org/TR/css-flexbox-1/#propdef-justify-content">
+	href="http://www.w3.org/TR/css-flexbox-1/#justify-content-property">
 <link rel="match" href="flexbox_justifycontent-center-overflow-ref.html">
 <style>
 div {
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_justifycontent-center.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_justifycontent-center.html
index 1da4a72..e26d6920 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_justifycontent-center.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_justifycontent-center.html
@@ -2,7 +2,7 @@
 <title>flexbox | justify-content: center</title>
 <link rel="author" href="http://opera.com" title="Opera Software">
 <link rel="help"
-	href="http://www.w3.org/TR/css-flexbox-1/#propdef-justify-content">
+	href="http://www.w3.org/TR/css-flexbox-1/#justify-content-property">
 <link rel="match" href="flexbox_justifycontent-center-ref.html">
 <style>
 div {
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_justifycontent-flex-end.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_justifycontent-flex-end.html
index f5d17325..ee7f711 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_justifycontent-flex-end.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_justifycontent-flex-end.html
@@ -2,7 +2,7 @@
 <title>flexbox | justify-content: flex-end</title>
 <link rel="author" href="http://opera.com" title="Opera Software">
 <link rel="help"
-	href="http://www.w3.org/TR/css-flexbox-1/#propdef-justify-content">
+	href="http://www.w3.org/TR/css-flexbox-1/#justify-content-property">
 <link rel="match" href="flexbox_justifycontent-flex-end-ref.html">
 <style>
 div {
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_justifycontent-flex-start.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_justifycontent-flex-start.html
index ee4af4f..66e85cde 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_justifycontent-flex-start.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_justifycontent-flex-start.html
@@ -2,7 +2,7 @@
 <title>flexbox | justify-content: flex-start</title>
 <link rel="author" href="http://opera.com" title="Opera Software">
 <link rel="help"
-	href="http://www.w3.org/TR/css-flexbox-1/#propdef-justify-content">
+	href="http://www.w3.org/TR/css-flexbox-1/#justify-content-property">
 <link rel="match" href="flexbox_justifycontent-flex-start-ref.html">
 <style>
 div {
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_justifycontent-spacearound-negative.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_justifycontent-spacearound-negative.html
index 6474a07..85dbba75 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_justifycontent-spacearound-negative.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_justifycontent-spacearound-negative.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <title>flexbox | justify-content: space-around / negative</title>
 <link rel="author" href="http://opera.com" title="Opera Software">
-<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-justify-content">
+<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#justify-content-property">
 <link rel="match" href="flexbox_justifycontent-spacearound-negative-ref.html">
 <style>
 div {
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_justifycontent-spacearound-only.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_justifycontent-spacearound-only.html
index 3f977f4..62bfd90f 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_justifycontent-spacearound-only.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_justifycontent-spacearound-only.html
@@ -2,7 +2,7 @@
 <title>flexbox | justify-content: space-around | single item</title>
 <link rel="author" href="http://opera.com" title="Opera Software">
 <link rel="help"
-	href="http://www.w3.org/TR/css-flexbox-1/#propdef-justify-content">
+	href="http://www.w3.org/TR/css-flexbox-1/#justify-content-property">
 <link rel="match" href="flexbox_justifycontent-spacearound-only-ref.html">
 <style>
 div {
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_justifycontent-spacearound.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_justifycontent-spacearound.html
index d9b306e..2cbcf25 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_justifycontent-spacearound.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_justifycontent-spacearound.html
@@ -2,7 +2,7 @@
 <title>flexbox | justify-content: space-around</title>
 <link rel="author" href="http://opera.com" title="Opera Software">
 <link rel="help"
-	href="http://www.w3.org/TR/css-flexbox-1/#propdef-justify-content">
+	href="http://www.w3.org/TR/css-flexbox-1/#justify-content-property">
 <link rel="match" href="flexbox_justifycontent-spacearound-ref.html">
 <style>
 div {
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_justifycontent-spacebetween-negative.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_justifycontent-spacebetween-negative.html
index de9621f9..081c7ca 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_justifycontent-spacebetween-negative.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_justifycontent-spacebetween-negative.html
@@ -2,7 +2,7 @@
 <title>flexbox | justify-content: space-between / negative</title>
 <link rel="author" href="http://opera.com" title="Opera Software">
 <link rel="help"
-	href="http://www.w3.org/TR/css-flexbox-1/#propdef-justify-content">
+	href="http://www.w3.org/TR/css-flexbox-1/#justify-content-property">
 <link rel="match" href="flexbox_justifycontent-spacebetween-negative-ref.html">
 <style>
 div {
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_justifycontent-spacebetween-only.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_justifycontent-spacebetween-only.html
index 6e6bac717..bb746a4 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_justifycontent-spacebetween-only.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_justifycontent-spacebetween-only.html
@@ -2,7 +2,7 @@
 <title>flexbox | justify-content: space-between | single item</title>
 <link rel="author" href="http://opera.com" title="Opera Software">
 <link rel="help"
-	href="http://www.w3.org/TR/css-flexbox-1/#propdef-justify-content">
+	href="http://www.w3.org/TR/css-flexbox-1/#justify-content-property">
 <link rel="match" href="flexbox_justifycontent-spacebetween-only-ref.html">
 <style>
 div {
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_justifycontent-spacebetween.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_justifycontent-spacebetween.html
index e04b826..f04d5dac 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_justifycontent-spacebetween.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_justifycontent-spacebetween.html
@@ -2,7 +2,7 @@
 <title>flexbox | justify-content: space-between</title>
 <link rel="author" href="http://opera.com" title="Opera Software">
 <link rel="help"
-	href="http://www.w3.org/TR/css-flexbox-1/#propdef-justify-content">
+	href="http://www.w3.org/TR/css-flexbox-1/#justify-content-property">
 <link rel="match" href="flexbox_justifycontent-spacebetween-ref.html">
 <style>
 div {
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_object.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_object.html
index 16dd488..22dbe66 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_object.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_object.html
@@ -2,7 +2,7 @@
 <title>flexbox | object fallback as a flex item</title>
 <link rel="author" href="http://opera.com" title="Opera Software">
 <link rel="help"
-	href="http://www.w3.org/TR/css-flexbox-1/#propdef-justify-content">
+	href="http://www.w3.org/TR/css-flexbox-1/#justify-content-property">
 <link rel="match" href="flexbox_object-ref.html">
 <style>
 div {
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_order-abspos-space-around.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_order-abspos-space-around.html
index f3e0532c..be49e3b1 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_order-abspos-space-around.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_order-abspos-space-around.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <title>flexbox | order; justify-content: space-around</title>
 <link rel="author" href="http://opera.com" title="Opera Software">
-<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-order">
+<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#order-property">
 <link rel="match" href="flexbox_order-abspos-space-around-ref.html">
 <style>
 div {
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_order-box.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_order-box.html
index 299a45d..a0d28351 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_order-box.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_order-box.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <title>flexbox | flex-flow: column-reverse wrap-reverse; order</title>
 <link rel="author" href="http://opera.com" title="Opera Software">
-<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-order">
+<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#order-property">
 <link rel="match" href="flexbox_order-box-ref.html">
 <style>
 div {
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_order-noninteger-invalid.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_order-noninteger-invalid.html
index 41f314a..cf031b17 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_order-noninteger-invalid.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_order-noninteger-invalid.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <title>flexbox | flex-flow: column-reverse wrap-reverse; order</title>
 <link rel="author" href="http://opera.com" title="Opera Software">
-<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-order">
+<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#order-property">
 <link rel="match" href="flexbox_empty-ref.html">
 <link rel="flags" content="invalid">
 <style>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_order.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_order.html
index a8c6e0f..8ed5eb4 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_order.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_order.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <title>flexbox | flex-flow: column-reverse wrap-reverse; order</title>
 <link rel="author" href="http://opera.com" title="Opera Software">
-<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-order">
+<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#order-property">
 <link rel="match" href="flexbox_order-ref.html">
 <style>
 div {
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_rowspan.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_rowspan.html
index d2a78db..67a0dc6 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_rowspan.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_rowspan.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <title>flexbox | flexcontainers in cells with rowspan</title>
 <link rel="author" href="http://opera.com" title="Opera Software">
-<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-flex-wrap">
+<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#flex-wrap-property">
 <link rel="match" href="flexbox_rowspan-ref.html">
 <style>
 table {
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_rtl-flow-reverse.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_rtl-flow-reverse.html
index d3052a3..f478969 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_rtl-flow-reverse.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_rtl-flow-reverse.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <title>flexbox | flex-flow: column wrap-reverse | rtl</title>
 <link rel="author" href="http://opera.com" title="Opera Software">
-<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-flex-flow">
+<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#flex-flow-property">
 <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#valdef-flex-direction-column">
 <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#valdef-flex-wrap-wrap-reverse">
 <link rel="match" href="flexbox_rtl-flow-reverse-ref.html">
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_rtl-flow.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_rtl-flow.html
index ba34c1e7..954a6b7 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_rtl-flow.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_rtl-flow.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <title>flexbox | flex-flow: column wrap | rtl</title>
 <link rel="author" href="http://opera.com" title="Opera Software">
-<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-flex-flow">
+<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#flex-flow-property">
 <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#valdef-flex-direction-column">
 <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#valdef-flex-wrap-wrap">
 <link rel="match" href="flexbox_rtl-flow-ref.html">
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_rtl-order.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_rtl-order.html
index d23566d0..7613240 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_rtl-order.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_rtl-order.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <title>flexbox | flex-flow: column-reverse wrap-reverse; order | rtl</title>
 <link rel="author" href="http://opera.com" title="Opera Software">
-<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-flex-flow">
+<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#flex-flow-property">
 <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#valdef-flex-direction-column-reverse">
 <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#valdef-flex-wrap-wrap-reverse">
 <link rel="match" href="flexbox_rtl-order-ref.html">
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_width-overflow.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_width-overflow.html
index b8b3591..c5f51c7 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_width-overflow.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_width-overflow.html
@@ -2,7 +2,7 @@
 <title>flexbox | overflow</title>
 <link rel="author" href="http://opera.com" title="Opera Software">
 <link rel="help"
-	href="http://www.w3.org/TR/css-flexbox-1/#propdef-justify-content">
+	href="http://www.w3.org/TR/css-flexbox-1/#justify-content-property">
 <link rel="match" href="flexbox_empty-ref.html">
 <style>
 div {
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_wrap-long.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_wrap-long.html
index 2d6d7d4..a097cd66b 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_wrap-long.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_wrap-long.html
@@ -2,7 +2,7 @@
 <title>flexbox | flex-wrap: wrap / long items</title>
 <link rel="author" href="http://opera.com" title="Opera Software">
 <link rel="help"
-	href="http://www.w3.org/TR/css-flexbox-1/#propdef-flex-wrap">
+	href="http://www.w3.org/TR/css-flexbox-1/#flex-wrap-property">
 <link rel="match" href="flexbox_wrap-long-ref.html">
 <style>
 div {
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_wrap-reverse.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_wrap-reverse.html
index 8a4337361..fb2c9f1 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_wrap-reverse.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_wrap-reverse.html
@@ -2,7 +2,7 @@
 <title>flexbox | flex-wrap: wrap</title>
 <link rel="author" href="http://opera.com" title="Opera Software">
 <link rel="help"
-	href="http://www.w3.org/TR/css-flexbox-1/#propdef-flex-wrap">
+	href="http://www.w3.org/TR/css-flexbox-1/#flex-wrap-property">
 <link rel="match" href="flexbox_wrap-reverse-ref.html">
 <style>
 div {
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_wrap.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_wrap.html
index 76bcdaf..7927df7 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_wrap.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/flexbox_wrap.html
@@ -2,7 +2,7 @@
 <title>flexbox | flex-wrap: wrap</title>
 <link rel="author" href="http://opera.com" title="Opera Software">
 <link rel="help"
-	href="http://www.w3.org/TR/css-flexbox-1/#propdef-flex-wrap">
+	href="http://www.w3.org/TR/css-flexbox-1/#flex-wrap-property">
 <link rel="match" href="flexbox_wrap-ref.html">
 <style>
 div {
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_align-items-baseline.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_align-items-baseline.html
index b9490f4..ac0b48f 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_align-items-baseline.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_align-items-baseline.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <title>flexbox | computed style | align-items: baseline</title>
 <link rel="author" href="http://opera.com" title="Opera Software">
-<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-align-items">
+<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#align-items-property">
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
 <meta name="flags" content="dom">
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_align-items-center.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_align-items-center.html
index eb538d5..e7cc1ee 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_align-items-center.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_align-items-center.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <title>flexbox | computed style | align-items: center</title>
 <link rel="author" href="http://opera.com" title="Opera Software">
-<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-align-items">
+<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#align-items-property">
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
 <meta name="flags" content="dom">
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_align-items-flex-end.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_align-items-flex-end.html
index e5393374..480f0e3d 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_align-items-flex-end.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_align-items-flex-end.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <title>flexbox | computed style | align-items: flex-end</title>
 <link rel="author" href="http://opera.com" title="Opera Software">
-<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-align-items">
+<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#align-items-property">
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
 <meta name="flags" content="dom">
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_align-items-flex-start.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_align-items-flex-start.html
index 03d1cfb..6c3b9e6 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_align-items-flex-start.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_align-items-flex-start.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <title>flexbox | computed style | align-items: flex-start</title>
 <link rel="author" href="http://opera.com" title="Opera Software">
-<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-align-items">
+<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#align-items-property">
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
 <meta name="flags" content="dom">
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_align-items-invalid.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_align-items-invalid.html
index 34a4c9e6..d1f29e3 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_align-items-invalid.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_align-items-invalid.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <title>flexbox | computed style | align-items: invalid</title>
 <link rel="author" href="http://opera.com" title="Opera Software">
-<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-align-items">
+<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#align-items-property">
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
 <meta name="flags" content="dom">
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_align-items-stretch.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_align-items-stretch.html
index 7de92998..3d6f1e31 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_align-items-stretch.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_align-items-stretch.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <title>flexbox | computed style | align-items: stretch</title>
 <link rel="author" href="http://opera.com" title="Opera Software">
-<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-align-items">
+<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#align-items-property">
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
 <meta name="flags" content="dom">
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_align-self-baseline.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_align-self-baseline.html
index 2a6d0e9..49c21d29 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_align-self-baseline.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_align-self-baseline.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <title>flexbox | computed style | align-self: baseline</title>
 <link rel="author" href="http://opera.com" title="Opera Software">
-<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-align-self">
+<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#align-items-property">
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
 <meta name="flags" content="dom">
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_align-self-center.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_align-self-center.html
index f6d0de1e..b86007d 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_align-self-center.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_align-self-center.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <title>flexbox | computed style | align-self: center</title>
 <link rel="author" href="http://opera.com" title="Opera Software">
-<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-align-self">
+<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#align-items-property">
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
 <meta name="flags" content="dom">
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_align-self-flex-end.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_align-self-flex-end.html
index 5cce78da..ca729e3 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_align-self-flex-end.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_align-self-flex-end.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <title>flexbox | computed style | align-self: flex-end</title>
 <link rel="author" href="http://opera.com" title="Opera Software">
-<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-align-self">
+<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#align-items-property">
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
 <meta name="flags" content="dom">
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_align-self-flex-start.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_align-self-flex-start.html
index cbcc42e..dd84c6da 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_align-self-flex-start.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_align-self-flex-start.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <title>flexbox | computed style | align-self: flex-start</title>
 <link rel="author" href="http://opera.com" title="Opera Software">
-<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-align-self">
+<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#align-items-property">
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
 <meta name="flags" content="dom">
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_align-self-invalid.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_align-self-invalid.html
index 76eef18..0059bc20 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_align-self-invalid.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_align-self-invalid.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <title>flexbox | computed style | align-self: invalid</title>
 <link rel="author" href="http://opera.com" title="Opera Software">
-<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-align-self">
+<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#align-items-property">
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
 <meta name="flags" content="dom">
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_align-self-stretch.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_align-self-stretch.html
index ab34425..6604ec2 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_align-self-stretch.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_align-self-stretch.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <title>flexbox | computed style | align-self: stretch</title>
 <link rel="author" href="http://opera.com" title="Opera Software">
-<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-align-self">
+<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#align-items-property">
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
 <meta name="flags" content="dom">
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-flow-column-nowrap.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-flow-column-nowrap.html
index 83530ba..98ba73c 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-flow-column-nowrap.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-flow-column-nowrap.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <title>flexbox | computed style | flex-flow: column nowrap</title>
 <link rel="author" href="http://opera.com" title="Opera Software">
-<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-flex-flow">
+<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#flex-flow-property">
 <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#valdef-flex-direction-column">
 <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#valdef-flex-wrap-nowrap">
 <script src="/resources/testharness.js"></script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-flow-column-reverse-nowrap.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-flow-column-reverse-nowrap.html
index 6f34862..7a513017 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-flow-column-reverse-nowrap.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-flow-column-reverse-nowrap.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <title>flexbox | computed style | flex-flow: column-reverse nowrap</title>
 <link rel="author" href="http://opera.com" title="Opera Software">
-<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-flex-flow">
+<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#flex-flow-property">
 <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#valdef-flex-direction-column-reverse">
 <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#valdef-flex-wrap-nowrap">
 <script src="/resources/testharness.js"></script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-flow-column-reverse-wrap.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-flow-column-reverse-wrap.html
index c50d7b3..d5972d9 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-flow-column-reverse-wrap.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-flow-column-reverse-wrap.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <title>flexbox | computed style | flex-flow: column-reverse wrap</title>
 <link rel="author" href="http://opera.com" title="Opera Software">
-<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-flex-flow">
+<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#flex-flow-property">
 <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#valdef-flex-direction-column-reverse">
 <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#valdef-flex-wrap-wrap">
 <script src="/resources/testharness.js"></script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-flow-column-reverse.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-flow-column-reverse.html
index f56cab5..7c4fcf6a 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-flow-column-reverse.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-flow-column-reverse.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <title>flexbox | computed style | flex-flow: column-reverse</title>
 <link rel="author" href="http://opera.com" title="Opera Software">
-<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-flex-flow">
+<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#flex-flow-property">
 <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#valdef-flex-direction-column-reverse">
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-flow-column-wrap-reverse.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-flow-column-wrap-reverse.html
index 777fbc7..59b57f8 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-flow-column-wrap-reverse.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-flow-column-wrap-reverse.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <title>flexbox | computed style | flex-flow: column wrap-reverse</title>
 <link rel="author" href="http://opera.com" title="Opera Software">
-<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-flex-flow">
+<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#flex-flow-property">
 <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#valdef-flex-direction-column">
 <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#valdef-flex-wrap-wrap-reverse">
 <script src="/resources/testharness.js"></script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-flow-column-wrap.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-flow-column-wrap.html
index 5738ad3..dd5fb89c 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-flow-column-wrap.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-flow-column-wrap.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <title>flexbox | computed style | flex-flow: column wrap</title>
 <link rel="author" href="http://opera.com" title="Opera Software">
-<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-flex-flow">
+<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#flex-flow-property">
 <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#valdef-flex-direction-column">
 <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#valdef-flex-wrap-wrap">
 <script src="/resources/testharness.js"></script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-flow-column.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-flow-column.html
index 9cb4dc98a..35f2c0e7 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-flow-column.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-flow-column.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <title>flexbox | computed style | flex-flow: column</title>
 <link rel="author" href="http://opera.com" title="Opera Software">
-<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-flex-flow">
+<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#flex-flow-property">
 <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#valdef-flex-direction-column">
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-flow-nowrap.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-flow-nowrap.html
index 008feab0..7520543f 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-flow-nowrap.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-flow-nowrap.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <title>flexbox | computed style | flex-flow: nowrap</title>
 <link rel="author" href="http://opera.com" title="Opera Software">
-<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-flex-flow">
+<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#flex-flow-property">
 <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#valdef-flex-wrap-nowrap">
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-flow-row-nowrap.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-flow-row-nowrap.html
index 12d35a9..db763c46 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-flow-row-nowrap.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-flow-row-nowrap.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <title>flexbox | computed style | flex-flow: row nowrap</title>
 <link rel="author" href="http://opera.com" title="Opera Software">
-<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-flex-flow">
+<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#flex-flow-property">
 <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#valdef-flex-direction-row">
 <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#valdef-flex-wrap-nowrap">
 <script src="/resources/testharness.js"></script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-flow-row-reverse-nowrap.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-flow-row-reverse-nowrap.html
index 6b49224..48be7f89 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-flow-row-reverse-nowrap.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-flow-row-reverse-nowrap.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <title>flexbox | computed style | flex-flow: row-reverse nowrap</title>
 <link rel="author" href="http://opera.com" title="Opera Software">
-<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-flex-flow">
+<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#flex-flow-property">
 <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#valdef-flex-direction-row-reverse">
 <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#valdef-flex-wrap-nowrap">
 <script src="/resources/testharness.js"></script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-flow-row-reverse-wrap-reverse.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-flow-row-reverse-wrap-reverse.html
index f314d92..9f4d392 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-flow-row-reverse-wrap-reverse.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-flow-row-reverse-wrap-reverse.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <title>flexbox | computed style | flex-flow: row-reverse wrap-reverse</title>
 <link rel="author" href="http://opera.com" title="Opera Software">
-<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-flex-flow">
+<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#flex-flow-property">
 <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#valdef-flex-direction-row-reverse">
 <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#valdef-flex-wrap-wrap-reverse">
 <script src="/resources/testharness.js"></script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-flow-row-reverse-wrap.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-flow-row-reverse-wrap.html
index f967239..f59f8bf 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-flow-row-reverse-wrap.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-flow-row-reverse-wrap.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <title>flexbox | computed style | flex-flow: row-reverse wrap</title>
 <link rel="author" href="http://opera.com" title="Opera Software">
-<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-flex-flow">
+<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#flex-flow-property">
 <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#valdef-flex-direction-row-reverse">
 <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#valdef-flex-wrap-wrap">
 <script src="/resources/testharness.js"></script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-flow-row-reverse.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-flow-row-reverse.html
index d62b996..893da8ce 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-flow-row-reverse.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-flow-row-reverse.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <title>flexbox | computed style | flex-flow: row-reverse</title>
 <link rel="author" href="http://opera.com" title="Opera Software">
-<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-flex-flow">
+<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#flex-flow-property">
 <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#valdef-flex-direction-row-reverse">
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-flow-row-wrap-reverse.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-flow-row-wrap-reverse.html
index afb7bc6..d6a169b 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-flow-row-wrap-reverse.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-flow-row-wrap-reverse.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <title>flexbox | computed style | flex-flow: row wrap-reverse</title>
 <link rel="author" href="http://opera.com" title="Opera Software">
-<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-flex-flow">
+<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#flex-flow-property">
 <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#valdef-flex-direction-row">
 <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#valdef-flex-wrap-wrap-reverse">
 <script src="/resources/testharness.js"></script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-flow-row-wrap.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-flow-row-wrap.html
index 6c09f47..42e85f12 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-flow-row-wrap.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-flow-row-wrap.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <title>flexbox | computed style | flex-flow: row wrap</title>
 <link rel="author" href="http://opera.com" title="Opera Software">
-<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-flex-flow">
+<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#flex-flow-property">
 <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#valdef-flex-direction-row">
 <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#valdef-flex-wrap-wrap">
 <script src="/resources/testharness.js"></script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-flow-row.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-flow-row.html
index 5252716..ddf1284 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-flow-row.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-flow-row.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <title>flexbox | computed style | flex-flow: row</title>
 <link rel="author" href="http://opera.com" title="Opera Software">
-<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-flex-flow">
+<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#flex-flow-property">
 <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#valdef-flex-direction-row">
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-flow-wrap.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-flow-wrap.html
index f7e53f3..a1eb4df 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-flow-wrap.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-flow-wrap.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <title>flexbox | computed style | flex-flow: wrap</title>
 <link rel="author" href="http://opera.com" title="Opera Software">
-<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-flex-flow">
+<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#flex-flow-property">
 <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#valdef-flex-wrap-wrap">
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-grow-0.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-grow-0.html
index b1f1d639..da23475c 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-grow-0.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-grow-0.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <title>flexbox | computed style | flex-grow: 0</title>
 <link rel="author" href="http://opera.com" title="Opera Software">
-<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-flex-grow">
+<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#flex-grow-property">
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
 <meta name="flags" content="dom">
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-grow-invalid.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-grow-invalid.html
index e6c5fe5..ae1a411 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-grow-invalid.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-grow-invalid.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <title>flexbox | computed style | flex-grow: negative</title>
 <link rel="author" href="http://opera.com" title="Opera Software">
-<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-flex-grow">
+<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#flex-grow-property">
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
 <meta name="flags" content="dom">
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-grow-number.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-grow-number.html
index b6ce826..db59e614 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-grow-number.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-grow-number.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <title>flexbox | computed style | flex-grow: number</title>
 <link rel="author" href="http://opera.com" title="Opera Software">
-<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-flex-grow">
+<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#flex-grow-property">
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
 <meta name="flags" content="dom">
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-shorthand-0-auto.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-shorthand-0-auto.html
index ea48e06b..d72926b 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-shorthand-0-auto.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-shorthand-0-auto.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <title>flexbox | computed style | flex: 0 auto</title>
 <link rel="author" href="http://opera.com" title="Opera Software">
-<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-flex">
+<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#flex-property">
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
 <meta name="flags" content="dom">
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-shorthand-auto.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-shorthand-auto.html
index e99df2b..d8cdc34 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-shorthand-auto.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-shorthand-auto.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <title>flexbox | computed style | flex: auto</title>
 <link rel="author" href="http://opera.com" title="Opera Software">
-<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-flex">
+<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#flex-property">
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
 <meta name="flags" content="dom">
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-shorthand-initial.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-shorthand-initial.html
index 3ff76d9..d996bde 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-shorthand-initial.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-shorthand-initial.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <title>flexbox | computed style | flex: initial</title>
 <link rel="author" href="http://opera.com" title="Opera Software">
-<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-flex">
+<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#flex-property">
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
 <meta name="flags" content="dom">
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-shorthand-invalid.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-shorthand-invalid.html
index acd30a9..3e700cf 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-shorthand-invalid.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-shorthand-invalid.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <title>flexbox | computed style | flex: invalid</title>
 <link rel="author" href="http://opera.com" title="Opera Software">
-<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-flex">
+<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#flex-property">
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
 <meta name="flags" content="dom">
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-shorthand-none.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-shorthand-none.html
index 46e24d2..6312a38 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-shorthand-none.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-shorthand-none.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <title>flexbox | computed style | flex: auto</title>
 <link rel="author" href="http://opera.com" title="Opera Software">
-<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-flex">
+<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#flex-property">
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
 <meta name="flags" content="dom">
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-shorthand-number.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-shorthand-number.html
index 6b41f2d..413a94f0 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-shorthand-number.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-shorthand-number.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <title>flexbox | computed style | flex: number</title>
 <link rel="author" href="http://opera.com" title="Opera Software">
-<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-flex">
+<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#flex-property">
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
 <meta name="flags" content="dom">
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-shorthand.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-shorthand.html
index dd9c7f2..dcfcf35 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-shorthand.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-shorthand.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <title>flexbox | computed style | flex: invalid</title>
 <link rel="author" href="http://opera.com" title="Opera Software">
-<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-flex">
+<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#flex-property">
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
 <meta name="flags" content="dom">
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-shrink-0.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-shrink-0.html
index 1913c7b..6d65b0ea 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-shrink-0.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-shrink-0.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <title>flexbox | computed style | flex-shrink: 0</title>
 <link rel="author" href="http://opera.com" title="Opera Software">
-<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-flex-shrink">
+<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#flex-shrink-property">
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
 <meta name="flags" content="dom">
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-shrink-invalid.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-shrink-invalid.html
index a5937e7f..e7844235 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-shrink-invalid.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-shrink-invalid.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <title>flexbox | computed style | flex-shrink: negative</title>
 <link rel="author" href="http://opera.com" title="Opera Software">
-<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-flex-shrink">
+<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#flex-shrink-property">
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
 <meta name="flags" content="dom">
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-shrink-number.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-shrink-number.html
index 469762c0..be3e917b 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-shrink-number.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-shrink-number.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <title>flexbox | computed style | flex-shrink: number</title>
 <link rel="author" href="http://opera.com" title="Opera Software">
-<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-flex-shrink">
+<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#flex-shrink-property">
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
 <meta name="flags" content="dom">
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-wrap-invalid.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-wrap-invalid.html
index 4f917ee..8f48a0d4 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-wrap-invalid.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-wrap-invalid.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <title>flexbox | computed style | flex-wrap: wrap</title>
 <link rel="author" href="http://opera.com" title="Opera Software">
-<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-flex-wrap">
+<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#flex-wrap-property">
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
 <meta name="flags" content="dom">
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-wrap-nowrap.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-wrap-nowrap.html
index fd4c5e9..283826b9 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-wrap-nowrap.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-wrap-nowrap.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <title>flexbox | computed style | flex-wrap: nowrap</title>
 <link rel="author" href="http://opera.com" title="Opera Software">
-<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-flex-wrap">
+<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#flex-wrap-property">
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
 <meta name="flags" content="dom">
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-wrap-wrap-reverse.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-wrap-wrap-reverse.html
index 9f15bb7..600541e 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-wrap-wrap-reverse.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-wrap-wrap-reverse.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <title>flexbox | computed style | flex-wrap: wrap-reverse</title>
 <link rel="author" href="http://opera.com" title="Opera Software">
-<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-flex-wrap">
+<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#flex-wrap-property">
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
 <meta name="flags" content="dom">
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-wrap-wrap.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-wrap-wrap.html
index 62cd35e..82407357 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-wrap-wrap.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_flex-wrap-wrap.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <title>flexbox | computed style | flex-wrap: wrap</title>
 <link rel="author" href="http://opera.com" title="Opera Software">
-<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-flex-wrap">
+<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#flex-wrap-property">
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
 <meta name="flags" content="dom">
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_justify-content-center.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_justify-content-center.html
index a05b9ff..4cafe5d 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_justify-content-center.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_justify-content-center.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <title>flexbox | computed style | justify-content: center</title>
 <link rel="author" href="http://opera.com" title="Opera Software">
-<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-justify-content">
+<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#justify-content-property">
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
 <meta name="flags" content="dom">
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_justify-content-flex-end.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_justify-content-flex-end.html
index f72a594..0af4aea 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_justify-content-flex-end.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_justify-content-flex-end.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <title>flexbox | computed style | justify-content: flex-end</title>
 <link rel="author" href="http://opera.com" title="Opera Software">
-<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-justify-content">
+<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#justify-content-property">
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
 <meta name="flags" content="dom">
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_justify-content-flex-start.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_justify-content-flex-start.html
index 80d3943..c04a7d32 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_justify-content-flex-start.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_justify-content-flex-start.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <title>flexbox | computed style | justify-content: flex-start</title>
 <link rel="author" href="http://opera.com" title="Opera Software">
-<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-justify-content">
+<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#justify-content-property">
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
 <meta name="flags" content="dom">
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_justify-content-space-around.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_justify-content-space-around.html
index 61e7e27..8d18b28 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_justify-content-space-around.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_justify-content-space-around.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <title>flexbox | computed style | justify-content: space-around</title>
 <link rel="author" href="http://opera.com" title="Opera Software">
-<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-justify-content">
+<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#justify-content-property">
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
 <meta name="flags" content="dom">
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_justify-content-space-between.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_justify-content-space-between.html
index dcbf963..238fa6a 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_justify-content-space-between.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_justify-content-space-between.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <title>flexbox | computed style | justify-content: space-between</title>
 <link rel="author" href="http://opera.com" title="Opera Software">
-<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-justify-content">
+<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#justify-content-property">
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
 <meta name="flags" content="dom">
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_order-inherit.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_order-inherit.html
index ad71ff30..dab1c1c 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_order-inherit.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_order-inherit.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <title>flexbox | computed style | order: -1</title>
 <link rel="author" href="http://opera.com" title="Opera Software">
-<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-order">
+<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#order-property">
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
 <meta name="flags" content="dom">
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_order-integer.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_order-integer.html
index b26fa66..cd097b1 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_order-integer.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_order-integer.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <title>flexbox | computed style | order: integer</title>
 <link rel="author" href="http://opera.com" title="Opera Software">
-<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-order">
+<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#order-property">
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
 <meta name="flags" content="dom">
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_order-invalid.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_order-invalid.html
index 1046220f..17c19ee4 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_order-invalid.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_order-invalid.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <title>flexbox | computed style | order: noninteger</title>
 <link rel="author" href="http://opera.com" title="Opera Software">
-<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-order">
+<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#order-property">
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
 <meta name="flags" content="dom">
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_order-negative.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_order-negative.html
index 8064273f3..c2fdab6 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_order-negative.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_order-negative.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <title>flexbox | computed style | order: -1</title>
 <link rel="author" href="http://opera.com" title="Opera Software">
-<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-order">
+<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#order-property">
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
 <meta name="flags" content="dom">
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_order.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_order.html
index 01144006..9f94febe 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_order.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/getcomputedstyle/flexbox_computedstyle_order.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <title>flexbox | computed style | order: 0</title>
 <link rel="author" href="http://opera.com" title="Opera Software">
-<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-order">
+<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#order-property">
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
 <meta name="flags" content="dom">
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/interactive/flexbox_interactive_flex-grow-transitions.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/interactive/flexbox_interactive_flex-grow-transitions.html
index 8fd9dc0..d78088d 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/interactive/flexbox_interactive_flex-grow-transitions.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/interactive/flexbox_interactive_flex-grow-transitions.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <title>flexbox | transitioned flex-grow</title>
 <link rel="author" href="http://opera.com" title="Opera Software">
-<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-flex-grow">
+<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#flex-grow-property">
 <meta name="flags" content="interact">
 <style>
 div {
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/interactive/flexbox_interactive_flex-shrink-transitions-invalid.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/interactive/flexbox_interactive_flex-shrink-transitions-invalid.html
index 373e661..855bd19 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/interactive/flexbox_interactive_flex-shrink-transitions-invalid.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/interactive/flexbox_interactive_flex-shrink-transitions-invalid.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <title>flexbox | invalid flex-shrink transition</title>
 <link rel="author" href="http://opera.com" title="Opera Software">
-<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-flex-shrink">
+<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#flex-shrink-property">
 <meta name="flags" content="interact">
 <style>
 div {
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/interactive/flexbox_interactive_flex-shrink-transitions.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/interactive/flexbox_interactive_flex-shrink-transitions.html
index 19d276d..ba94e771 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/interactive/flexbox_interactive_flex-shrink-transitions.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/interactive/flexbox_interactive_flex-shrink-transitions.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <title>flexbox | transitioned flex-shrink</title>
 <link rel="author" href="http://opera.com" title="Opera Software">
-<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-flex-shrink">
+<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#flex-shrink-property">
 <meta name="flags" content="interact">
 <style>
 div {
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/justify-content-001.htm b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/justify-content-001.htm
index bc2514a..577395ea 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/justify-content-001.htm
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/justify-content-001.htm
@@ -3,7 +3,7 @@
     <head>
         <title>CSS Test: A flex container with 'justify-content' property set to 'center'</title>
         <link rel="author" title="Microsoft" href="http://www.microsoft.com/" />
-        <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-justify-content" />
+        <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#justify-content-property" />
         <link rel="match" href="reference/justify-content-001-ref.html">
         <meta name="flags" content="image">
         <meta name="assert" content="This test checks that the flex container with 'justify-content: center' centers flex items in the main axis of each line." />
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/justify-content-002.htm b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/justify-content-002.htm
index 2e7fac9e..c693fad 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/justify-content-002.htm
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/justify-content-002.htm
@@ -3,7 +3,7 @@
     <head>
         <title>CSS Test: A flex container with the 'justify-content' property set to 'flex-start'</title>
         <link rel="author" title="Microsoft" href="http://www.microsoft.com/" />
-        <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-justify-content" />
+        <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#justify-content-property" />
         <link rel="match" href="reference/justify-content-001-ref.html">
         <meta name="flags" content="image">
         <meta name="assert" content="This test checks that the flex container with 'justify-content: flex-start' packs flex items toward the start of the main axis of each line." />
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/justify-content-003.htm b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/justify-content-003.htm
index fccb0c7..985ec6b 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/justify-content-003.htm
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/justify-content-003.htm
@@ -3,7 +3,7 @@
     <head>
         <title>CSS Test: A flex container with the 'justify-content' property set to 'flex-end'</title>
         <link rel="author" title="Microsoft" href="http://www.microsoft.com/" />
-        <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-justify-content" />
+        <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#justify-content-property" />
         <link rel="match" href="reference/justify-content-001-ref.html">
         <meta name="flags" content="image">
         <meta name="assert" content="This test checks that the flex container with 'justify-content: flex-end' packs flex items toward the end of the main axis of each line." />
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/justify-content-004.htm b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/justify-content-004.htm
index 4f6c58be..552683a 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/justify-content-004.htm
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/justify-content-004.htm
@@ -3,7 +3,7 @@
     <head>
         <title>CSS Test: A flex container with the 'justify-content' property set to 'space-between'</title>
         <link rel="author" title="Microsoft" href="http://www.microsoft.com/" />
-        <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-justify-content" />
+        <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#justify-content-property" />
         <link rel="match" href="reference/justify-content-001-ref.html">
         <meta name="flags" content="image">
         <meta name="assert" content="This test checks that the flex container with 'justify-content: space-between' evenly distributes flex items in the main axis of each line." />
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/justify-content-005.htm b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/justify-content-005.htm
index d97ba7e..e5b95ed 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/justify-content-005.htm
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/justify-content-005.htm
@@ -3,7 +3,7 @@
     <head>
         <title>CSS Test: A flex container with the 'justify-content' property set to 'space-around'</title>
         <link rel="author" title="Microsoft" href="http://www.microsoft.com/" />
-        <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-justify-content" />
+        <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#justify-content-property" />
         <link rel="match" href="reference/justify-content-001-ref.html">
         <meta name="flags" content="image">
         <meta name="assert" content="This test checks that the flex container with 'justify-content: space-around' evenly distributes flex items in the main axis of each line, with half-size spaces on either end." />
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/justify-content_center.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/justify-content_center.html
index a6b547ad..6a52b3b 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/justify-content_center.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/justify-content_center.html
@@ -3,7 +3,7 @@
   <head>
     <title>CSS Flexible Box Test: justify-content_center</title>
     <link rel="author" title="Intel" href="http://www.intel.com" />
-    <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-justify-content" />
+    <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#justify-content-property" />
     <meta name="flags" content="" />
     <meta name="assert" content="Check if the web engine can identify the justify-content value center." />
     <style>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/justify-content_flex-end.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/justify-content_flex-end.html
index a37c086a..8a924d4 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/justify-content_flex-end.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/justify-content_flex-end.html
@@ -3,7 +3,7 @@
   <head>
     <title>CSS Flexible Box Test: justify-content_flex-end</title>
     <link rel="author" title="Intel" href="http://www.intel.com" />
-    <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-justify-content" />
+    <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#justify-content-property" />
     <meta name="flags" content="" />
     <meta name="assert" content="Check if the web engine can indentify the justify-content value flex-end." />
     <style>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/justify-content_flex-start.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/justify-content_flex-start.html
index 3ba6d48..c0ae993 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/justify-content_flex-start.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/justify-content_flex-start.html
@@ -3,7 +3,7 @@
   <head>
     <title>CSS Flexible Box Test: justify-content_flex-start</title>
     <link rel="author" title="Intel" href="http://www.intel.com" />
-    <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-justify-content" />
+    <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#justify-content-property" />
     <meta name="flags" content="" />
     <meta name="assert" content="Check if the web engine can indentify the justify-content value flex-start." />
     <style>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/justify-content_space-around.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/justify-content_space-around.html
index 08b0a04..c0dba54 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/justify-content_space-around.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/justify-content_space-around.html
@@ -3,7 +3,7 @@
   <head>
     <title>CSS Flexible Box Test: justify-content_space-around</title>
     <link rel="author" title="Intel" href="http://www.intel.com" />
-    <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-justify-content" />
+    <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#justify-content-property" />
     <meta name="flags" content="" />
     <meta name="assert" content="Check if the web engine can indentify the justy-content value space-around." />
     <style>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/justify-content_space-between.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/justify-content_space-between.html
index 075528f..7abfd4a6 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/justify-content_space-between.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/justify-content_space-between.html
@@ -3,7 +3,7 @@
   <head>
     <title>CSS Flexible Box Test: justify-content_space-between</title>
     <link rel="author" title="Intel" href="http://www.intel.com" />
-    <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-justify-content" />
+    <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#justify-content-property" />
     <meta name="flags" content="" />
     <meta name="assert" content="Check if the web engine can indentify the justify-content value space-between." />
     <style>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/order-001.htm b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/order-001.htm
index 5e28f27..46113dd1 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/order-001.htm
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/order-001.htm
@@ -3,7 +3,7 @@
     <head>
         <title>CSS Test: The 'order' property on flex items set to a value of '-1'</title>
         <link rel="author" title="Microsoft" href="http://www.microsoft.com/" />
-        <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-order" />
+        <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#order-property" />
         <meta name="flags" content="">
         <meta name="assert" content="This test checks that a flex container will lay out its content in the order specified by the ordinal groups." />
         <style type="text/css">
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/order/order-with-column-reverse.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/order/order-with-column-reverse.html
index 7bbb8990..5083d684 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/order/order-with-column-reverse.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/order/order-with-column-reverse.html
@@ -4,7 +4,7 @@
   <title>CSS Test: flex container layout lowest order with column-reverse direction</title>
   <link rel="author" title="tmtysk" href="mailto:tmtysk@gmail.com">
   <link rel="reviewer" title="Tab Atkins" href="mailto:jackalmage@gmail.com">
-  <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-order">
+  <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#order-property">
   <link rel="match" href="order-with-column-reverse-ref.html">
   <meta name="assert" content="This test check that a flex container layouts out its content starting with the lowest numbered ordinal group and going up with column-reverse direction.">
   <style>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/order/order-with-row-reverse.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/order/order-with-row-reverse.html
index f4e6722..04d28b8 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/order/order-with-row-reverse.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/order/order-with-row-reverse.html
@@ -4,7 +4,7 @@
   <title>CSS Test: flex container layout lowest order with row-reverse direction</title>
   <link rel="author" title="tmtysk" href="mailto:tmtysk@gmail.com">
   <link rel="reviewer" title="Tab Atkins, Jr." href="mailto:jackalmage@gmail.com">
-  <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-order">
+  <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#order-property">
   <meta name="flags" content="">
   <link rel="match" href="order-with-row-reverse-ref.html">
   <meta name="assert" content="This test check that a flex container layouts out its content starting with the lowest numbered ordinal group and going up with row-reverse direction.">
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/order_value.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/order_value.html
index 6e9ff29..6d34dda 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/order_value.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/order_value.html
@@ -3,7 +3,7 @@
   <head>
     <title>CSS Flexible Box Test: order_check</title>
     <link rel="author" title="Intel" href="http://www.intel.com" />
-    <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-order" />
+    <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#order-property" />
     <link rel="stylesheet" href="support/test-style.css">
     <meta name="flags" content="" />
     <meta name="assert" content="Check if the web engine can indentify order property." />
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/ttwf-reftest-flex-order.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/ttwf-reftest-flex-order.html
index e680175d..f620c8d 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/ttwf-reftest-flex-order.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/ttwf-reftest-flex-order.html
@@ -3,7 +3,7 @@
 <head>
     <title>CSS Flexible Box Test: order proprety - value</title>
     <link rel="author" title="haosdent" href="mailto:haosdent@gmail.com">
-    <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-order">
+    <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#order-property">
     <link rel="match" href="reference/ttwf-reftest-flex-order-ref.html">
     <meta name="assert" content="Statement describing what the test case is asserting">
     <style type="text/css">
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/ttwf-reftest-flex-wrap-reverse.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/ttwf-reftest-flex-wrap-reverse.html
index 33b8fea..9eb0d7d 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/ttwf-reftest-flex-wrap-reverse.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/ttwf-reftest-flex-wrap-reverse.html
@@ -3,7 +3,7 @@
 <head>
     <title>CSS Flexible Box Test: flex-wrap proprety - wrap-reverse</title>
     <link rel="author" title="haosdent" href="mailto:haosdent@gmail.com">
-    <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-flex-wrap">
+    <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#flex-wrap-property">
     <link rel="match" href="reference/ttwf-reftest-flex-wrap-reverse-ref.html">
     <meta name="assert" content="Statement describing what the test case is asserting">
     <style type="text/css">
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/ttwf-reftest-flex-wrap.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/ttwf-reftest-flex-wrap.html
index 3d92015..d94f71d 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/ttwf-reftest-flex-wrap.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-flexbox-1/ttwf-reftest-flex-wrap.html
@@ -3,7 +3,7 @@
 <head>
     <title>CSS Flexible Box Test: flex-wrap proprety - wrap</title>
     <link rel="author" title="haosdent" href="mailto:haosdent@gmail.com">
-    <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#propdef-flex-wrap">
+    <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#flex-wrap-property">
     <link rel="match" href="reference/ttwf-reftest-flex-wrap-ref.html">
     <meta name="assert" content="Statement describing what the test case is asserting">
     <style type="text/css">
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-001.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-001.html
deleted file mode 100644
index b25b4713..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-001.html
+++ /dev/null
@@ -1,57 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-<title>CSS Grid Layout Test: Self-Alignment and stretch on fixed-sized tracks</title>
-<link rel="author" title="Javier Fernandez Garcia-Boente" href="mailto:jfernandez@igalia.com">
-<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-align-self">
-<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-justify-self">
-<link rel="help" href="https://drafts.csswg.org/css-align/#valdef-justify-self-stretch">
-<link rel="help" href="https://drafts.csswg.org/css-align/#valdef-align-self-stretch">
-<meta name="assert" content="Grid items with 'stretch' value for align-self and/or justify-self are stretched along the column and/or row axis respectively; they will be sized as fit-content otherwise.">
-<style>
-.grid {
-  position: relative;
-  display: inline-grid;
-  grid-template-columns: 100px 150px;
-  grid-template-rows: 150px 100px;
-  font: 10px/1 Ahem;
-  background: grey;
-}
-.firstRowFirstColumn {
-  grid-row: 1;
-  grid-column: 1;
-  background: green;
-  justify-self: stretch;
-  align-self: start;
-}
-.firstRowSecondColumn {
-  grid-row: 1;
-  grid-column: 2;
-  background: blue;
-  justify-self: start;
-  align-self: stretch;
-}
-.secondRowFirstColumn {
-  grid-row: 2;
-  grid-column: 1;
-  background: yellow;
-  justify-self: start;
-  align-self: start;
-}
-.secondRowSecondColumn {
-  grid-row: 2;
-  grid-column: 2;
-  background: red;
-  justify-self: stretch;
-  align-self: stretch;
-}
-</style>
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="../support/check-layout-th.js"></script>
-<body onload="checkLayout('.grid')">
-<div class="grid">
-  <div data-offset-x="0"   data-offset-y="0"   data-expected-width="100" data-expected-height="10"  class="firstRowFirstColumn">X XX X</div>
-  <div data-offset-x="100" data-offset-y="0"   data-expected-width="60"  data-expected-height="150" class="firstRowSecondColumn">XX X<br>X XXX<br>X<br>XX XXX</div>
-  <div data-offset-x="0"   data-offset-y="150" data-expected-width="60"  data-expected-height="10"  class="secondRowFirstColumn">X XX X</div>
-  <div data-offset-x="100" data-offset-y="150" data-expected-width="150" data-expected-height="100" class="secondRowSecondColumn">XX X<br>X XXX<br>X<br>XX XXX</div>
-</div>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-002.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-002.html
deleted file mode 100644
index b9a354e..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-002.html
+++ /dev/null
@@ -1,61 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-<title>CSS Grid Layout Test: Self-Alignment and stretch on fixed-sized tracks</title>
-<link rel="author" title="Javier Fernandez Garcia-Boente" href="mailto:jfernandez@igalia.com">
-<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-align-self">
-<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-justify-self">
-<link rel="help" href="https://drafts.csswg.org/css-align/#valdef-justify-self-stretch">
-<link rel="help" href="https://drafts.csswg.org/css-align/#valdef-align-self-stretch">
-<meta name="assert" content="The stretched grid items along the column and/or row axis respect their defined margin-box's boundaries.">
-<style>
-.grid {
-  position: relative;
-  display: inline-grid;
-  grid-template-columns: 100px 150px;
-  grid-template-rows: 150px 100px;
-  font: 10px/1 Ahem;
-  background: grey;
-}
-.firstRowFirstColumn {
-  grid-row: 1;
-  grid-column: 1;
-  background: green;
-  justify-self: stretch;
-  align-self: start;
-  margin-right: 10px;
-}
-.firstRowSecondColumn {
-  grid-row: 1;
-  grid-column: 2;
-  background: blue;
-  justify-self: start;
-  align-self: stretch;
-  margin-bottom: 20px;
-}
-.secondRowFirstColumn {
-  grid-row: 2;
-  grid-column: 1;
-  background: yellow;
-  justify-self: start;
-  align-self: start;
-}
-.secondRowSecondColumn {
-  grid-row: 2;
-  grid-column: 2;
-  background: red;
-  justify-self: stretch;
-  align-self: stretch;
-  margin-right: 20px;
-  margin-bottom: 10px;
-}
-</style>
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="../support/check-layout-th.js"></script>
-<body onload="checkLayout('.grid')">
-<div class="grid">
-  <div data-offset-x="0"   data-offset-y="0"   data-expected-width="90"  data-expected-height="10"  class="firstRowFirstColumn">X XX X</div>
-  <div data-offset-x="100" data-offset-y="0"   data-expected-width="60"  data-expected-height="130" class="firstRowSecondColumn">XX X<br>X XXX<br>X<br>XX XXX</div>
-  <div data-offset-x="0"   data-offset-y="150" data-expected-width="60"  data-expected-height="10"  class="secondRowFirstColumn">X XX X</div>
-  <div data-offset-x="100" data-offset-y="150" data-expected-width="130" data-expected-height="90"  class="secondRowSecondColumn">XX X<br>X XXX<br>X<br>XX XXX</div>
-</div>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-003.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-003.html
deleted file mode 100644
index 0af4081..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-003.html
+++ /dev/null
@@ -1,62 +0,0 @@
- <!DOCTYPE html>
-<meta charset="utf-8">
-<title>CSS Grid Layout Test: Self-Alignment and stretch on fixed-sized tracks</title>
-<link rel="author" title="Javier Fernandez Garcia-Boente" href="mailto:jfernandez@igalia.com">
-<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-align-self">
-<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-justify-self">
-<link rel="help" href="https://drafts.csswg.org/css-align/#valdef-justify-self-stretch">
-<link rel="help" href="https://drafts.csswg.org/css-align/#valdef-align-self-stretch">
-<meta name="assert" content="The stretched grid items along the column and/or row axis include their defined border-box.">
-<style>
-.grid {
-  position: relative;
-  display: inline-grid;
-  grid-template-columns: 100px 150px;
-  grid-template-rows: 150px 100px;
-  font: 10px/1 Ahem;
-  background: grey;
-}
-.grid > div { border-style: solid; }
-.firstRowFirstColumn {
-  grid-row: 1;
-  grid-column: 1;
-  background: green;
-  justify-self: stretch;
-  align-self: start;
-  border-width: 0px 10px 0px 0px;
-}
-.firstRowSecondColumn {
-  grid-row: 1;
-  grid-column: 2;
-  background: blue;
-  justify-self: start;
-  align-self: stretch;
-  border-width: 0px 0px 20px 0px;
-}
-.secondRowFirstColumn {
-  grid-row: 2;
-  grid-column: 1;
-  background: yellow;
-  justify-self: start;
-  align-self: start;
-  border-width: 0px 0px 0px 0px;
-}
-.secondRowSecondColumn {
-  grid-row: 2;
-  grid-column: 2;
-  background: red;
-  justify-self: stretch;
-  align-self: stretch;
-  border-width: 0px 20px 10px 0px;
-}
-</style>
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="../support/check-layout-th.js"></script>
-<body onload="checkLayout('.grid')">
-<div class="grid">
-  <div data-offset-x="0"   data-offset-y="0"   data-expected-width="100" data-expected-height="10"  class="firstRowFirstColumn">X XX X</div>
-  <div data-offset-x="100" data-offset-y="0"   data-expected-width="60"  data-expected-height="150" class="firstRowSecondColumn">XX X<br>X XXX<br>X<br>XX XXX</div>
-  <div data-offset-x="0"   data-offset-y="150" data-expected-width="60"  data-expected-height="10"  class="secondRowFirstColumn">X XX X</div>
-  <div data-offset-x="100" data-offset-y="150" data-expected-width="150" data-expected-height="100" class="secondRowSecondColumn">XX X<br>X XXX<br>X<br>XX XXX</div>
-</div>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-004.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-004.html
deleted file mode 100644
index ad76f52..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-004.html
+++ /dev/null
@@ -1,61 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-<title>CSS Grid Layout Test: Self-Alignment and stretch on fixed-sized tracks</title>
-<link rel="author" title="Javier Fernandez Garcia-Boente" href="mailto:jfernandez@igalia.com">
-<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-align-self">
-<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-justify-self">
-<link rel="help" href="https://drafts.csswg.org/css-align/#valdef-justify-self-stretch">
-<link rel="help" href="https://drafts.csswg.org/css-align/#valdef-align-self-stretch">
-<meta name="assert" content="The stretched grid items along the column and/or row axis include their defined padding-box.">
-<style>
-.grid {
-  position: relative;
-  display: inline-grid;
-  grid-template-columns: 100px 150px;
-  grid-template-rows: 150px 100px;
-  font: 10px/1 Ahem;
-  background: grey;
-}
-.firstRowFirstColumn {
-  grid-row: 1;
-  grid-column: 1;
-  background: green;
-  justify-self: stretch;
-  align-self: start;
-  padding-right: 10px;
-}
-.firstRowSecondColumn {
-  grid-row: 1;
-  grid-column: 2;
-  background: blue;
-  justify-self: start;
-  align-self: stretch;
-  padding-bottom: 20px;
-}
-.secondRowFirstColumn {
-  grid-row: 2;
-  grid-column: 1;
-  background: yellow;
-  justify-self: start;
-  align-self: start;
-}
-.secondRowSecondColumn {
-  grid-row: 2;
-  grid-column: 2;
-  background: red;
-  justify-self: stretch;
-  align-self: stretch;
-  padding-right: 20px;
-  padding-bottom: 10px;
-}
-</style>
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="../support/check-layout-th.js"></script>
-<body onload="checkLayout('.grid')">
-<div class="grid">
-  <div data-offset-x="0"   data-offset-y="0"   data-expected-width="100" data-expected-height="10"  class="firstRowFirstColumn">X XX X</div>
-  <div data-offset-x="100" data-offset-y="0"   data-expected-width="60"  data-expected-height="150" class="firstRowSecondColumn">XX X<br>X XXX<br>X<br>XX XXX</div>
-  <div data-offset-x="0"   data-offset-y="150" data-expected-width="60"  data-expected-height="10"  class="secondRowFirstColumn">X XX X</div>
-  <div data-offset-x="100" data-offset-y="150" data-expected-width="150" data-expected-height="100" class="secondRowSecondColumn">XX X<br>X XXX<br>X<br>XX XXX</div>
-</div>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-005.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-005.html
deleted file mode 100644
index 68e794bd..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-005.html
+++ /dev/null
@@ -1,58 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-<title>CSS Grid Layout Test: Self-Alignment and stretch on fixed-sized tracks</title>
-<link rel="author" title="Javier Fernandez Garcia-Boente" href="mailto:jfernandez@igalia.com">
-<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-align-self">
-<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-justify-self">
-<link rel="help" href="https://drafts.csswg.org/css-align/#valdef-justify-self-stretch">
-<link rel="help" href="https://drafts.csswg.org/css-align/#valdef-align-self-stretch">
-<meta name="assert" content="Orthogonal grid items with 'stretch' value for align-self and/or justify-self are stretched along the column and/or row axis respectively; they will be sized as fit-content otherwise.">
-<style>
-.grid {
-  position: relative;
-  display: inline-grid;
-  grid-template-columns: 100px 150px;
-  grid-template-rows: 150px 100px;
-  font: 10px/1 Ahem;
-  background: grey;
-}
-.grid > div { writing-mode: vertical-lr; }
-.firstRowFirstColumn {
-  grid-row: 1;
-  grid-column: 1;
-  background: green;
-  justify-self: stretch;
-  align-self: start;
-}
-.firstRowSecondColumn {
-  grid-row: 1;
-  grid-column: 2;
-  background: blue;
-  justify-self: start;
-  align-self: stretch;
-}
-.secondRowFirstColumn {
-  grid-row: 2;
-  grid-column: 1;
-  background: yellow;
-  justify-self: start;
-  align-self: start;
-}
-.secondRowSecondColumn {
-  grid-row: 2;
-  grid-column: 2;
-  background: red;
-  justify-self: stretch;
-  align-self: stretch;
-}
-</style>
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="../support/check-layout-th.js"></script>
-<body onload="checkLayout('.grid')">
-<div class="grid">
-  <div data-offset-x="0"   data-offset-y="0"   data-expected-width="100" data-expected-height="60"  class="firstRowFirstColumn">X XX X</div>
-  <div data-offset-x="100" data-offset-y="0"   data-expected-width="40"  data-expected-height="150" class="firstRowSecondColumn">XX X<br>X XXX<br>X<br>XX XXX</div>
-  <div data-offset-x="0"   data-offset-y="150" data-expected-width="10"  data-expected-height="60"  class="secondRowFirstColumn">X XX X</div>
-  <div data-offset-x="100" data-offset-y="150" data-expected-width="150" data-expected-height="100" class="secondRowSecondColumn">XX X<br>X XXX<br>X<br>XX XXX</div>
-</div>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-006.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-006.html
deleted file mode 100644
index 94c65d0..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-006.html
+++ /dev/null
@@ -1,62 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-<title>CSS Grid Layout Test: Self-Alignment and stretch on fixed-sized tracks</title>
-<link rel="author" title="Javier Fernandez Garcia-Boente" href="mailto:jfernandez@igalia.com">
-<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-align-self">
-<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-justify-self">
-<link rel="help" href="https://drafts.csswg.org/css-align/#valdef-justify-self-stretch">
-<link rel="help" href="https://drafts.csswg.org/css-align/#valdef-align-self-stretch">
-<meta name="assert" content="The stretched orthogonal grid items along the column and/or row axis respect their defined margin-box's boundaries.">
-<style>
-.grid {
-  position: relative;
-  display: inline-grid;
-  grid-template-columns: 100px 150px;
-  grid-template-rows: 150px 100px;
-  font: 10px/1 Ahem;
-  background: grey;
-}
-.grid > div { writing-mode: vertical-lr; }
-.firstRowFirstColumn {
-  grid-row: 1;
-  grid-column: 1;
-  background: green;
-  justify-self: stretch;
-  align-self: start;
-  margin-right: 10px;
-}
-.firstRowSecondColumn {
-  grid-row: 1;
-  grid-column: 2;
-  background: blue;
-  justify-self: start;
-  align-self: stretch;
-  margin-bottom: 20px;
-}
-.secondRowFirstColumn {
-  grid-row: 2;
-  grid-column: 1;
-  background: yellow;
-  justify-self: start;
-  align-self: start;
-}
-.secondRowSecondColumn {
-  grid-row: 2;
-  grid-column: 2;
-  background: red;
-  justify-self: stretch;
-  align-self: stretch;
-  margin-right: 20px;
-  margin-bottom: 10px;
-}
-</style>
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="../support/check-layout-th.js"></script>
-<body onload="checkLayout('.grid')">
-<div class="grid">
-  <div data-offset-x="0"   data-offset-y="0"   data-expected-width="90"  data-expected-height="60"  class="firstRowFirstColumn">X XX X</div>
-  <div data-offset-x="100" data-offset-y="0"   data-expected-width="40"  data-expected-height="130" class="firstRowSecondColumn">XX X<br>X XXX<br>X<br>XX XXX</div>
-  <div data-offset-x="0"   data-offset-y="150" data-expected-width="10"  data-expected-height="60"  class="secondRowFirstColumn">X XX X</div>
-  <div data-offset-x="100" data-offset-y="150" data-expected-width="130" data-expected-height="90"  class="secondRowSecondColumn">XX X<br>X XXX<br>X<br>XX XXX</div>
-</div>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-007.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-007.html
deleted file mode 100644
index 8cb459ed9..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-007.html
+++ /dev/null
@@ -1,63 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-<title>CSS Grid Layout Test: Self-Alignment and stretch on fixed-sized tracks</title>
-<link rel="author" title="Javier Fernandez Garcia-Boente" href="mailto:jfernandez@igalia.com">
-<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-align-self">
-<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-justify-self">
-<link rel="help" href="https://drafts.csswg.org/css-align/#valdef-justify-self-stretch">
-<link rel="help" href="https://drafts.csswg.org/css-align/#valdef-align-self-stretch">
-<meta name="assert" content="The stretched orthogonal grid items along the column and/or row axis include their defined border-box.">
-<style>
-.grid {
-  position: relative;
-  display: inline-grid;
-  grid-template-columns: 100px 150px;
-  grid-template-rows: 150px 100px;
-  font: 10px/1 Ahem;
-  background: grey;
-}
-.grid > div { writing-mode: vertical-lr; }
-.grid > div { border-style: solid; }
-.firstRowFirstColumn {
-  grid-row: 1;
-  grid-column: 1;
-  background: green;
-  justify-self: stretch;
-  align-self: start;
-  border-width: 0px 10px 0px 0px;
-}
-.firstRowSecondColumn {
-  grid-row: 1;
-  grid-column: 2;
-  background: blue;
-  justify-self: start;
-  align-self: stretch;
-  border-width: 0px 0px 20px 0px;
-}
-.secondRowFirstColumn {
-  grid-row: 2;
-  grid-column: 1;
-  background: yellow;
-  justify-self: start;
-  align-self: start;
-  border-width: 0px 0px 0px 0px;
-}
-.secondRowSecondColumn {
-  grid-row: 2;
-  grid-column: 2;
-  background: red;
-  justify-self: stretch;
-  align-self: stretch;
-  border-width: 0px 20px 10px 0px;
-}
-</style>
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="../support/check-layout-th.js"></script>
-<body onload="checkLayout('.grid')">
-<div class="grid">
-  <div data-offset-x="0"   data-offset-y="0"   data-expected-width="100" data-expected-height="60"  class="firstRowFirstColumn">X XX X</div>
-  <div data-offset-x="100" data-offset-y="0"   data-expected-width="40"  data-expected-height="150" class="firstRowSecondColumn">XX X<br>X XXX<br>X<br>XX XXX</div>
-  <div data-offset-x="0"   data-offset-y="150" data-expected-width="10"  data-expected-height="60"  class="secondRowFirstColumn">X XX X</div>
-  <div data-offset-x="100" data-offset-y="150" data-expected-width="150" data-expected-height="100" class="secondRowSecondColumn">XX X<br>X XXX<br>X<br>XX XXX</div>
-</div>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-008.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-008.html
deleted file mode 100644
index 52337ee..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-008.html
+++ /dev/null
@@ -1,62 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-<title>CSS Grid Layout Test: Self-Alignment and stretch on fixed-sized tracks</title>
-<link rel="author" title="Javier Fernandez Garcia-Boente" href="mailto:jfernandez@igalia.com">
-<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-align-self">
-<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-justify-self">
-<link rel="help" href="https://drafts.csswg.org/css-align/#valdef-justify-self-stretch">
-<link rel="help" href="https://drafts.csswg.org/css-align/#valdef-align-self-stretch">
-<meta name="assert" content="The stretched orthogonal grid items along the column and/or row axis include their defined padding-box.">
-<style>
-.grid {
-  position: relative;
-  display: inline-grid;
-  grid-template-columns: 100px 150px;
-  grid-template-rows: 150px 100px;
-  font: 10px/1 Ahem;
-  background: grey;
-}
-.grid > div { writing-mode: vertical-lr; }
-.firstRowFirstColumn {
-  grid-row: 1;
-  grid-column: 1;
-  background: green;
-  justify-self: stretch;
-  align-self: start;
-  padding-right: 10px;
-}
-.firstRowSecondColumn {
-  grid-row: 1;
-  grid-column: 2;
-  background: blue;
-  justify-self: start;
-  align-self: stretch;
-  padding-bottom: 20px;
-}
-.secondRowFirstColumn {
-  grid-row: 2;
-  grid-column: 1;
-  background: yellow;
-  justify-self: start;
-  align-self: start;
-}
-.secondRowSecondColumn {
-  grid-row: 2;
-  grid-column: 2;
-  background: red;
-  justify-self: stretch;
-  align-self: stretch;
-  padding-right: 20px;
-  padding-bottom: 10px;
-}
-</style>
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="../support/check-layout-th.js"></script>
-<body onload="checkLayout('.grid')">
-<div class="grid">
-  <div data-offset-x="0"   data-offset-y="0"   data-expected-width="100" data-expected-height="60"  class="firstRowFirstColumn">X XX X</div>
-  <div data-offset-x="100" data-offset-y="0"   data-expected-width="40"  data-expected-height="150" class="firstRowSecondColumn">XX X<br>X XXX<br>X<br>XX XXX</div>
-  <div data-offset-x="0"   data-offset-y="150" data-expected-width="10"  data-expected-height="60"  class="secondRowFirstColumn">X XX X</div>
-  <div data-offset-x="100" data-offset-y="150" data-expected-width="150" data-expected-height="100" class="secondRowSecondColumn">XX X<br>X XXX<br>X<br>XX XXX</div>
-</div>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-009.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-009.html
deleted file mode 100644
index 22bcc707..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-009.html
+++ /dev/null
@@ -1,57 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-<title>CSS Grid Layout Test: Self-Alignment and stretch on auto-sized tracks</title>
-<link rel="author" title="Javier Fernandez Garcia-Boente" href="mailto:jfernandez@igalia.com">
-<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-align-self">
-<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-justify-self">
-<link rel="help" href="https://drafts.csswg.org/css-align/#valdef-justify-self-stretch">
-<link rel="help" href="https://drafts.csswg.org/css-align/#valdef-align-self-stretch">
-<meta name="assert" content="Grid items with 'stretch' value for align-self and/or justify-self are stretched along the column and/or row axis respectively; they will be sized as fit-content otherwise.">
-<style>
-.grid {
-  position: relative;
-  display: inline-grid;
-  font: 20px/1 Ahem;
-  background: grey;
-  width: 250px;
-  height: 250px;
-}
-.firstRowFirstColumn {
-  grid-row: 1;
-  grid-column: 1;
-  background: green;
-  justify-self: stretch;
-  align-self: start;
-}
-.firstRowSecondColumn {
-  grid-row: 1;
-  grid-column: 2;
-  background: blue;
-  justify-self: start;
-  align-self: stretch;
-}
-.secondRowFirstColumn {
-  grid-row: 2;
-  grid-column: 1;
-  background: yellow;
-  justify-self: start;
-  align-self: start;
-}
-.secondRowSecondColumn {
-  grid-row: 2;
-  grid-column: 2;
-  background: red;
-  justify-self: stretch;
-  align-self: stretch;
-}
-</style>
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="../support/check-layout-th.js"></script>
-<body onload="checkLayout('.grid')">
-<div class="grid">
-  <div data-offset-x="0"   data-offset-y="0"   data-expected-width="125" data-expected-height="20"  class="firstRowFirstColumn">XX X</div>
-  <div data-offset-x="125" data-offset-y="0"   data-expected-width="80"  data-expected-height="125" class="firstRowSecondColumn">XX X</div>
-  <div data-offset-x="0"   data-offset-y="125" data-expected-width="80"  data-expected-height="20"  class="secondRowFirstColumn">XX X</div>
-  <div data-offset-x="125" data-offset-y="125" data-expected-width="125" data-expected-height="125" class="secondRowSecondColumn">XX X</div>
-</div>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-010.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-010.html
deleted file mode 100644
index 02e138e..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-010.html
+++ /dev/null
@@ -1,61 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-<title>CSS Grid Layout Test: Self-Alignment and stretch on auto-sized tracks</title>
-<link rel="author" title="Javier Fernandez Garcia-Boente" href="mailto:jfernandez@igalia.com">
-<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-align-self">
-<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-justify-self">
-<link rel="help" href="https://drafts.csswg.org/css-align/#valdef-justify-self-stretch">
-<link rel="help" href="https://drafts.csswg.org/css-align/#valdef-align-self-stretch">
-<meta name="assert" content="The stretched grid items along the column and/or row axis respect their defined margin-box's boundaries.">
-<style>
-.grid {
-  position: relative;
-  display: inline-grid;
-  font: 20px/1 Ahem;
-  background: grey;
-  width: 250px;
-  height: 250px;
-}
-.firstRowFirstColumn {
-  grid-row: 1;
-  grid-column: 1;
-  background: green;
-  justify-self: stretch;
-  align-self: start;
-  margin-right: 10px;
-}
-.firstRowSecondColumn {
-  grid-row: 1;
-  grid-column: 2;
-  background: blue;
-  justify-self: start;
-  align-self: stretch;
-  margin-bottom: 20px;
-}
-.secondRowFirstColumn {
-  grid-row: 2;
-  grid-column: 1;
-  background: yellow;
-  justify-self: start;
-  align-self: start;
-}
-.secondRowSecondColumn {
-  grid-row: 2;
-  grid-column: 2;
-  background: red;
-  justify-self: stretch;
-  align-self: stretch;
-  margin-right: 20px;
-  margin-bottom: 10px;
-}
-</style>
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="../support/check-layout-th.js"></script>
-<body onload="checkLayout('.grid')">
-<div class="grid">
-  <div data-offset-x="0"   data-offset-y="0"   data-expected-width="110" data-expected-height="20"  class="firstRowFirstColumn">XX X</div>
-  <div data-offset-x="120" data-offset-y="0"   data-expected-width="80"  data-expected-height="110" class="firstRowSecondColumn">XX X</div>
-  <div data-offset-x="0"   data-offset-y="130" data-expected-width="80"  data-expected-height="20"  class="secondRowFirstColumn">XX X</div>
-  <div data-offset-x="120" data-offset-y="130" data-expected-width="110" data-expected-height="110" class="secondRowSecondColumn">XX X</div>
-</div>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-011.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-011.html
deleted file mode 100644
index 060e025..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-011.html
+++ /dev/null
@@ -1,62 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-<title>CSS Grid Layout Test: Self-Alignment and stretch on auto-sized tracks</title>
-<link rel="author" title="Javier Fernandez Garcia-Boente" href="mailto:jfernandez@igalia.com">
-<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-align-self">
-<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-justify-self">
-<link rel="help" href="https://drafts.csswg.org/css-align/#valdef-justify-self-stretch">
-<link rel="help" href="https://drafts.csswg.org/css-align/#valdef-align-self-stretch">
-<meta name="assert" content="The stretched grid items along the column and/or row axis respect their defined margin-box's boundaries.">
-<style>
-.grid {
-  position: relative;
-  display: inline-grid;
-  font: 20px/1 Ahem;
-  background: grey;
-  width: 250px;
-  height: 250px;
-}
-.grid > div { border-style: solid; }
-.firstRowFirstColumn {
-  grid-row: 1;
-  grid-column: 1;
-  background: green;
-  justify-self: stretch;
-  align-self: start;
-  border-width: 0px 10px 0px 0px;
-}
-.firstRowSecondColumn {
-  grid-row: 1;
-  grid-column: 2;
-  background: blue;
-  justify-self: start;
-  align-self: stretch;
-  border-width: 0px 0px 20px 0px;
-}
-.secondRowFirstColumn {
-  grid-row: 2;
-  grid-column: 1;
-  background: yellow;
-  justify-self: start;
-  align-self: start;
-  border-width: 0px 0px 0px 0px;
-}
-.secondRowSecondColumn {
-  grid-row: 2;
-  grid-column: 2;
-  background: red;
-  justify-self: stretch;
-  align-self: stretch;
-  border-width: 0px 20px 10px 0px;
-}
-</style>
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="../support/check-layout-th.js"></script>
-<body onload="checkLayout('.grid')">
-<div class="grid">
-  <div data-offset-x="0"   data-offset-y="0"   data-expected-width="120" data-expected-height="20"  class="firstRowFirstColumn">XX X</div>
-  <div data-offset-x="120" data-offset-y="0"   data-expected-width="80"  data-expected-height="130" class="firstRowSecondColumn">XX X</div>
-  <div data-offset-x="0"   data-offset-y="130" data-expected-width="80"  data-expected-height="20"  class="secondRowFirstColumn">XX X</div>
-  <div data-offset-x="120" data-offset-y="130" data-expected-width="130" data-expected-height="120" class="secondRowSecondColumn">XX X</div>
-</div>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-012.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-012.html
deleted file mode 100644
index 422d2eb0..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-012.html
+++ /dev/null
@@ -1,61 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-<title>CSS Grid Layout Test: Self-Alignment and stretch on auto-sized tracks</title>
-<link rel="author" title="Javier Fernandez Garcia-Boente" href="mailto:jfernandez@igalia.com">
-<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-align-self">
-<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-justify-self">
-<link rel="help" href="https://drafts.csswg.org/css-align/#valdef-justify-self-stretch">
-<link rel="help" href="https://drafts.csswg.org/css-align/#valdef-align-self-stretch">
-<meta name="assert" content="The stretched grid items along the column and/or row axis include their defined padding-box.">
-<style>
-.grid {
-  position: relative;
-  display: inline-grid;
-  font: 20px/1 Ahem;
-  background: grey;
-  width: 250px;
-  height: 250px;
-}
-.firstRowFirstColumn {
-  grid-row: 1;
-  grid-column: 1;
-  background: green;
-  justify-self: stretch;
-  align-self: start;
-  padding-right: 10px;
-}
-.firstRowSecondColumn {
-  grid-row: 1;
-  grid-column: 2;
-  background: blue;
-  justify-self: start;
-  align-self: stretch;
-  padding-bottom: 20px;
-}
-.secondRowFirstColumn {
-  grid-row: 2;
-  grid-column: 1;
-  background: yellow;
-  justify-self: start;
-  align-self: start;
-}
-.secondRowSecondColumn {
-  grid-row: 2;
-  grid-column: 2;
-  background: red;
-  justify-self: stretch;
-  align-self: stretch;
-  padding-right: 20px;
-  padding-bottom: 10px;
-}
-</style>
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="../support/check-layout-th.js"></script>
-<body onload="checkLayout('.grid')">
-<div class="grid">
-  <div data-offset-x="0"   data-offset-y="0"   data-expected-width="120" data-expected-height="20"  class="firstRowFirstColumn">XX X</div>
-  <div data-offset-x="120" data-offset-y="0"   data-expected-width="80"  data-expected-height="130" class="firstRowSecondColumn">XX X</div>
-  <div data-offset-x="0"   data-offset-y="130" data-expected-width="80"  data-expected-height="20"  class="secondRowFirstColumn">XX X</div>
-  <div data-offset-x="120" data-offset-y="130" data-expected-width="130" data-expected-height="120" class="secondRowSecondColumn">XX X</div>
-</div>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-013.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-013.html
deleted file mode 100644
index ba88de0..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-013.html
+++ /dev/null
@@ -1,58 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-<title>CSS Grid Layout Test: Self-Alignment and stretch on auto-sized tracks</title>
-<link rel="author" title="Javier Fernandez Garcia-Boente" href="mailto:jfernandez@igalia.com">
-<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-align-self">
-<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-justify-self">
-<link rel="help" href="https://drafts.csswg.org/css-align/#valdef-justify-self-stretch">
-<link rel="help" href="https://drafts.csswg.org/css-align/#valdef-align-self-stretch">
-<meta name="assert" content="Orthogonal grid items with 'stretch' value for align-self and/or justify-self are stretched along the column and/or row axis respectively; they will be sized as fit-content otherwise.">
-<style>
-.grid {
-  position: relative;
-  display: inline-grid;
-  font: 20px/1 Ahem;
-  background: grey;
-  width: 250px;
-  height: 250px;
-}
-.grid > div { writing-mode: vertical-lr; }
-.firstRowFirstColumn {
-  grid-row: 1;
-  grid-column: 1;
-  background: green;
-  justify-self: stretch;
-  align-self: start;
-}
-.firstRowSecondColumn {
-  grid-row: 1;
-  grid-column: 2;
-  background: blue;
-  justify-self: start;
-  align-self: stretch;
-}
-.secondRowFirstColumn {
-  grid-row: 2;
-  grid-column: 1;
-  background: yellow;
-  justify-self: start;
-  align-self: start;
-}
-.secondRowSecondColumn {
-  grid-row: 2;
-  grid-column: 2;
-  background: red;
-  justify-self: stretch;
-  align-self: stretch;
-}
-</style>
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="../support/check-layout-th.js"></script>
-<body onload="checkLayout('.grid')">
-<div class="grid">
-  <div data-offset-x="0"   data-offset-y="0"   data-expected-width="125" data-expected-height="80"  class="firstRowFirstColumn">XX X</div>
-  <div data-offset-x="125" data-offset-y="0"   data-expected-width="20"  data-expected-height="125" class="firstRowSecondColumn">XX X</div>
-  <div data-offset-x="0"   data-offset-y="125" data-expected-width="20"  data-expected-height="80"  class="secondRowFirstColumn">XX X</div>
-  <div data-offset-x="125" data-offset-y="125" data-expected-width="125" data-expected-height="125" class="secondRowSecondColumn">XX X</div>
-</div>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-014.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-014.html
deleted file mode 100644
index 9b3d64d..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-014.html
+++ /dev/null
@@ -1,62 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-<title>CSS Grid Layout Test: Self-Alignment and stretch on auto-sized tracks</title>
-<link rel="author" title="Javier Fernandez Garcia-Boente" href="mailto:jfernandez@igalia.com">
-<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-align-self">
-<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-justify-self">
-<link rel="help" href="https://drafts.csswg.org/css-align/#valdef-justify-self-stretch">
-<link rel="help" href="https://drafts.csswg.org/css-align/#valdef-align-self-stretch">
-<meta name="assert" content="The stretched orthogonal grid items along the column and/or row axis respect their defined margin-box's boundaries.">
-<style>
-.grid {
-  position: relative;
-  display: inline-grid;
-  font: 20px/1 Ahem;
-  background: grey;
-  width: 250px;
-  height: 250px;
-}
-.grid > div { writing-mode: vertical-lr; }
-.firstRowFirstColumn {
-  grid-row: 1;
-  grid-column: 1;
-  background: green;
-  justify-self: stretch;
-  align-self: start;
-  margin-right: 10px;
-}
-.firstRowSecondColumn {
-  grid-row: 1;
-  grid-column: 2;
-  background: blue;
-  justify-self: start;
-  align-self: stretch;
-  margin-bottom: 20px;
-}
-.secondRowFirstColumn {
-  grid-row: 2;
-  grid-column: 1;
-  background: yellow;
-  justify-self: start;
-  align-self: start;
-}
-.secondRowSecondColumn {
-  grid-row: 2;
-  grid-column: 2;
-  background: red;
-  justify-self: stretch;
-  align-self: stretch;
-  margin-right: 20px;
-  margin-bottom: 10px;
-}
-</style>
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="../support/check-layout-th.js"></script>
-<body onload="checkLayout('.grid')">
-<div class="grid">
-  <div data-offset-x="0"   data-offset-y="0"   data-expected-width="110" data-expected-height="80"  class="firstRowFirstColumn">XX X</div>
-  <div data-offset-x="120" data-offset-y="0"   data-expected-width="20"  data-expected-height="110" class="firstRowSecondColumn">XX X</div>
-  <div data-offset-x="0"   data-offset-y="130" data-expected-width="20"  data-expected-height="80"  class="secondRowFirstColumn">XX X</div>
-  <div data-offset-x="120" data-offset-y="130" data-expected-width="110" data-expected-height="110" class="secondRowSecondColumn">XX X</div>
-</div>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-015.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-015.html
deleted file mode 100644
index c7290f7..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-015.html
+++ /dev/null
@@ -1,63 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-<title>CSS Grid Layout Test: Self-Alignment and stretch on auto-sized tracks</title>
-<link rel="author" title="Javier Fernandez Garcia-Boente" href="mailto:jfernandez@igalia.com">
-<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-align-self">
-<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-justify-self">
-<link rel="help" href="https://drafts.csswg.org/css-align/#valdef-justify-self-stretch">
-<link rel="help" href="https://drafts.csswg.org/css-align/#valdef-align-self-stretch">
-<meta name="assert" content="The stretched orthogonal grid items along the column and/or row axis include their defined border-box.">
-<style>
-.grid {
-  position: relative;
-  display: inline-grid;
-  font: 20px/1 Ahem;
-  background: grey;
-  width: 250px;
-  height: 250px;
-}
-.grid > div { writing-mode: vertical-lr; }
-.grid > div { border-style: solid; }
-.firstRowFirstColumn {
-  grid-row: 1;
-  grid-column: 1;
-  background: green;
-  justify-self: stretch;
-  align-self: start;
-  border-width: 0px 10px 0px 0px;
-}
-.firstRowSecondColumn {
-  grid-row: 1;
-  grid-column: 2;
-  background: blue;
-  justify-self: start;
-  align-self: stretch;
-  border-width: 0px 0px 20px 0px;
-}
-.secondRowFirstColumn {
-  grid-row: 2;
-  grid-column: 1;
-  background: yellow;
-  justify-self: start;
-  align-self: start;
-  border-width: 0px 0px 0px 0px;
-}
-.secondRowSecondColumn {
-  grid-row: 2;
-  grid-column: 2;
-  background: red;
-  justify-self: stretch;
-  align-self: stretch;
-  border-width: 0px 20px 10px 0px;
-}
-</style>
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="../support/check-layout-th.js"></script>
-<body onload="checkLayout('.grid')">
-<div class="grid">
-  <div data-offset-x="0"   data-offset-y="0"   data-expected-width="120" data-expected-height="80"  class="firstRowFirstColumn">XX X</div>
-  <div data-offset-x="120" data-offset-y="0"   data-expected-width="20"  data-expected-height="130" class="firstRowSecondColumn">XX X</div>
-  <div data-offset-x="0"   data-offset-y="130" data-expected-width="20"  data-expected-height="80"  class="secondRowFirstColumn">XX X</div>
-  <div data-offset-x="120" data-offset-y="130" data-expected-width="130" data-expected-height="120" class="secondRowSecondColumn">XX X</div>
-</div>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-016.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-016.html
deleted file mode 100644
index 1365b709..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-016.html
+++ /dev/null
@@ -1,61 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-<title>CSS Grid Layout Test: Self-Alignment and stretch on auto-sized tracks</title>
-<link rel="author" title="Javier Fernandez Garcia-Boente" href="mailto:jfernandez@igalia.com">
-<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-align-self">
-<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-justify-self">
-<link rel="help" href="https://drafts.csswg.org/css-align/#valdef-justify-self-stretch">
-<meta name="assert" content="The stretched orthogonal grid items along the column and/or row axis include their defined padding-box.">
-<style>
-.grid {
-  position: relative;
-  display: inline-grid;
-  font: 20px/1 Ahem;
-  background: grey;
-  width: 250px;
-  height: 250px;
-}
-.grid > div { writing-mode: vertical-lr; }
-.firstRowFirstColumn {
-  grid-row: 1;
-  grid-column: 1;
-  background: green;
-  justify-self: stretch;
-  align-self: start;
-  padding-right: 10px;
-}
-.firstRowSecondColumn {
-  grid-row: 1;
-  grid-column: 2;
-  background: blue;
-  justify-self: start;
-  align-self: stretch;
-  padding-bottom: 20px;
-}
-.secondRowFirstColumn {
-  grid-row: 2;
-  grid-column: 1;
-  background: yellow;
-  justify-self: start;
-  align-self: start;
-}
-.secondRowSecondColumn {
-  grid-row: 2;
-  grid-column: 2;
-  background: red;
-  justify-self: stretch;
-  align-self: stretch;
-  padding-right: 20px;
-  padding-bottom: 10px;
-}
-</style>
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="../support/check-layout-th.js"></script>
-<body onload="checkLayout('.grid')">
-<div class="grid">
-  <div data-offset-x="0"   data-offset-y="0"   data-expected-width="120" data-expected-height="80"  class="firstRowFirstColumn">XX X</div>
-  <div data-offset-x="120" data-offset-y="0"   data-expected-width="20"  data-expected-height="130" class="firstRowSecondColumn">XX X</div>
-  <div data-offset-x="0"   data-offset-y="130" data-expected-width="20"  data-expected-height="80"  class="secondRowFirstColumn">XX X</div>
-  <div data-offset-x="120" data-offset-y="130" data-expected-width="130" data-expected-height="120" class="secondRowSecondColumn">XX X</div>
-</div>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-vertical-lr-001.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-vertical-lr-001.html
deleted file mode 100644
index ac300a5..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-vertical-lr-001.html
+++ /dev/null
@@ -1,58 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-<title>CSS Grid Layout Test: Self-Alignment and stretch on fixed-sized tracks</title>
-<link rel="author" title="Javier Fernandez Garcia-Boente" href="mailto:jfernandez@igalia.com">
-<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-align-self">
-<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-justify-self">
-<link rel="help" href="https://drafts.csswg.org/css-align/#valdef-justify-self-stretch">
-<link rel="help" href="https://drafts.csswg.org/css-align/#valdef-align-self-stretch">
-<meta name="assert" content="Grid items with 'stretch' value for align-self and/or justify-self are stretched along the column and/or row axis respectively; they will be sized as fit-content otherwise.">
-<style>
-.grid {
-  position: relative;
-  display: inline-grid;
-  grid-template-columns: 100px 150px;
-  grid-template-rows: 150px 100px;
-  font: 10px/1 Ahem;
-  background: grey;
-  writing-mode: vertical-lr;
-}
-.firstRowFirstColumn {
-  grid-row: 1;
-  grid-column: 1;
-  background: green;
-  justify-self: stretch;
-  align-self: start;
-}
-.firstRowSecondColumn {
-  grid-row: 1;
-  grid-column: 2;
-  background: blue;
-  justify-self: start;
-  align-self: stretch;
-}
-.secondRowFirstColumn {
-  grid-row: 2;
-  grid-column: 1;
-  background: yellow;
-  justify-self: start;
-  align-self: start;
-}
-.secondRowSecondColumn {
-  grid-row: 2;
-  grid-column: 2;
-  background: red;
-  justify-self: stretch;
-  align-self: stretch;
-}
-</style>
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="../support/check-layout-th.js"></script>
-<body onload="checkLayout('.grid')">
-<div class="grid">
-  <div data-offset-x="0"   data-offset-y="0"   data-expected-width="10"  data-expected-height="100" class="firstRowFirstColumn">X XX X</div>
-  <div data-offset-x="0"   data-offset-y="100" data-expected-width="150" data-expected-height="60"  class="firstRowSecondColumn">XX X<br>X XXX<br>X<br>XX XXX</div>
-  <div data-offset-x="150" data-offset-y="0"   data-expected-width="10"  data-expected-height="60"  class="secondRowFirstColumn">X XX X</div>
-  <div data-offset-x="150" data-offset-y="100" data-expected-width="100" data-expected-height="150" class="secondRowSecondColumn">XX X<br>X XXX<br>X<br>XX XXX</div>
-</div>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-vertical-lr-002.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-vertical-lr-002.html
deleted file mode 100644
index 00e4ca7..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-vertical-lr-002.html
+++ /dev/null
@@ -1,62 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-<title>CSS Grid Layout Test: Self-Alignment and stretch on fixed-sized tracks</title>
-<link rel="author" title="Javier Fernandez Garcia-Boente" href="mailto:jfernandez@igalia.com">
-<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-align-self">
-<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-justify-self">
-<link rel="help" href="https://drafts.csswg.org/css-align/#valdef-justify-self-stretch">
-<link rel="help" href="https://drafts.csswg.org/css-align/#valdef-align-self-stretch">
-<meta name="assert" content="The stretched grid items along the column and/or row axis respect their defined margin-box's boundaries.">
-<style>
-.grid {
-  position: relative;
-  display: inline-grid;
-  grid-template-columns: 100px 150px;
-  grid-template-rows: 150px 100px;
-  font: 10px/1 Ahem;
-  background: grey;
-  writing-mode: vertical-lr;
-}
-.firstRowFirstColumn {
-  grid-row: 1;
-  grid-column: 1;
-  background: green;
-  justify-self: stretch;
-  align-self: start;
-  margin-bottom: 10px;
-}
-.firstRowSecondColumn {
-  grid-row: 1;
-  grid-column: 2;
-  background: blue;
-  justify-self: start;
-  align-self: stretch;
-  margin-right: 20px;
-}
-.secondRowFirstColumn {
-  grid-row: 2;
-  grid-column: 1;
-  background: yellow;
-  justify-self: start;
-  align-self: start;
-}
-.secondRowSecondColumn {
-  grid-row: 2;
-  grid-column: 2;
-  background: red;
-  justify-self: stretch;
-  align-self: stretch;
-  margin-bottom: 20px;
-  margin-right: 10px;
-}
-</style>
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="../support/check-layout-th.js"></script>
-<body onload="checkLayout('.grid')">
-<div class="grid">
-  <div data-offset-x="0"   data-offset-y="0"   data-expected-width="10"  data-expected-height="90"  class="firstRowFirstColumn">X XX X</div>
-  <div data-offset-x="0"   data-offset-y="100" data-expected-width="130" data-expected-height="60"  class="firstRowSecondColumn">XX X<br>X XXX<br>X<br>XX XXX</div>
-  <div data-offset-x="150" data-offset-y="0"   data-expected-width="10"  data-expected-height="60"  class="secondRowFirstColumn">X XX X</div>
-  <div data-offset-x="150" data-offset-y="100" data-expected-width="90"  data-expected-height="130" class="secondRowSecondColumn">XX X<br>X XXX<br>X<br>XX XXX</div>
-</div>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-vertical-lr-003.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-vertical-lr-003.html
deleted file mode 100644
index dd96194..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-vertical-lr-003.html
+++ /dev/null
@@ -1,63 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-<title>CSS Grid Layout Test: Self-Alignment and stretch on fixed-sized tracks</title>
-<link rel="author" title="Javier Fernandez Garcia-Boente" href="mailto:jfernandez@igalia.com">
-<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-align-self">
-<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-justify-self">
-<link rel="help" href="https://drafts.csswg.org/css-align/#valdef-justify-self-stretch">
-<link rel="help" href="https://drafts.csswg.org/css-align/#valdef-align-self-stretch">
-<meta name="assert" content="The stretched grid items along the column and/or row axis include their defined border-box.">
-<style>
-.grid {
-  position: relative;
-  display: inline-grid;
-  grid-template-columns: 100px 150px;
-  grid-template-rows: 150px 100px;
-  font: 10px/1 Ahem;
-  background: grey;
-  writing-mode: vertical-lr;
-}
-.grid > div { border-style: solid; }
-.firstRowFirstColumn {
-  grid-row: 1;
-  grid-column: 1;
-  background: green;
-  justify-self: stretch;
-  align-self: start;
-  border-width: 0px 0px 10px 0px;
-}
-.firstRowSecondColumn {
-  grid-row: 1;
-  grid-column: 2;
-  background: blue;
-  justify-self: start;
-  align-self: stretch;
-  border-width: 0px 20px 0px 0px;
-}
-.secondRowFirstColumn {
-  grid-row: 2;
-  grid-column: 1;
-  background: yellow;
-  justify-self: start;
-  align-self: start;
-  border-width: 0px 0px 0px 0px;
-}
-.secondRowSecondColumn {
-  grid-row: 2;
-  grid-column: 2;
-  background: red;
-  justify-self: stretch;
-  align-self: stretch;
-  border-width: 0px 10px 20px 0px;
-}
-</style>
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="../support/check-layout-th.js"></script>
-<body onload="checkLayout('.grid')">
-<div class="grid">
-  <div data-offset-x="0"   data-offset-y="0"   data-expected-width="10"  data-expected-height="100" class="firstRowFirstColumn">X XX X</div>
-  <div data-offset-x="0"   data-offset-y="100" data-expected-width="150" data-expected-height="60"  class="firstRowSecondColumn">XX X<br>X XXX<br>X<br>XX XXX</div>
-  <div data-offset-x="150" data-offset-y="0"   data-expected-width="10"  data-expected-height="60"  class="secondRowFirstColumn">X XX X</div>
-  <div data-offset-x="150" data-offset-y="100" data-expected-width="100" data-expected-height="150" class="secondRowSecondColumn">XX X<br>X XXX<br>X<br>XX XXX</div>
-</div>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-vertical-lr-004.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-vertical-lr-004.html
deleted file mode 100644
index 8b5882c..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-vertical-lr-004.html
+++ /dev/null
@@ -1,62 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-<title>CSS Grid Layout Test: Self-Alignment and stretch on fixed-sized tracks</title>
-<link rel="author" title="Javier Fernandez Garcia-Boente" href="mailto:jfernandez@igalia.com">
-<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-align-self">
-<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-justify-self">
-<link rel="help" href="https://drafts.csswg.org/css-align/#valdef-justify-self-stretch">
-<link rel="help" href="https://drafts.csswg.org/css-align/#valdef-align-self-stretch">
-<meta name="assert" content="The stretched grid items along the column and/or row axis include their defined padding-box.">
-<style>
-.grid {
-  position: relative;
-  display: inline-grid;
-  grid-template-columns: 100px 150px;
-  grid-template-rows: 150px 100px;
-  font: 10px/1 Ahem;
-  background: grey;
-  writing-mode: vertical-lr;
-}
-.firstRowFirstColumn {
-  grid-row: 1;
-  grid-column: 1;
-  background: green;
-  justify-self: stretch;
-  align-self: start;
-  padding-bottom: 10px;
-}
-.firstRowSecondColumn {
-  grid-row: 1;
-  grid-column: 2;
-  background: blue;
-  justify-self: start;
-  align-self: stretch;
-  padding-right: 20px;
-}
-.secondRowFirstColumn {
-  grid-row: 2;
-  grid-column: 1;
-  background: yellow;
-  justify-self: start;
-  align-self: start;
-}
-.secondRowSecondColumn {
-  grid-row: 2;
-  grid-column: 2;
-  background: red;
-  justify-self: stretch;
-  align-self: stretch;
-  padding-bottom: 20px;
-  padding-right: 10px;
-}
-</style>
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="../support/check-layout-th.js"></script>
-<body onload="checkLayout('.grid')">
-<div class="grid">
-  <div data-offset-x="0"   data-offset-y="0"   data-expected-width="10"  data-expected-height="100" class="firstRowFirstColumn">X XX X</div>
-  <div data-offset-x="0"   data-offset-y="100" data-expected-width="150" data-expected-height="60"  class="firstRowSecondColumn">XX X<br>X XXX<br>X<br>XX XXX</div>
-  <div data-offset-x="150" data-offset-y="0"   data-expected-width="10"  data-expected-height="60"  class="secondRowFirstColumn">X XX X</div>
-  <div data-offset-x="150" data-offset-y="100" data-expected-width="100" data-expected-height="150" class="secondRowSecondColumn">XX X<br>X XXX<br>X<br>XX XXX</div>
-</div>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-vertical-lr-005.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-vertical-lr-005.html
deleted file mode 100644
index 4b29aa7c..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-vertical-lr-005.html
+++ /dev/null
@@ -1,59 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-<title>CSS Grid Layout Test: Self-Alignment and stretch on fixed-sized tracks</title>
-<link rel="author" title="Javier Fernandez Garcia-Boente" href="mailto:jfernandez@igalia.com">
-<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-align-self">
-<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-justify-self">
-<link rel="help" href="https://drafts.csswg.org/css-align/#valdef-justify-self-stretch">
-<link rel="help" href="https://drafts.csswg.org/css-align/#valdef-align-self-stretch">
-<meta name="assert" content="Orthogonal grid items with 'stretch' value for align-self and/or justify-self are stretched along the column and/or row axis respectively; they will be sized as fit-content otherwise.">
-<style>
-.grid {
-  position: relative;
-  display: inline-grid;
-  grid-template-columns: 100px 150px;
-  grid-template-rows: 150px 100px;
-  font: 10px/1 Ahem;
-  background: grey;
-  writing-mode: vertical-lr;
-}
-.grid > div { writing-mode: horizontal-tb; }
-.firstRowFirstColumn {
-  grid-row: 1;
-  grid-column: 1;
-  background: green;
-  justify-self: stretch;
-  align-self: start;
-}
-.firstRowSecondColumn {
-  grid-row: 1;
-  grid-column: 2;
-  background: blue;
-  justify-self: start;
-  align-self: stretch;
-}
-.secondRowFirstColumn {
-  grid-row: 2;
-  grid-column: 1;
-  background: yellow;
-  justify-self: start;
-  align-self: start;
-}
-.secondRowSecondColumn {
-  grid-row: 2;
-  grid-column: 2;
-  background: red;
-  justify-self: stretch;
-  align-self: stretch;
-}
-</style>
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="../support/check-layout-th.js"></script>
-<body onload="checkLayout('.grid')">
-<div class="grid">
-  <div data-offset-x="0"   data-offset-y="0"   data-expected-width="60"  data-expected-height="100" class="firstRowFirstColumn">X XX X</div>
-  <div data-offset-x="0"   data-offset-y="100" data-expected-width="150" data-expected-height="40"  class="firstRowSecondColumn">XX X<br>X XXX<br>X<br>XX XXX</div>
-  <div data-offset-x="150" data-offset-y="0"   data-expected-width="60"  data-expected-height="10"  class="secondRowFirstColumn">X XX X</div>
-  <div data-offset-x="150" data-offset-y="100" data-expected-width="100" data-expected-height="150" class="secondRowSecondColumn">XX X<br>X XXX<br>X<br>XX XXX</div>
-</div>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-vertical-lr-006.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-vertical-lr-006.html
deleted file mode 100644
index a72fbd13..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-vertical-lr-006.html
+++ /dev/null
@@ -1,63 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-<title>CSS Grid Layout Test: Self-Alignment and stretch on fixed-sized tracks</title>
-<link rel="author" title="Javier Fernandez Garcia-Boente" href="mailto:jfernandez@igalia.com">
-<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-align-self">
-<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-justify-self">
-<link rel="help" href="https://drafts.csswg.org/css-align/#valdef-justify-self-stretch">
-<link rel="help" href="https://drafts.csswg.org/css-align/#valdef-align-self-stretch">
-<meta name="assert" content="The stretched orthogonal grid items along the column and/or row axis respect their defined margin-box's boundaries.">
-<style>
-.grid {
-  position: relative;
-  display: inline-grid;
-  grid-template-columns: 100px 150px;
-  grid-template-rows: 150px 100px;
-  font: 10px/1 Ahem;
-  background: grey;
-  writing-mode: vertical-lr;
-}
-.grid > div { writing-mode: horizontal-tb; }
-.firstRowFirstColumn {
-  grid-row: 1;
-  grid-column: 1;
-  background: green;
-  justify-self: stretch;
-  align-self: start;
-  margin-bottom: 10px;
-}
-.firstRowSecondColumn {
-  grid-row: 1;
-  grid-column: 2;
-  background: blue;
-  justify-self: start;
-  align-self: stretch;
-  margin-right: 20px;
-}
-.secondRowFirstColumn {
-  grid-row: 2;
-  grid-column: 1;
-  background: yellow;
-  justify-self: start;
-  align-self: start;
-}
-.secondRowSecondColumn {
-  grid-row: 2;
-  grid-column: 2;
-  background: red;
-  justify-self: stretch;
-  align-self: stretch;
-  margin-bottom: 20px;
-  margin-right: 10px;
-}
-</style>
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="../support/check-layout-th.js"></script>
-<body onload="checkLayout('.grid')">
-<div class="grid">
-  <div data-offset-x="0"   data-offset-y="0"   data-expected-width="60"  data-expected-height="90"  class="firstRowFirstColumn">X XX X</div>
-  <div data-offset-x="0"   data-offset-y="100" data-expected-width="130" data-expected-height="40"  class="firstRowSecondColumn">XX X<br>X XXX<br>X<br>XX XXX</div>
-  <div data-offset-x="150" data-offset-y="0"   data-expected-width="60"  data-expected-height="10"  class="secondRowFirstColumn">X XX X</div>
-  <div data-offset-x="150" data-offset-y="100" data-expected-width="90"  data-expected-height="130" class="secondRowSecondColumn">XX X<br>X XXX<br>X<br>XX XXX</div>
-</div>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-vertical-lr-007.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-vertical-lr-007.html
deleted file mode 100644
index ab190d39..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-vertical-lr-007.html
+++ /dev/null
@@ -1,64 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-<title>CSS Grid Layout Test: Self-Alignment and stretch on fixed-sized tracks</title>
-<link rel="author" title="Javier Fernandez Garcia-Boente" href="mailto:jfernandez@igalia.com">
-<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-align-self">
-<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-justify-self">
-<link rel="help" href="https://drafts.csswg.org/css-align/#valdef-justify-self-stretch">
-<link rel="help" href="https://drafts.csswg.org/css-align/#valdef-align-self-stretch">
-<meta name="assert" content="The stretched orthogonal grid items along the column and/or row axis include their defined border-box.">
-<style>
-.grid {
-  position: relative;
-  display: inline-grid;
-  grid-template-columns: 100px 150px;
-  grid-template-rows: 150px 100px;
-  font: 10px/1 Ahem;
-  background: grey;
-  writing-mode: vertical-lr;
-}
-.grid > div { writing-mode: horizontal-tb; }
-.grid > div { border-style: solid; }
-.firstRowFirstColumn {
-  grid-row: 1;
-  grid-column: 1;
-  background: green;
-  justify-self: stretch;
-  align-self: start;
-  border-width: 0px 0px 10px 0px;
-}
-.firstRowSecondColumn {
-  grid-row: 1;
-  grid-column: 2;
-  background: blue;
-  justify-self: start;
-  align-self: stretch;
-  border-width: 0px 20px 0px 0px;
-}
-.secondRowFirstColumn {
-  grid-row: 2;
-  grid-column: 1;
-  background: yellow;
-  justify-self: start;
-  align-self: start;
-  border-width: 0px 0px 0px 0px;
-}
-.secondRowSecondColumn {
-  grid-row: 2;
-  grid-column: 2;
-  background: red;
-  justify-self: stretch;
-  align-self: stretch;
-  border-width: 0px 10px 20px 0px;
-}
-</style>
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="../support/check-layout-th.js"></script>
-<body onload="checkLayout('.grid')">
-<div class="grid">
-  <div data-offset-x="0"   data-offset-y="0"   data-expected-width="60"  data-expected-height="100" class="firstRowFirstColumn">X XX X</div>
-  <div data-offset-x="0"   data-offset-y="100" data-expected-width="150" data-expected-height="40"  class="firstRowSecondColumn">XX X<br>X XXX<br>X<br>XX XXX</div>
-  <div data-offset-x="150" data-offset-y="0"   data-expected-width="60"  data-expected-height="10"  class="secondRowFirstColumn">X XX X</div>
-  <div data-offset-x="150" data-offset-y="100" data-expected-width="100" data-expected-height="150" class="secondRowSecondColumn">XX X<br>X XXX<br>X<br>XX XXX</div>
-</div>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-vertical-lr-008.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-vertical-lr-008.html
deleted file mode 100644
index 5be8653..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-vertical-lr-008.html
+++ /dev/null
@@ -1,63 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-<title>CSS Grid Layout Test: Self-Alignment and stretch on fixed-sized tracks</title>
-<link rel="author" title="Javier Fernandez Garcia-Boente" href="mailto:jfernandez@igalia.com">
-<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-align-self">
-<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-justify-self">
-<link rel="help" href="https://drafts.csswg.org/css-align/#valdef-justify-self-stretch">
-<link rel="help" href="https://drafts.csswg.org/css-align/#valdef-align-self-stretch">
-<meta name="assert" content="The stretched orthogonal grid items along the column and/or row axis include their defined padding-box.">
-<style>
-.grid {
-  position: relative;
-  display: inline-grid;
-  grid-template-columns: 100px 150px;
-  grid-template-rows: 150px 100px;
-  font: 10px/1 Ahem;
-  background: grey;
-  writing-mode: vertical-lr;
-}
-.grid > div { writing-mode: horizontal-tb; }
-.firstRowFirstColumn {
-  grid-row: 1;
-  grid-column: 1;
-  background: green;
-  justify-self: stretch;
-  align-self: start;
-  padding-bottom: 10px;
-}
-.firstRowSecondColumn {
-  grid-row: 1;
-  grid-column: 2;
-  background: blue;
-  justify-self: start;
-  align-self: stretch;
-  padding-right: 20px;
-}
-.secondRowFirstColumn {
-  grid-row: 2;
-  grid-column: 1;
-  background: yellow;
-  justify-self: start;
-  align-self: start;
-}
-.secondRowSecondColumn {
-  grid-row: 2;
-  grid-column: 2;
-  background: red;
-  justify-self: stretch;
-  align-self: stretch;
-  padding-bottom: 20px;
-  padding-right: 10px;
-}
-</style>
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="../support/check-layout-th.js"></script>
-<body onload="checkLayout('.grid')">
-<div class="grid">
-  <div data-offset-x="0"   data-offset-y="0"   data-expected-width="60"  data-expected-height="100" class="firstRowFirstColumn">X XX X</div>
-  <div data-offset-x="0"   data-offset-y="100" data-expected-width="150" data-expected-height="40"  class="firstRowSecondColumn">XX X<br>X XXX<br>X<br>XX XXX</div>
-  <div data-offset-x="150" data-offset-y="0"   data-expected-width="60"  data-expected-height="10"  class="secondRowFirstColumn">X XX X</div>
-  <div data-offset-x="150" data-offset-y="100" data-expected-width="100" data-expected-height="150" class="secondRowSecondColumn">XX X<br>X XXX<br>X<br>XX XXX</div>
-</div>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-vertical-lr-009.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-vertical-lr-009.html
deleted file mode 100644
index f38ceb6a..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-vertical-lr-009.html
+++ /dev/null
@@ -1,58 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-<title>CSS Grid Layout Test: Self-Alignment and stretch on auto-sized tracks</title>
-<link rel="author" title="Javier Fernandez Garcia-Boente" href="mailto:jfernandez@igalia.com">
-<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-align-self">
-<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-justify-self">
-<link rel="help" href="https://drafts.csswg.org/css-align/#valdef-justify-self-stretch">
-<link rel="help" href="https://drafts.csswg.org/css-align/#valdef-align-self-stretch">
-<meta name="assert" content="Grid items with 'stretch' value for align-self and/or justify-self are stretched along the column and/or row axis respectively; they will be sized as fit-content otherwise.">
-<style>
-.grid {
-  position: relative;
-  display: inline-grid;
-  font: 20px/1 Ahem;
-  background: grey;
-  width: 250px;
-  height: 250px;
-  writing-mode: vertical-lr;
-}
-.firstRowFirstColumn {
-  grid-row: 1;
-  grid-column: 1;
-  background: green;
-  justify-self: stretch;
-  align-self: start;
-}
-.firstRowSecondColumn {
-  grid-row: 1;
-  grid-column: 2;
-  background: blue;
-  justify-self: start;
-  align-self: stretch;
-}
-.secondRowFirstColumn {
-  grid-row: 2;
-  grid-column: 1;
-  background: yellow;
-  justify-self: start;
-  align-self: start;
-}
-.secondRowSecondColumn {
-  grid-row: 2;
-  grid-column: 2;
-  background: red;
-  justify-self: stretch;
-  align-self: stretch;
-}
-</style>
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="../support/check-layout-th.js"></script>
-<body onload="checkLayout('.grid')">
-<div class="grid">
-  <div data-offset-x="0"   data-offset-y="0"   data-expected-width="20"  data-expected-height="125" class="firstRowFirstColumn">XX X</div>
-  <div data-offset-x="0"   data-offset-y="125" data-expected-width="125" data-expected-height="80"  class="firstRowSecondColumn">XX X</div>
-  <div data-offset-x="125" data-offset-y="0"   data-expected-width="20"  data-expected-height="80"  class="secondRowFirstColumn">XX X</div>
-  <div data-offset-x="125" data-offset-y="125" data-expected-width="125" data-expected-height="125" class="secondRowSecondColumn">XX X</div>
-</div>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-vertical-lr-010.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-vertical-lr-010.html
deleted file mode 100644
index 6744c05..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-vertical-lr-010.html
+++ /dev/null
@@ -1,62 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-<title>CSS Grid Layout Test: Self-Alignment and stretch on auto-sized tracks</title>
-<link rel="author" title="Javier Fernandez Garcia-Boente" href="mailto:jfernandez@igalia.com">
-<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-align-self">
-<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-justify-self">
-<link rel="help" href="https://drafts.csswg.org/css-align/#valdef-justify-self-stretch">
-<link rel="help" href="https://drafts.csswg.org/css-align/#valdef-align-self-stretch">
-<meta name="assert" content="The stretched grid items along the column and/or row axis respect their defined margin-box's boundaries.">
-<style>
-.grid {
-  position: relative;
-  display: inline-grid;
-  font: 20px/1 Ahem;
-  background: grey;
-  width: 250px;
-  height: 250px;
-  writing-mode: vertical-lr;
-}
-.firstRowFirstColumn {
-  grid-row: 1;
-  grid-column: 1;
-  background: green;
-  justify-self: stretch;
-  align-self: start;
-  margin-bottom: 10px;
-}
-.firstRowSecondColumn {
-  grid-row: 1;
-  grid-column: 2;
-  background: blue;
-  justify-self: start;
-  align-self: stretch;
-  margin-right: 20px;
-}
-.secondRowFirstColumn {
-  grid-row: 2;
-  grid-column: 1;
-  background: yellow;
-  justify-self: start;
-  align-self: start;
-}
-.secondRowSecondColumn {
-  grid-row: 2;
-  grid-column: 2;
-  background: red;
-  justify-self: stretch;
-  align-self: stretch;
-  margin-bottom: 20px;
-  margin-right: 10px;
-}
-</style>
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="../support/check-layout-th.js"></script>
-<body onload="checkLayout('.grid')">
-<div class="grid">
-  <div data-offset-x="0"   data-offset-y="0"   data-expected-width="20"  data-expected-height="110" class="firstRowFirstColumn">XX X</div>
-  <div data-offset-x="0"   data-offset-y="120" data-expected-width="110" data-expected-height="80"  class="firstRowSecondColumn">XX X</div>
-  <div data-offset-x="130" data-offset-y="00"  data-expected-width="20"  data-expected-height="80"  class="secondRowFirstColumn">XX X</div>
-  <div data-offset-x="130" data-offset-y="120" data-expected-width="110" data-expected-height="110" class="secondRowSecondColumn">XX X</div>
-</div>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-vertical-lr-011.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-vertical-lr-011.html
deleted file mode 100644
index fa50dff..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-vertical-lr-011.html
+++ /dev/null
@@ -1,63 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-<title>CSS Grid Layout Test: Self-Alignment and stretch on auto-sized tracks</title>
-<link rel="author" title="Javier Fernandez Garcia-Boente" href="mailto:jfernandez@igalia.com">
-<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-align-self">
-<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-justify-self">
-<link rel="help" href="https://drafts.csswg.org/css-align/#valdef-justify-self-stretch">
-<link rel="help" href="https://drafts.csswg.org/css-align/#valdef-align-self-stretch">
-<meta name="assert" content="The stretched grid items along the column and/or row axis respect their defined margin-box's boundaries.">
-<style>
-.grid {
-  position: relative;
-  display: inline-grid;
-  font: 20px/1 Ahem;
-  background: grey;
-  width: 250px;
-  height: 250px;
-  writing-mode: vertical-lr;
-}
-.grid > div { border-style: solid; }
-.firstRowFirstColumn {
-  grid-row: 1;
-  grid-column: 1;
-  background: green;
-  justify-self: stretch;
-  align-self: start;
-  border-width: 0px 0px 10px 0px;
-}
-.firstRowSecondColumn {
-  grid-row: 1;
-  grid-column: 2;
-  background: blue;
-  justify-self: start;
-  align-self: stretch;
-  border-width: 0px 20px 0px 0px;
-}
-.secondRowFirstColumn {
-  grid-row: 2;
-  grid-column: 1;
-  background: yellow;
-  justify-self: start;
-  align-self: start;
-  border-width: 0px 0px 0px 0px;
-}
-.secondRowSecondColumn {
-  grid-row: 2;
-  grid-column: 2;
-  background: red;
-  justify-self: stretch;
-  align-self: stretch;
-  border-width: 0px 10px 20px 0px;
-}
-</style>
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="../support/check-layout-th.js"></script>
-<body onload="checkLayout('.grid')">
-<div class="grid">
-  <div data-offset-x="0"   data-offset-y="0"   data-expected-width="20"  data-expected-height="120" class="firstRowFirstColumn">XX X</div>
-  <div data-offset-x="0"   data-offset-y="120" data-expected-width="130" data-expected-height="80"  class="firstRowSecondColumn">XX X</div>
-  <div data-offset-x="130" data-offset-y="0"   data-expected-width="20"  data-expected-height="80"  class="secondRowFirstColumn">XX X</div>
-  <div data-offset-x="130" data-offset-y="120" data-expected-width="120" data-expected-height="130" class="secondRowSecondColumn">XX X</div>
-</div>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-vertical-lr-012.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-vertical-lr-012.html
deleted file mode 100644
index 94773382..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-vertical-lr-012.html
+++ /dev/null
@@ -1,62 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-<title>CSS Grid Layout Test: Self-Alignment and stretch on auto-sized tracks</title>
-<link rel="author" title="Javier Fernandez Garcia-Boente" href="mailto:jfernandez@igalia.com">
-<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-align-self">
-<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-justify-self">
-<link rel="help" href="https://drafts.csswg.org/css-align/#valdef-justify-self-stretch">
-<link rel="help" href="https://drafts.csswg.org/css-align/#valdef-align-self-stretch">
-<meta name="assert" content="The stretched grid items along the column and/or row axis include their defined padding-box.">
-<style>
-.grid {
-  position: relative;
-  display: inline-grid;
-  font: 20px/1 Ahem;
-  background: grey;
-  width: 250px;
-  height: 250px;
-  writing-mode: vertical-lr;
-}
-.firstRowFirstColumn {
-  grid-row: 1;
-  grid-column: 1;
-  background: green;
-  justify-self: stretch;
-  align-self: start;
-  padding-bottom: 10px;
-}
-.firstRowSecondColumn {
-  grid-row: 1;
-  grid-column: 2;
-  background: blue;
-  justify-self: start;
-  align-self: stretch;
-  padding-right: 20px;
-}
-.secondRowFirstColumn {
-  grid-row: 2;
-  grid-column: 1;
-  background: yellow;
-  justify-self: start;
-  align-self: start;
-}
-.secondRowSecondColumn {
-  grid-row: 2;
-  grid-column: 2;
-  background: red;
-  justify-self: stretch;
-  align-self: stretch;
-  padding-bottom: 20px;
-  padding-right: 10px;
-}
-</style>
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="../support/check-layout-th.js"></script>
-<body onload="checkLayout('.grid')">
-<div class="grid">
-  <div data-offset-x="0"   data-offset-y="0"   data-expected-width="20"  data-expected-height="120" class="firstRowFirstColumn">XX X</div>
-  <div data-offset-x="0"   data-offset-y="120" data-expected-width="130" data-expected-height="80"  class="firstRowSecondColumn">XX X</div>
-  <div data-offset-x="130" data-offset-y="0"   data-expected-width="20"  data-expected-height="80"  class="secondRowFirstColumn">XX X</div>
-  <div data-offset-x="130" data-offset-y="120" data-expected-width="120" data-expected-height="130" class="secondRowSecondColumn">XX X</div>
-</div>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-vertical-lr-013.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-vertical-lr-013.html
deleted file mode 100644
index 25baada..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-vertical-lr-013.html
+++ /dev/null
@@ -1,59 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-<title>CSS Grid Layout Test: Self-Alignment and stretch on auto-sized tracks</title>
-<link rel="author" title="Javier Fernandez Garcia-Boente" href="mailto:jfernandez@igalia.com">
-<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-align-self">
-<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-justify-self">
-<link rel="help" href="https://drafts.csswg.org/css-align/#valdef-justify-self-stretch">
-<link rel="help" href="https://drafts.csswg.org/css-align/#valdef-align-self-stretch">
-<meta name="assert" content="Orthogonal grid items with 'stretch' value for align-self and/or justify-self are stretched along the column and/or row axis respectively; they will be sized as fit-content otherwise.">
-<style>
-.grid {
-  position: relative;
-  display: inline-grid;
-  font: 20px/1 Ahem;
-  background: grey;
-  width: 250px;
-  height: 250px;
-  writing-mode: vertical-lr;
-}
-.grid > div { writing-mode: horizontal-tb; }
-.firstRowFirstColumn {
-  grid-row: 1;
-  grid-column: 1;
-  background: green;
-  justify-self: stretch;
-  align-self: start;
-}
-.firstRowSecondColumn {
-  grid-row: 1;
-  grid-column: 2;
-  background: blue;
-  justify-self: start;
-  align-self: stretch;
-}
-.secondRowFirstColumn {
-  grid-row: 2;
-  grid-column: 1;
-  background: yellow;
-  justify-self: start;
-  align-self: start;
-}
-.secondRowSecondColumn {
-  grid-row: 2;
-  grid-column: 2;
-  background: red;
-  justify-self: stretch;
-  align-self: stretch;
-}
-</style>
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="../support/check-layout-th.js"></script>
-<body onload="checkLayout('.grid')">
-<div class="grid">
-  <div data-offset-x="0"   data-offset-y="0"   data-expected-width="80"  data-expected-height="125" class="firstRowFirstColumn">XX X</div>
-  <div data-offset-x="0"   data-offset-y="125" data-expected-width="125" data-expected-height="20"  class="firstRowSecondColumn">XX X</div>
-  <div data-offset-x="125" data-offset-y="0"   data-expected-width="80"  data-expected-height="20"  class="secondRowFirstColumn">XX X</div>
-  <div data-offset-x="125" data-offset-y="125" data-expected-width="125" data-expected-height="125" class="secondRowSecondColumn">XX X</div>
-</div>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-vertical-lr-014.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-vertical-lr-014.html
deleted file mode 100644
index 19a8ede..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-vertical-lr-014.html
+++ /dev/null
@@ -1,63 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-<title>CSS Grid Layout Test: Self-Alignment and stretch on auto-sized tracks</title>
-<link rel="author" title="Javier Fernandez Garcia-Boente" href="mailto:jfernandez@igalia.com">
-<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-align-self">
-<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-justify-self">
-<link rel="help" href="https://drafts.csswg.org/css-align/#valdef-justify-self-stretch">
-<link rel="help" href="https://drafts.csswg.org/css-align/#valdef-align-self-stretch">
-<meta name="assert" content="The stretched orthogonal grid items along the column and/or row axis respect their defined margin-box's boundaries.">
-<style>
-.grid {
-  position: relative;
-  display: inline-grid;
-  font: 20px/1 Ahem;
-  background: grey;
-  width: 250px;
-  height: 250px;
-  writing-mode: vertical-lr;
-}
-.grid > div { writing-mode: horizontal-tb; }
-.firstRowFirstColumn {
-  grid-row: 1;
-  grid-column: 1;
-  background: green;
-  justify-self: stretch;
-  align-self: start;
-  margin-bottom: 10px;
-}
-.firstRowSecondColumn {
-  grid-row: 1;
-  grid-column: 2;
-  background: blue;
-  justify-self: start;
-  align-self: stretch;
-  margin-right: 20px;
-}
-.secondRowFirstColumn {
-  grid-row: 2;
-  grid-column: 1;
-  background: yellow;
-  justify-self: start;
-  align-self: start;
-}
-.secondRowSecondColumn {
-  grid-row: 2;
-  grid-column: 2;
-  background: red;
-  justify-self: stretch;
-  align-self: stretch;
-  margin-bottom: 20px;
-  margin-right: 10px;
-}
-</style>
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="../support/check-layout-th.js"></script>
-<body onload="checkLayout('.grid')">
-<div class="grid">
-  <div data-offset-x="0"   data-offset-y="0"   data-expected-width="80"  data-expected-height="110" class="firstRowFirstColumn">XX X</div>
-  <div data-offset-x="0"   data-offset-y="120" data-expected-width="110" data-expected-height="20"  class="firstRowSecondColumn">XX X</div>
-  <div data-offset-x="130" data-offset-y="0"   data-expected-width="80"  data-expected-height="20"  class="secondRowFirstColumn">XX X</div>
-  <div data-offset-x="130" data-offset-y="120" data-expected-width="110" data-expected-height="110" class="secondRowSecondColumn">XX X</div>
-</div>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-vertical-lr-015.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-vertical-lr-015.html
deleted file mode 100644
index 45c8b75..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-vertical-lr-015.html
+++ /dev/null
@@ -1,64 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-<title>CSS Grid Layout Test: Self-Alignment and stretch on auto-sized tracks</title>
-<link rel="author" title="Javier Fernandez Garcia-Boente" href="mailto:jfernandez@igalia.com">
-<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-align-self">
-<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-justify-self">
-<link rel="help" href="https://drafts.csswg.org/css-align/#valdef-justify-self-stretch">
-<link rel="help" href="https://drafts.csswg.org/css-align/#valdef-align-self-stretch">
-<meta name="assert" content="The stretched orthogonal grid items along the column and/or row axis include their defined border-box.">
-<style>
-.grid {
-  position: relative;
-  display: inline-grid;
-  font: 20px/1 Ahem;
-  background: grey;
-  width: 250px;
-  height: 250px;
-  writing-mode: vertical-lr;
-}
-.grid > div { writing-mode: horizontal-tb; }
-.grid > div { border-style: solid; }
-.firstRowFirstColumn {
-  grid-row: 1;
-  grid-column: 1;
-  background: green;
-  justify-self: stretch;
-  align-self: start;
-  border-width: 0px 0px 10px 0px;
-}
-.firstRowSecondColumn {
-  grid-row: 1;
-  grid-column: 2;
-  background: blue;
-  justify-self: start;
-  align-self: stretch;
-  border-width: 0px 20px 0px 0px;
-}
-.secondRowFirstColumn {
-  grid-row: 2;
-  grid-column: 1;
-  background: yellow;
-  justify-self: start;
-  align-self: start;
-  border-width: 0px 0px 0px 0px;
-}
-.secondRowSecondColumn {
-  grid-row: 2;
-  grid-column: 2;
-  background: red;
-  justify-self: stretch;
-  align-self: stretch;
-  border-width: 0px 10px 20px 0px;
-}
-</style>
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="../support/check-layout-th.js"></script>
-<body onload="checkLayout('.grid')">
-<div class="grid">
-  <div data-offset-x="0"   data-offset-y="0"   data-expected-width="80"  data-expected-height="120" class="firstRowFirstColumn">XX X</div>
-  <div data-offset-x="0"   data-offset-y="120" data-expected-width="130" data-expected-height="20"  class="firstRowSecondColumn">XX X</div>
-  <div data-offset-x="130" data-offset-y="0"   data-expected-width="80"  data-expected-height="20"  class="secondRowFirstColumn">XX X</div>
-  <div data-offset-x="130" data-offset-y="120" data-expected-width="120" data-expected-height="130" class="secondRowSecondColumn">XX X</div>
-</div>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-vertical-lr-016.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-vertical-lr-016.html
deleted file mode 100644
index 2a47e02..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-vertical-lr-016.html
+++ /dev/null
@@ -1,62 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-<title>CSS Grid Layout Test: Self-Alignment and stretch on auto-sized tracks</title>
-<link rel="author" title="Javier Fernandez Garcia-Boente" href="mailto:jfernandez@igalia.com">
-<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-align-self">
-<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-justify-self">
-<link rel="help" href="https://drafts.csswg.org/css-align/#valdef-justify-self-stretch">
-<meta name="assert" content="The stretched orthogonal grid items along the column and/or row axis include their defined padding-box.">
-<style>
-.grid {
-  position: relative;
-  display: inline-grid;
-  font: 20px/1 Ahem;
-  background: grey;
-  width: 250px;
-  height: 250px;
-  writing-mode: vertical-lr;
-}
-.grid > div { writing-mode: horizontal-tb; }
-.firstRowFirstColumn {
-  grid-row: 1;
-  grid-column: 1;
-  background: green;
-  justify-self: stretch;
-  align-self: start;
-  padding-bottom: 10px;
-}
-.firstRowSecondColumn {
-  grid-row: 1;
-  grid-column: 2;
-  background: blue;
-  justify-self: start;
-  align-self: stretch;
-  padding-right: 20px;
-}
-.secondRowFirstColumn {
-  grid-row: 2;
-  grid-column: 1;
-  background: yellow;
-  justify-self: start;
-  align-self: start;
-}
-.secondRowSecondColumn {
-  grid-row: 2;
-  grid-column: 2;
-  background: red;
-  justify-self: stretch;
-  align-self: stretch;
-  padding-bottom: 20px;
-  padding-right: 10px;
-}
-</style>
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="../support/check-layout-th.js"></script>
-<body onload="checkLayout('.grid')">
-<div class="grid">
-  <div data-offset-x="0"   data-offset-y="0"   data-expected-width="80"  data-expected-height="120" class="firstRowFirstColumn">XX X</div>
-  <div data-offset-x="0"   data-offset-y="120" data-expected-width="130" data-expected-height="20"  class="firstRowSecondColumn">XX X</div>
-  <div data-offset-x="130" data-offset-y="0"   data-expected-width="80"  data-expected-height="20"  class="secondRowFirstColumn">XX X</div>
-  <div data-offset-x="130" data-offset-y="120" data-expected-width="120" data-expected-height="130" class="secondRowSecondColumn">XX X</div>
-</div>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-vertical-rl-001.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-vertical-rl-001.html
deleted file mode 100644
index 1afde93..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-vertical-rl-001.html
+++ /dev/null
@@ -1,58 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-<title>CSS Grid Layout Test: Self-Alignment and stretch on fixed-sized tracks</title>
-<link rel="author" title="Javier Fernandez Garcia-Boente" href="mailto:jfernandez@igalia.com">
-<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-align-self">
-<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-justify-self">
-<link rel="help" href="https://drafts.csswg.org/css-align/#valdef-justify-self-stretch">
-<link rel="help" href="https://drafts.csswg.org/css-align/#valdef-align-self-stretch">
-<meta name="assert" content="Grid items with 'stretch' value for align-self and/or justify-self are stretched along the column and/or row axis respectively; they will be sized as fit-content otherwise.">
-<style>
-.grid {
-  position: relative;
-  display: inline-grid;
-  grid-template-columns: 100px 150px;
-  grid-template-rows: 150px 100px;
-  font: 10px/1 Ahem;
-  background: grey;
-  writing-mode: vertical-rl;
-}
-.firstRowFirstColumn {
-  grid-row: 1;
-  grid-column: 1;
-  background: green;
-  justify-self: stretch;
-  align-self: start;
-}
-.firstRowSecondColumn {
-  grid-row: 1;
-  grid-column: 2;
-  background: blue;
-  justify-self: start;
-  align-self: stretch;
-}
-.secondRowFirstColumn {
-  grid-row: 2;
-  grid-column: 1;
-  background: yellow;
-  justify-self: start;
-  align-self: start;
-}
-.secondRowSecondColumn {
-  grid-row: 2;
-  grid-column: 2;
-  background: red;
-  justify-self: stretch;
-  align-self: stretch;
-}
-</style>
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="../support/check-layout-th.js"></script>
-<body onload="checkLayout('.grid')">
-<div class="grid">
-  <div data-offset-x="240" data-offset-y="0"   data-expected-width="10"  data-expected-height="100" class="firstRowFirstColumn">X XX X</div>
-  <div data-offset-x="100" data-offset-y="100" data-expected-width="150" data-expected-height="60"  class="firstRowSecondColumn">XX X<br>X XXX<br>X<br>XX XXX</div>
-  <div data-offset-x="90"  data-offset-y="0"   data-expected-width="10"  data-expected-height="60"  class="secondRowFirstColumn">X XX X</div>
-  <div data-offset-x="0"   data-offset-y="100" data-expected-width="100" data-expected-height="150" class="secondRowSecondColumn">XX X<br>X XXX<br>X<br>XX XXX</div>
-</div>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-vertical-rl-002.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-vertical-rl-002.html
deleted file mode 100644
index a7a1c97..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-vertical-rl-002.html
+++ /dev/null
@@ -1,62 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-<title>CSS Grid Layout Test: Self-Alignment and stretch on fixed-sized tracks</title>
-<link rel="author" title="Javier Fernandez Garcia-Boente" href="mailto:jfernandez@igalia.com">
-<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-align-self">
-<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-justify-self">
-<link rel="help" href="https://drafts.csswg.org/css-align/#valdef-justify-self-stretch">
-<link rel="help" href="https://drafts.csswg.org/css-align/#valdef-align-self-stretch">
-<meta name="assert" content="The stretched grid items along the column and/or row axis respect their defined margin-box's boundaries.">
-<style>
-.grid {
-  position: relative;
-  display: inline-grid;
-  grid-template-columns: 100px 150px;
-  grid-template-rows: 150px 100px;
-  font: 10px/1 Ahem;
-  background: grey;
-  writing-mode: vertical-rl;
-}
-.firstRowFirstColumn {
-  grid-row: 1;
-  grid-column: 1;
-  background: green;
-  justify-self: stretch;
-  align-self: start;
-  margin-bottom: 10px;
-}
-.firstRowSecondColumn {
-  grid-row: 1;
-  grid-column: 2;
-  background: blue;
-  justify-self: start;
-  align-self: stretch;
-  margin-left: 20px;
-}
-.secondRowFirstColumn {
-  grid-row: 2;
-  grid-column: 1;
-  background: yellow;
-  justify-self: start;
-  align-self: start;
-}
-.secondRowSecondColumn {
-  grid-row: 2;
-  grid-column: 2;
-  background: red;
-  justify-self: stretch;
-  align-self: stretch;
-  margin-bottom: 20px;
-  margin-left: 10px;
-}
-</style>
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="../support/check-layout-th.js"></script>
-<body onload="checkLayout('.grid')">
-<div class="grid">
-  <div data-offset-x="240" data-offset-y="0"   data-expected-width="10"  data-expected-height="90"  class="firstRowFirstColumn">X XX X</div>
-  <div data-offset-x="120" data-offset-y="100" data-expected-width="130" data-expected-height="60"  class="firstRowSecondColumn">XX X<br>X XXX<br>X<br>XX XXX</div>
-  <div data-offset-x="90"  data-offset-y="0"   data-expected-width="10"  data-expected-height="60"  class="secondRowFirstColumn">X XX X</div>
-  <div data-offset-x="10"  data-offset-y="100" data-expected-width="90"  data-expected-height="130" class="secondRowSecondColumn">XX X<br>X XXX<br>X<br>XX XXX</div>
-</div>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-vertical-rl-003.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-vertical-rl-003.html
deleted file mode 100644
index 96cbad3..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-vertical-rl-003.html
+++ /dev/null
@@ -1,63 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-<title>CSS Grid Layout Test: Self-Alignment and stretch on fixed-sized tracks</title>
-<link rel="author" title="Javier Fernandez Garcia-Boente" href="mailto:jfernandez@igalia.com">
-<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-align-self">
-<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-justify-self">
-<link rel="help" href="https://drafts.csswg.org/css-align/#valdef-justify-self-stretch">
-<link rel="help" href="https://drafts.csswg.org/css-align/#valdef-align-self-stretch">
-<meta name="assert" content="The stretched grid items along the column and/or row axis include their defined border-box.">
-<style>
-.grid {
-  position: relative;
-  display: inline-grid;
-  grid-template-columns: 100px 150px;
-  grid-template-rows: 150px 100px;
-  font: 10px/1 Ahem;
-  background: grey;
-  writing-mode: vertical-rl;
-}
-.grid > div { border-style: solid; }
-.firstRowFirstColumn {
-  grid-row: 1;
-  grid-column: 1;
-  background: green;
-  justify-self: stretch;
-  align-self: start;
-  border-width: 0px 0px 10px 0px;
-}
-.firstRowSecondColumn {
-  grid-row: 1;
-  grid-column: 2;
-  background: blue;
-  justify-self: start;
-  align-self: stretch;
-  border-width: 0px 0px 0px 20px;
-}
-.secondRowFirstColumn {
-  grid-row: 2;
-  grid-column: 1;
-  background: yellow;
-  justify-self: start;
-  align-self: start;
-  border-width: 0px 0px 0px 0px;
-}
-.secondRowSecondColumn {
-  grid-row: 2;
-  grid-column: 2;
-  background: red;
-  justify-self: stretch;
-  align-self: stretch;
-  border-width: 0px 0px 20px 10px;
-}
-</style>
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="../support/check-layout-th.js"></script>
-<body onload="checkLayout('.grid')">
-<div class="grid">
-  <div data-offset-x="240" data-offset-y="0"   data-expected-width="10"  data-expected-height="100" class="firstRowFirstColumn">X XX X</div>
-  <div data-offset-x="100" data-offset-y="100" data-expected-width="150" data-expected-height="60"  class="firstRowSecondColumn">XX X<br>X XXX<br>X<br>XX XXX</div>
-  <div data-offset-x="90"  data-offset-y="0"   data-expected-width="10"  data-expected-height="60"  class="secondRowFirstColumn">X XX X</div>
-  <div data-offset-x="0"   data-offset-y="100" data-expected-width="100" data-expected-height="150" class="secondRowSecondColumn">XX X<br>X XXX<br>X<br>XX XXX</div>
-</div>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-vertical-rl-004.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-vertical-rl-004.html
deleted file mode 100644
index c93b7b6..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-vertical-rl-004.html
+++ /dev/null
@@ -1,62 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-<title>CSS Grid Layout Test: Self-Alignment and stretch on fixed-sized tracks</title>
-<link rel="author" title="Javier Fernandez Garcia-Boente" href="mailto:jfernandez@igalia.com">
-<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-align-self">
-<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-justify-self">
-<link rel="help" href="https://drafts.csswg.org/css-align/#valdef-justify-self-stretch">
-<link rel="help" href="https://drafts.csswg.org/css-align/#valdef-align-self-stretch">
-<meta name="assert" content="The stretched grid items along the column and/or row axis include their defined padding-box.">
-<style>
-.grid {
-  position: relative;
-  display: inline-grid;
-  grid-template-columns: 100px 150px;
-  grid-template-rows: 150px 100px;
-  font: 10px/1 Ahem;
-  background: grey;
-  writing-mode: vertical-rl;
-}
-.firstRowFirstColumn {
-  grid-row: 1;
-  grid-column: 1;
-  background: green;
-  justify-self: stretch;
-  align-self: start;
-  padding-bottom: 10px;
-}
-.firstRowSecondColumn {
-  grid-row: 1;
-  grid-column: 2;
-  background: blue;
-  justify-self: start;
-  align-self: stretch;
-  padding-left: 20px;
-}
-.secondRowFirstColumn {
-  grid-row: 2;
-  grid-column: 1;
-  background: yellow;
-  justify-self: start;
-  align-self: start;
-}
-.secondRowSecondColumn {
-  grid-row: 2;
-  grid-column: 2;
-  background: red;
-  justify-self: stretch;
-  align-self: stretch;
-  padding-bottom: 20px;
-  padding-left: 10px;
-}
-</style>
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="../support/check-layout-th.js"></script>
-<body onload="checkLayout('.grid')">
-<div class="grid">
-  <div data-offset-x="240" data-offset-y="0"   data-expected-width="10"  data-expected-height="100" class="firstRowFirstColumn">X XX X</div>
-  <div data-offset-x="100" data-offset-y="100" data-expected-width="150" data-expected-height="60"  class="firstRowSecondColumn">XX X<br>X XXX<br>X<br>XX XXX</div>
-  <div data-offset-x="90"  data-offset-y="0"   data-expected-width="10"  data-expected-height="60"  class="secondRowFirstColumn">X XX X</div>
-  <div data-offset-x="0"   data-offset-y="100" data-expected-width="100" data-expected-height="150" class="secondRowSecondColumn">XX X<br>X XXX<br>X<br>XX XXX</div>
-</div>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-vertical-rl-005.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-vertical-rl-005.html
deleted file mode 100644
index 73f7a6f..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-vertical-rl-005.html
+++ /dev/null
@@ -1,59 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-<title>CSS Grid Layout Test: Self-Alignment and stretch on fixed-sized tracks</title>
-<link rel="author" title="Javier Fernandez Garcia-Boente" href="mailto:jfernandez@igalia.com">
-<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-align-self">
-<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-justify-self">
-<link rel="help" href="https://drafts.csswg.org/css-align/#valdef-justify-self-stretch">
-<link rel="help" href="https://drafts.csswg.org/css-align/#valdef-align-self-stretch">
-<meta name="assert" content="Orthogonal grid items with 'stretch' value for align-self and/or justify-self are stretched along the column and/or row axis respectively; they will be sized as fit-content otherwise.">
-<style>
-.grid {
-  position: relative;
-  display: inline-grid;
-  grid-template-columns: 100px 150px;
-  grid-template-rows: 150px 100px;
-  font: 10px/1 Ahem;
-  background: grey;
-  writing-mode: vertical-rl;
-}
-.grid > div { writing-mode: horizontal-tb; }
-.firstRowFirstColumn {
-  grid-row: 1;
-  grid-column: 1;
-  background: green;
-  justify-self: stretch;
-  align-self: start;
-}
-.firstRowSecondColumn {
-  grid-row: 1;
-  grid-column: 2;
-  background: blue;
-  justify-self: start;
-  align-self: stretch;
-}
-.secondRowFirstColumn {
-  grid-row: 2;
-  grid-column: 1;
-  background: yellow;
-  justify-self: start;
-  align-self: start;
-}
-.secondRowSecondColumn {
-  grid-row: 2;
-  grid-column: 2;
-  background: red;
-  justify-self: stretch;
-  align-self: stretch;
-}
-</style>
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="../support/check-layout-th.js"></script>
-<body onload="checkLayout('.grid')">
-<div class="grid">
-  <div data-offset-x="190" data-offset-y="0"   data-expected-width="60"  data-expected-height="100" class="firstRowFirstColumn">X XX X</div>
-  <div data-offset-x="100" data-offset-y="100" data-expected-width="150" data-expected-height="40"  class="firstRowSecondColumn">XX X<br>X XXX<br>X<br>XX XXX</div>
-  <div data-offset-x="40"  data-offset-y="0"   data-expected-width="60"  data-expected-height="10"  class="secondRowFirstColumn">X XX X</div>
-  <div data-offset-x="0"   data-offset-y="100" data-expected-width="100" data-expected-height="150" class="secondRowSecondColumn">XX X<br>X XXX<br>X<br>XX XXX</div>
-</div>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-vertical-rl-006.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-vertical-rl-006.html
deleted file mode 100644
index 0a6d003f..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-vertical-rl-006.html
+++ /dev/null
@@ -1,63 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-<title>CSS Grid Layout Test: Self-Alignment and stretch on fixed-sized tracks</title>
-<link rel="author" title="Javier Fernandez Garcia-Boente" href="mailto:jfernandez@igalia.com">
-<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-align-self">
-<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-justify-self">
-<link rel="help" href="https://drafts.csswg.org/css-align/#valdef-justify-self-stretch">
-<link rel="help" href="https://drafts.csswg.org/css-align/#valdef-align-self-stretch">
-<meta name="assert" content="The stretched orthogonal grid items along the column and/or row axis respect their defined margin-box's boundaries.">
-<style>
-.grid {
-  position: relative;
-  display: inline-grid;
-  grid-template-columns: 100px 150px;
-  grid-template-rows: 150px 100px;
-  font: 10px/1 Ahem;
-  background: grey;
-  writing-mode: vertical-rl;
-}
-.grid > div { writing-mode: horizontal-tb; }
-.firstRowFirstColumn {
-  grid-row: 1;
-  grid-column: 1;
-  background: green;
-  justify-self: stretch;
-  align-self: start;
-  margin-bottom: 10px;
-}
-.firstRowSecondColumn {
-  grid-row: 1;
-  grid-column: 2;
-  background: blue;
-  justify-self: start;
-  align-self: stretch;
-  margin-right: 20px;
-}
-.secondRowFirstColumn {
-  grid-row: 2;
-  grid-column: 1;
-  background: yellow;
-  justify-self: start;
-  align-self: start;
-}
-.secondRowSecondColumn {
-  grid-row: 2;
-  grid-column: 2;
-  background: red;
-  justify-self: stretch;
-  align-self: stretch;
-  margin-bottom: 20px;
-  margin-right: 10px;
-}
-</style>
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="../support/check-layout-th.js"></script>
-<body onload="checkLayout('.grid')">
-<div class="grid">
-  <div data-offset-x="190" data-offset-y="0"   data-expected-width="60"  data-expected-height="90"  class="firstRowFirstColumn">X XX X</div>
-  <div data-offset-x="100" data-offset-y="100" data-expected-width="130" data-expected-height="40"  class="firstRowSecondColumn">XX X<br>X XXX<br>X<br>XX XXX</div>
-  <div data-offset-x="40"  data-offset-y="0"   data-expected-width="60"  data-expected-height="10"  class="secondRowFirstColumn">X XX X</div>
-  <div data-offset-x="0"   data-offset-y="100" data-expected-width="90"  data-expected-height="130" class="secondRowSecondColumn">XX X<br>X XXX<br>X<br>XX XXX</div>
-</div>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-vertical-rl-007.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-vertical-rl-007.html
deleted file mode 100644
index ac92314..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-vertical-rl-007.html
+++ /dev/null
@@ -1,64 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-<title>CSS Grid Layout Test: Self-Alignment and stretch on fixed-sized tracks</title>
-<link rel="author" title="Javier Fernandez Garcia-Boente" href="mailto:jfernandez@igalia.com">
-<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-align-self">
-<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-justify-self">
-<link rel="help" href="https://drafts.csswg.org/css-align/#valdef-justify-self-stretch">
-<link rel="help" href="https://drafts.csswg.org/css-align/#valdef-align-self-stretch">
-<meta name="assert" content="The stretched orthogonal grid items along the column and/or row axis include their defined border-box.">
-<style>
-.grid {
-  position: relative;
-  display: inline-grid;
-  grid-template-columns: 100px 150px;
-  grid-template-rows: 150px 100px;
-  font: 10px/1 Ahem;
-  background: grey;
-  writing-mode: vertical-rl;
-}
-.grid > div { writing-mode: horizontal-tb; }
-.grid > div { border-style: solid; }
-.firstRowFirstColumn {
-  grid-row: 1;
-  grid-column: 1;
-  background: green;
-  justify-self: stretch;
-  align-self: start;
-  border-width: 0px 0px 10px 0px;
-}
-.firstRowSecondColumn {
-  grid-row: 1;
-  grid-column: 2;
-  background: blue;
-  justify-self: start;
-  align-self: stretch;
-  border-width: 0px 20px 0px 0px;
-}
-.secondRowFirstColumn {
-  grid-row: 2;
-  grid-column: 1;
-  background: yellow;
-  justify-self: start;
-  align-self: start;
-  border-width: 0px 0px 0px 0px;
-}
-.secondRowSecondColumn {
-  grid-row: 2;
-  grid-column: 2;
-  background: red;
-  justify-self: stretch;
-  align-self: stretch;
-  border-width: 0px 10px 20px 0px;
-}
-</style>
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="../support/check-layout-th.js"></script>
-<body onload="checkLayout('.grid')">
-<div class="grid">
-  <div data-offset-x="190" data-offset-y="0"   data-expected-width="60"  data-expected-height="100" class="firstRowFirstColumn">X XX X</div>
-  <div data-offset-x="100" data-offset-y="100" data-expected-width="150" data-expected-height="40"  class="firstRowSecondColumn">XX X<br>X XXX<br>X<br>XX XXX</div>
-  <div data-offset-x="40"  data-offset-y="0"   data-expected-width="60"  data-expected-height="10"  class="secondRowFirstColumn">X XX X</div>
-  <div data-offset-x="0"   data-offset-y="100" data-expected-width="100" data-expected-height="150" class="secondRowSecondColumn">XX X<br>X XXX<br>X<br>XX XXX</div>
-</div>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-vertical-rl-008.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-vertical-rl-008.html
deleted file mode 100644
index 4756ebad..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-vertical-rl-008.html
+++ /dev/null
@@ -1,63 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-<title>CSS Grid Layout Test: Self-Alignment and stretch on fixed-sized tracks</title>
-<link rel="author" title="Javier Fernandez Garcia-Boente" href="mailto:jfernandez@igalia.com">
-<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-align-self">
-<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-justify-self">
-<link rel="help" href="https://drafts.csswg.org/css-align/#valdef-justify-self-stretch">
-<link rel="help" href="https://drafts.csswg.org/css-align/#valdef-align-self-stretch">
-<meta name="assert" content="The stretched orthogonal grid items along the column and/or row axis include their defined padding-box.">
-<style>
-.grid {
-  position: relative;
-  display: inline-grid;
-  grid-template-columns: 100px 150px;
-  grid-template-rows: 150px 100px;
-  font: 10px/1 Ahem;
-  background: grey;
-  writing-mode: vertical-rl;
-}
-.grid > div { writing-mode: horizontal-tb; }
-.firstRowFirstColumn {
-  grid-row: 1;
-  grid-column: 1;
-  background: green;
-  justify-self: stretch;
-  align-self: start;
-  padding-bottom: 10px;
-}
-.firstRowSecondColumn {
-  grid-row: 1;
-  grid-column: 2;
-  background: blue;
-  justify-self: start;
-  align-self: stretch;
-  padding-right: 20px;
-}
-.secondRowFirstColumn {
-  grid-row: 2;
-  grid-column: 1;
-  background: yellow;
-  justify-self: start;
-  align-self: start;
-}
-.secondRowSecondColumn {
-  grid-row: 2;
-  grid-column: 2;
-  background: red;
-  justify-self: stretch;
-  align-self: stretch;
-  padding-bottom: 20px;
-  padding-right: 10px;
-}
-</style>
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="../support/check-layout-th.js"></script>
-<body onload="checkLayout('.grid')">
-<div class="grid">
-  <div data-offset-x="190" data-offset-y="0"   data-expected-width="60"  data-expected-height="100" class="firstRowFirstColumn">X XX X</div>
-  <div data-offset-x="100" data-offset-y="100" data-expected-width="150" data-expected-height="40"  class="firstRowSecondColumn">XX X<br>X XXX<br>X<br>XX XXX</div>
-  <div data-offset-x="40"  data-offset-y="0"   data-expected-width="60"  data-expected-height="10"  class="secondRowFirstColumn">X XX X</div>
-  <div data-offset-x="0"   data-offset-y="100" data-expected-width="100" data-expected-height="150" class="secondRowSecondColumn">XX X<br>X XXX<br>X<br>XX XXX</div>
-</div>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-vertical-rl-009.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-vertical-rl-009.html
deleted file mode 100644
index 4d05c9f..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-vertical-rl-009.html
+++ /dev/null
@@ -1,58 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-<title>CSS Grid Layout Test: Self-Alignment and stretch on auto-sized tracks</title>
-<link rel="author" title="Javier Fernandez Garcia-Boente" href="mailto:jfernandez@igalia.com">
-<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-align-self">
-<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-justify-self">
-<link rel="help" href="https://drafts.csswg.org/css-align/#valdef-justify-self-stretch">
-<link rel="help" href="https://drafts.csswg.org/css-align/#valdef-align-self-stretch">
-<meta name="assert" content="Grid items with 'stretch' value for align-self and/or justify-self are stretched along the column and/or row axis respectively; they will be sized as fit-content otherwise.">
-<style>
-.grid {
-  position: relative;
-  display: inline-grid;
-  font: 20px/1 Ahem;
-  background: grey;
-  width: 250px;
-  height: 250px;
-  writing-mode: vertical-rl;
-}
-.firstRowFirstColumn {
-  grid-row: 1;
-  grid-column: 1;
-  background: green;
-  justify-self: stretch;
-  align-self: start;
-}
-.firstRowSecondColumn {
-  grid-row: 1;
-  grid-column: 2;
-  background: blue;
-  justify-self: start;
-  align-self: stretch;
-}
-.secondRowFirstColumn {
-  grid-row: 2;
-  grid-column: 1;
-  background: yellow;
-  justify-self: start;
-  align-self: start;
-}
-.secondRowSecondColumn {
-  grid-row: 2;
-  grid-column: 2;
-  background: red;
-  justify-self: stretch;
-  align-self: stretch;
-}
-</style>
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="../support/check-layout-th.js"></script>
-<body onload="checkLayout('.grid')">
-<div class="grid">
-  <div data-offset-x="230" data-offset-y="0"   data-expected-width="20"  data-expected-height="125" class="firstRowFirstColumn">XX X</div>
-  <div data-offset-x="125" data-offset-y="125" data-expected-width="125" data-expected-height="80"  class="firstRowSecondColumn">XX X</div>
-  <div data-offset-x="105" data-offset-y="0"   data-expected-width="20"  data-expected-height="80"  class="secondRowFirstColumn">XX X</div>
-  <div data-offset-x="0"   data-offset-y="125" data-expected-width="125" data-expected-height="125" class="secondRowSecondColumn">XX X</div>
-</div>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-vertical-rl-010.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-vertical-rl-010.html
deleted file mode 100644
index 1cb5b8dc7..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-vertical-rl-010.html
+++ /dev/null
@@ -1,62 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-<title>CSS Grid Layout Test: Self-Alignment and stretch on auto-sized tracks</title>
-<link rel="author" title="Javier Fernandez Garcia-Boente" href="mailto:jfernandez@igalia.com">
-<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-align-self">
-<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-justify-self">
-<link rel="help" href="https://drafts.csswg.org/css-align/#valdef-justify-self-stretch">
-<link rel="help" href="https://drafts.csswg.org/css-align/#valdef-align-self-stretch">
-<meta name="assert" content="The stretched grid items along the column and/or row axis respect their defined margin-box's boundaries.">
-<style>
-.grid {
-  position: relative;
-  display: inline-grid;
-  font: 20px/1 Ahem;
-  background: grey;
-  width: 250px;
-  height: 250px;
-  writing-mode: vertical-rl;
-}
-.firstRowFirstColumn {
-  grid-row: 1;
-  grid-column: 1;
-  background: green;
-  justify-self: stretch;
-  align-self: start;
-  margin-bottom: 10px;
-}
-.firstRowSecondColumn {
-  grid-row: 1;
-  grid-column: 2;
-  background: blue;
-  justify-self: start;
-  align-self: stretch;
-  margin-left: 20px;
-}
-.secondRowFirstColumn {
-  grid-row: 2;
-  grid-column: 1;
-  background: yellow;
-  justify-self: start;
-  align-self: start;
-}
-.secondRowSecondColumn {
-  grid-row: 2;
-  grid-column: 2;
-  background: red;
-  justify-self: stretch;
-  align-self: stretch;
-  margin-bottom: 20px;
-  margin-left: 10px;
-}
-</style>
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="../support/check-layout-th.js"></script>
-<body onload="checkLayout('.grid')">
-<div class="grid">
-  <div data-offset-x="230" data-offset-y="0"   data-expected-width="20"  data-expected-height="110" class="firstRowFirstColumn">XX X</div>
-  <div data-offset-x="140" data-offset-y="120" data-expected-width="110" data-expected-height="80"  class="firstRowSecondColumn">XX X</div>
-  <div data-offset-x="100" data-offset-y="00"  data-expected-width="20"  data-expected-height="80"  class="secondRowFirstColumn">XX X</div>
-  <div data-offset-x="10"  data-offset-y="120" data-expected-width="110" data-expected-height="110" class="secondRowSecondColumn">XX X</div>
-</div>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-vertical-rl-011.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-vertical-rl-011.html
deleted file mode 100644
index 535d57c..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-vertical-rl-011.html
+++ /dev/null
@@ -1,63 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-<title>CSS Grid Layout Test: Self-Alignment and stretch on auto-sized tracks</title>
-<link rel="author" title="Javier Fernandez Garcia-Boente" href="mailto:jfernandez@igalia.com">
-<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-align-self">
-<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-justify-self">
-<link rel="help" href="https://drafts.csswg.org/css-align/#valdef-justify-self-stretch">
-<link rel="help" href="https://drafts.csswg.org/css-align/#valdef-align-self-stretch">
-<meta name="assert" content="The stretched grid items along the column and/or row axis respect their defined margin-box's boundaries.">
-<style>
-.grid {
-  position: relative;
-  display: inline-grid;
-  font: 20px/1 Ahem;
-  background: grey;
-  width: 250px;
-  height: 250px;
-  writing-mode: vertical-rl;
-}
-.grid > div { border-style: solid; }
-.firstRowFirstColumn {
-  grid-row: 1;
-  grid-column: 1;
-  background: green;
-  justify-self: stretch;
-  align-self: start;
-  border-width: 0px 0px 10px 0px;
-}
-.firstRowSecondColumn {
-  grid-row: 1;
-  grid-column: 2;
-  background: blue;
-  justify-self: start;
-  align-self: stretch;
-  border-width: 0px 0px 00px 20px;
-}
-.secondRowFirstColumn {
-  grid-row: 2;
-  grid-column: 1;
-  background: yellow;
-  justify-self: start;
-  align-self: start;
-  border-width: 0px 0px 0px 0px;
-}
-.secondRowSecondColumn {
-  grid-row: 2;
-  grid-column: 2;
-  background: red;
-  justify-self: stretch;
-  align-self: stretch;
-  border-width: 0px 0px 20px 10px;
-}
-</style>
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="../support/check-layout-th.js"></script>
-<body onload="checkLayout('.grid')">
-<div class="grid">
-  <div data-offset-x="230" data-offset-y="0"   data-expected-width="20"  data-expected-height="120" class="firstRowFirstColumn">XX X</div>
-  <div data-offset-x="120" data-offset-y="120" data-expected-width="130" data-expected-height="80"  class="firstRowSecondColumn">XX X</div>
-  <div data-offset-x="100" data-offset-y="0"   data-expected-width="20"  data-expected-height="80"  class="secondRowFirstColumn">XX X</div>
-  <div data-offset-x="0"   data-offset-y="120" data-expected-width="120" data-expected-height="130" class="secondRowSecondColumn">XX X</div>
-</div>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-vertical-rl-012.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-vertical-rl-012.html
deleted file mode 100644
index 8ed59c7..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-vertical-rl-012.html
+++ /dev/null
@@ -1,62 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-<title>CSS Grid Layout Test: Self-Alignment and stretch on auto-sized tracks</title>
-<link rel="author" title="Javier Fernandez Garcia-Boente" href="mailto:jfernandez@igalia.com">
-<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-align-self">
-<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-justify-self">
-<link rel="help" href="https://drafts.csswg.org/css-align/#valdef-justify-self-stretch">
-<link rel="help" href="https://drafts.csswg.org/css-align/#valdef-align-self-stretch">
-<meta name="assert" content="The stretched grid items along the column and/or row axis include their defined padding-box.">
-<style>
-.grid {
-  position: relative;
-  display: inline-grid;
-  font: 20px/1 Ahem;
-  background: grey;
-  width: 250px;
-  height: 250px;
-  writing-mode: vertical-rl;
-}
-.firstRowFirstColumn {
-  grid-row: 1;
-  grid-column: 1;
-  background: green;
-  justify-self: stretch;
-  align-self: start;
-  padding-bottom: 10px;
-}
-.firstRowSecondColumn {
-  grid-row: 1;
-  grid-column: 2;
-  background: blue;
-  justify-self: start;
-  align-self: stretch;
-  padding-left: 20px;
-}
-.secondRowFirstColumn {
-  grid-row: 2;
-  grid-column: 1;
-  background: yellow;
-  justify-self: start;
-  align-self: start;
-}
-.secondRowSecondColumn {
-  grid-row: 2;
-  grid-column: 2;
-  background: red;
-  justify-self: stretch;
-  align-self: stretch;
-  padding-bottom: 20px;
-  padding-left: 10px;
-}
-</style>
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="../support/check-layout-th.js"></script>
-<body onload="checkLayout('.grid')">
-<div class="grid">
-  <div data-offset-x="230" data-offset-y="0"   data-expected-width="20"  data-expected-height="120" class="firstRowFirstColumn">XX X</div>
-  <div data-offset-x="120" data-offset-y="120" data-expected-width="130" data-expected-height="80"  class="firstRowSecondColumn">XX X</div>
-  <div data-offset-x="100" data-offset-y="0"   data-expected-width="20"  data-expected-height="80"  class="secondRowFirstColumn">XX X</div>
-  <div data-offset-x="0"   data-offset-y="120" data-expected-width="120" data-expected-height="130" class="secondRowSecondColumn">XX X</div>
-</div>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-vertical-rl-013.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-vertical-rl-013.html
deleted file mode 100644
index 4070c2e..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-vertical-rl-013.html
+++ /dev/null
@@ -1,59 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-<title>CSS Grid Layout Test: Self-Alignment and stretch on auto-sized tracks</title>
-<link rel="author" title="Javier Fernandez Garcia-Boente" href="mailto:jfernandez@igalia.com">
-<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-align-self">
-<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-justify-self">
-<link rel="help" href="https://drafts.csswg.org/css-align/#valdef-justify-self-stretch">
-<link rel="help" href="https://drafts.csswg.org/css-align/#valdef-align-self-stretch">
-<meta name="assert" content="Orthogonal grid items with 'stretch' value for align-self and/or justify-self are stretched along the column and/or row axis respectively; they will be sized as fit-content otherwise.">
-<style>
-.grid {
-  position: relative;
-  display: inline-grid;
-  font: 20px/1 Ahem;
-  background: grey;
-  width: 250px;
-  height: 250px;
-  writing-mode: vertical-rl;
-}
-.grid > div { writing-mode: horizontal-tb; }
-.firstRowFirstColumn {
-  grid-row: 1;
-  grid-column: 1;
-  background: green;
-  justify-self: stretch;
-  align-self: start;
-}
-.firstRowSecondColumn {
-  grid-row: 1;
-  grid-column: 2;
-  background: blue;
-  justify-self: start;
-  align-self: stretch;
-}
-.secondRowFirstColumn {
-  grid-row: 2;
-  grid-column: 1;
-  background: yellow;
-  justify-self: start;
-  align-self: start;
-}
-.secondRowSecondColumn {
-  grid-row: 2;
-  grid-column: 2;
-  background: red;
-  justify-self: stretch;
-  align-self: stretch;
-}
-</style>
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="../support/check-layout-th.js"></script>
-<body onload="checkLayout('.grid')">
-<div class="grid">
-  <div data-offset-x="170" data-offset-y="0"   data-expected-width="80"  data-expected-height="125" class="firstRowFirstColumn">XX X</div>
-  <div data-offset-x="125" data-offset-y="125" data-expected-width="125" data-expected-height="20"  class="firstRowSecondColumn">XX X</div>
-  <div data-offset-x="45"  data-offset-y="0"   data-expected-width="80"  data-expected-height="20"  class="secondRowFirstColumn">XX X</div>
-  <div data-offset-x="0"   data-offset-y="125" data-expected-width="125" data-expected-height="125" class="secondRowSecondColumn">XX X</div>
-</div>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-vertical-rl-014.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-vertical-rl-014.html
deleted file mode 100644
index d6a6b30..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-vertical-rl-014.html
+++ /dev/null
@@ -1,63 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-<title>CSS Grid Layout Test: Self-Alignment and stretch on auto-sized tracks</title>
-<link rel="author" title="Javier Fernandez Garcia-Boente" href="mailto:jfernandez@igalia.com">
-<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-align-self">
-<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-justify-self">
-<link rel="help" href="https://drafts.csswg.org/css-align/#valdef-justify-self-stretch">
-<link rel="help" href="https://drafts.csswg.org/css-align/#valdef-align-self-stretch">
-<meta name="assert" content="The stretched orthogonal grid items along the column and/or row axis respect their defined margin-box's boundaries.">
-<style>
-.grid {
-  position: relative;
-  display: inline-grid;
-  font: 20px/1 Ahem;
-  background: grey;
-  width: 250px;
-  height: 250px;
-  writing-mode: vertical-rl;
-}
-.grid > div { writing-mode: horizontal-tb; }
-.firstRowFirstColumn {
-  grid-row: 1;
-  grid-column: 1;
-  background: green;
-  justify-self: stretch;
-  align-self: start;
-  margin-bottom: 10px;
-}
-.firstRowSecondColumn {
-  grid-row: 1;
-  grid-column: 2;
-  background: blue;
-  justify-self: start;
-  align-self: stretch;
-  margin-right: 20px;
-}
-.secondRowFirstColumn {
-  grid-row: 2;
-  grid-column: 1;
-  background: yellow;
-  justify-self: start;
-  align-self: start;
-}
-.secondRowSecondColumn {
-  grid-row: 2;
-  grid-column: 2;
-  background: red;
-  justify-self: stretch;
-  align-self: stretch;
-  margin-bottom: 20px;
-  margin-right: 10px;
-}
-</style>
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="../support/check-layout-th.js"></script>
-<body onload="checkLayout('.grid')">
-<div class="grid">
-  <div data-offset-x="170" data-offset-y="0"   data-expected-width="80"  data-expected-height="110" class="firstRowFirstColumn">XX X</div>
-  <div data-offset-x="120" data-offset-y="120" data-expected-width="110" data-expected-height="20"  class="firstRowSecondColumn">XX X</div>
-  <div data-offset-x="40"  data-offset-y="0"   data-expected-width="80"  data-expected-height="20"  class="secondRowFirstColumn">XX X</div>
-  <div data-offset-x="0"   data-offset-y="120" data-expected-width="110" data-expected-height="110" class="secondRowSecondColumn">XX X</div>
-</div>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-vertical-rl-015.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-vertical-rl-015.html
deleted file mode 100644
index e6ef67df..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-vertical-rl-015.html
+++ /dev/null
@@ -1,64 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-<title>CSS Grid Layout Test: Self-Alignment and stretch on auto-sized tracks</title>
-<link rel="author" title="Javier Fernandez Garcia-Boente" href="mailto:jfernandez@igalia.com">
-<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-align-self">
-<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-justify-self">
-<link rel="help" href="https://drafts.csswg.org/css-align/#valdef-justify-self-stretch">
-<link rel="help" href="https://drafts.csswg.org/css-align/#valdef-align-self-stretch">
-<meta name="assert" content="The stretched orthogonal grid items along the column and/or row axis include their defined border-box.">
-<style>
-.grid {
-  position: relative;
-  display: inline-grid;
-  font: 20px/1 Ahem;
-  background: grey;
-  width: 250px;
-  height: 250px;
-  writing-mode: vertical-rl;
-}
-.grid > div { writing-mode: horizontal-tb; }
-.grid > div { border-style: solid; }
-.firstRowFirstColumn {
-  grid-row: 1;
-  grid-column: 1;
-  background: green;
-  justify-self: stretch;
-  align-self: start;
-  border-width: 0px 0px 10px 0px;
-}
-.firstRowSecondColumn {
-  grid-row: 1;
-  grid-column: 2;
-  background: blue;
-  justify-self: start;
-  align-self: stretch;
-  border-width: 0px 20px 0px 0px;
-}
-.secondRowFirstColumn {
-  grid-row: 2;
-  grid-column: 1;
-  background: yellow;
-  justify-self: start;
-  align-self: start;
-  border-width: 0px 0px 0px 0px;
-}
-.secondRowSecondColumn {
-  grid-row: 2;
-  grid-column: 2;
-  background: red;
-  justify-self: stretch;
-  align-self: stretch;
-  border-width: 0px 10px 20px 0px;
-}
-</style>
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="../support/check-layout-th.js"></script>
-<body onload="checkLayout('.grid')">
-<div class="grid">
-  <div data-offset-x="170" data-offset-y="0"   data-expected-width="80"  data-expected-height="120" class="firstRowFirstColumn">XX X</div>
-  <div data-offset-x="120" data-offset-y="120" data-expected-width="130" data-expected-height="20"  class="firstRowSecondColumn">XX X</div>
-  <div data-offset-x="40"  data-offset-y="0"   data-expected-width="80"  data-expected-height="20"  class="secondRowFirstColumn">XX X</div>
-  <div data-offset-x="0"   data-offset-y="120" data-expected-width="120" data-expected-height="130" class="secondRowSecondColumn">XX X</div>
-</div>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-vertical-rl-016.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-vertical-rl-016.html
deleted file mode 100644
index 5e26d140..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/alignment/grid-self-alignment-stretch-vertical-rl-016.html
+++ /dev/null
@@ -1,62 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-<title>CSS Grid Layout Test: Self-Alignment and stretch on auto-sized tracks</title>
-<link rel="author" title="Javier Fernandez Garcia-Boente" href="mailto:jfernandez@igalia.com">
-<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-align-self">
-<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-justify-self">
-<link rel="help" href="https://drafts.csswg.org/css-align/#valdef-justify-self-stretch">
-<meta name="assert" content="The stretched orthogonal grid items along the column and/or row axis include their defined padding-box.">
-<style>
-.grid {
-  position: relative;
-  display: inline-grid;
-  font: 20px/1 Ahem;
-  background: grey;
-  width: 250px;
-  height: 250px;
-  writing-mode: vertical-rl;
-}
-.grid > div { writing-mode: horizontal-tb; }
-.firstRowFirstColumn {
-  grid-row: 1;
-  grid-column: 1;
-  background: green;
-  justify-self: stretch;
-  align-self: start;
-  padding-bottom: 10px;
-}
-.firstRowSecondColumn {
-  grid-row: 1;
-  grid-column: 2;
-  background: blue;
-  justify-self: start;
-  align-self: stretch;
-  padding-right: 20px;
-}
-.secondRowFirstColumn {
-  grid-row: 2;
-  grid-column: 1;
-  background: yellow;
-  justify-self: start;
-  align-self: start;
-}
-.secondRowSecondColumn {
-  grid-row: 2;
-  grid-column: 2;
-  background: red;
-  justify-self: stretch;
-  align-self: stretch;
-  padding-bottom: 20px;
-  padding-right: 10px;
-}
-</style>
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="../support/check-layout-th.js"></script>
-<body onload="checkLayout('.grid')">
-<div class="grid">
-  <div data-offset-x="170" data-offset-y="0"   data-expected-width="80"  data-expected-height="120" class="firstRowFirstColumn">XX X</div>
-  <div data-offset-x="120" data-offset-y="120" data-expected-width="130" data-expected-height="20"  class="firstRowSecondColumn">XX X</div>
-  <div data-offset-x="40"  data-offset-y="0"   data-expected-width="80"  data-expected-height="20"  class="secondRowFirstColumn">XX X</div>
-  <div data-offset-x="0"   data-offset-y="120" data-expected-width="120" data-expected-height="130" class="secondRowSecondColumn">XX X</div>
-</div>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-definition/grid-inline-support-flexible-lengths-001.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-definition/grid-inline-support-flexible-lengths-001.html
new file mode 100644
index 0000000..65ddb8ab
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-definition/grid-inline-support-flexible-lengths-001.html
@@ -0,0 +1,100 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Grid Layout Test: Support flexible lengths for 'grid-template-columns' and 'grid-template-rows' properties within an inline grid</title>
+<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
+<link rel="help" href="http://www.w3.org/TR/css-grid-1/#fr-unit" title="5.1.3 Flexible Lengths: the fr unit">
+<meta name="flags" content="ahem dom">
+<meta name="assert" content="This test checks that 'grid-template-columns' and 'grid-template-rows' properties support flexible lengths (the 'fr' unit) within an inline grid, so you can use it to represent a fraction of the free space in the grid container.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="support/testing-utils.js"></script>
+<style>
+  .inline-grid {
+    display: inline-grid;
+    width: 800px;
+    height: 600px;
+    font: 10px/1 Ahem;
+    justify-content: start;
+    align-content: start;
+  }
+</style>
+<div id="log"></div>
+
+<div id="emptyGrid" class="inline-grid"></div>
+<div id="grid" class="inline-grid">
+  <div>GRID ITEM</div>
+</div>
+
+<script>
+  // Valid values.
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "1fr", "1fr", "800px", "600px");
+  TestingUtils.testGridTemplateColumnsRows("grid", "1fr", "1fr", "800px", "600px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "2fr", "2fr", "800px", "600px");
+  TestingUtils.testGridTemplateColumnsRows("grid", "2fr", "2fr", "800px", "600px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "10fr", "10fr", "800px", "600px");
+  TestingUtils.testGridTemplateColumnsRows("grid", "10fr", "10fr", "800px", "600px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "0.5fr", "0.5fr", "400px", "300px");
+  TestingUtils.testGridTemplateColumnsRows("grid", "0.5fr", "0.5fr", "400px", "300px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", ".5fr", ".5fr", "400px", "300px");
+  TestingUtils.testGridTemplateColumnsRows("grid", ".5fr", ".5fr", "400px", "300px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "minmax(100px, 1fr)", "minmax(100px, 1fr)", "800px", "600px");
+  TestingUtils.testGridTemplateColumnsRows("grid", "minmax(100px, 1fr)", "minmax(100px, 1fr)", "800px", "600px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "minmax(1fr, 1fr)", "minmax(1fr, 1fr)", "800px", "600px");
+  TestingUtils.testGridTemplateColumnsRows("grid", "minmax(1fr, 1fr)", "minmax(1fr, 1fr)", "800px", "600px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "1fr 1fr", "1fr 1fr", ["400px 400px", "repeat(2, 400px)"], ["300px 300px", "repeat(2, 300px)"]);
+  TestingUtils.testGridTemplateColumnsRows("grid", "1fr 1fr", "1fr 1fr", ["400px 400px", "repeat(2, 400px)"], ["300px 300px", "repeat(2, 300px)"]);
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "0.25fr 0.75fr", "0.25fr 0.75fr", "200px 600px", "150px 450px");
+  TestingUtils.testGridTemplateColumnsRows("grid", "0.25fr 0.75fr", "0.25fr 0.75fr", "200px 600px", "150px 450px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "1fr 2fr 1fr", "1fr 2fr 1fr", "200px 400px 200px", "150px 300px 150px");
+  TestingUtils.testGridTemplateColumnsRows("grid", "1fr 2fr 1fr", "1fr 2fr 1fr", "200px 400px 200px", "150px 300px 150px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "auto 1fr 4fr 3fr 2fr", "auto 1fr 4fr 3fr 2fr", "0px 80px 320px 240px 160px", "0px 60px 240px 180px 120px");
+  TestingUtils.testGridTemplateColumnsRows("grid", "auto 1fr 4fr 3fr 2fr", "auto 1fr 4fr 3fr 2fr", "90px 71px 284px 213px 142px", "10px 59px 236px 177px 118px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "1fr 4fr 100px 3fr 2fr", "1fr 4fr 100px 3fr 2fr", "70px 280px 100px 210px 140px", "50px 200px 100px 150px 100px");
+  TestingUtils.testGridTemplateColumnsRows("grid", "1fr 4fr 100px 3fr 2fr", "1fr 4fr 100px 3fr 2fr", "70px 280px 100px 210px 140px", "50px 200px 100px 150px 100px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "auto 1fr", "auto 1fr", "0px 800px", "0px 600px");
+  TestingUtils.testGridTemplateColumnsRows("grid", "auto 1fr", "auto 1fr", "90px 710px", "10px 590px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "max-content 1fr", "max-content 1fr", "0px 800px", "0px 600px");
+  TestingUtils.testGridTemplateColumnsRows("grid", "max-content 1fr", "max-content 1fr", "90px 710px", "10px 590px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "min-content 1fr", "min-content 1fr", "0px 800px", "0px 600px");
+  TestingUtils.testGridTemplateColumnsRows("grid", "min-content 1fr", "min-content 1fr", "40px 760px", "20px 580px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "1fr auto", "1fr auto", "800px 0px", "600px 0px");
+  TestingUtils.testGridTemplateColumnsRows("grid", "1fr auto", "1fr auto", "800px 0px", "600px 0px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "300px 1fr", "200px 1fr", "300px 500px", "200px 400px");
+  TestingUtils.testGridTemplateColumnsRows("grid", "300px 1fr", "200px 1fr", "300px 500px", "200px 400px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "800px 1fr", "600px 1fr", "800px 0px", "600px 0px");
+  TestingUtils.testGridTemplateColumnsRows("grid", "800px 1fr", "600px 1fr", "800px 0px", "600px 0px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "1000px 1fr", "700px 1fr", "1000px 0px", "700px 0px");
+  TestingUtils.testGridTemplateColumnsRows("grid", "1000px 1fr", "700px 1fr", "1000px 0px", "700px 0px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "calc(50px + 50%) 1fr", "calc(50px + 50%) 1fr", "450px 350px", "350px 250px");
+  TestingUtils.testGridTemplateColumnsRows("grid", "calc(50px + 50%) 1fr", "calc(50px + 50%) 1fr", "450px 350px", "350px 250px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "minmax(100px, 300px) 1fr", "minmax(100px, 200px) 1fr", "300px 500px", "200px 400px");
+  TestingUtils.testGridTemplateColumnsRows("grid", "minmax(100px, 300px) 1fr", "minmax(100px, 200px) 1fr", "300px 500px", "200px 400px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "repeat(4, 1fr)", "repeat(4, 1fr)", ["200px 200px 200px 200px", "repeat(4, 200px)"], ["150px 150px 150px 150px", "repeat(4, 150px)"]);
+  TestingUtils.testGridTemplateColumnsRows("grid", "repeat(4, 1fr)", "repeat(4, 1fr)", ["200px 200px 200px 200px", "repeat(4, 200px)"], ["150px 150px 150px 150px", "repeat(4, 150px)"]);
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[a] repeat(4, [b] 1fr [c]) [d]", "[z] repeat(4, [y] 1fr) [x]", ["[a b] 200px [c b] 200px [c b] 200px [c b] 200px [c d]", "[a] repeat(4, [b] 200px [c]) [d]"], ["[z y] 150px [y] 150px [y] 150px [y] 150px [x]", "[z] repeat(4, [y] 150px) [x]"]);
+  TestingUtils.testGridTemplateColumnsRows("grid", "[a] repeat(4, [b] 1fr [c]) [d]", "[z] repeat(4, [y] 1fr) [x]", ["[a b] 200px [c b] 200px [c b] 200px [c b] 200px [c d]", "[a] repeat(4, [b] 200px [c]) [d]"], ["[z y] 150px [y] 150px [y] 150px [y] 150px [x]", "[z] repeat(4, [y] 150px) [x]"]);
+
+  // Reset values.
+  document.getElementById("emptyGrid").style.gridTemplateColumns = "";
+  document.getElementById("emptyGrid").style.gridTemplateRows = "";
+  document.getElementById("grid").style.gridTemplateColumns = "";
+  document.getElementById("grid").style.gridTemplateRows = "";
+
+  // Wrong values.
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "fr", "fr", "none", "none");
+  TestingUtils.testGridTemplateColumnsRows("grid", "fr", "fr", "90px", "10px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "1 fr", "1 fr", "none", "none");
+  TestingUtils.testGridTemplateColumnsRows("grid", "1 fr", "1 fr", "90px", "10px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "1free-space", "1free-space", "none", "none");
+  TestingUtils.testGridTemplateColumnsRows("grid", "1free-space", "1free-space", "90px", "10px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "-2fr", "-2fr", "none", "none");
+  TestingUtils.testGridTemplateColumnsRows("grid", "-2fr", "-2fr", "90px", "10px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "0,5fr", "0,5fr", "none", "none");
+  TestingUtils.testGridTemplateColumnsRows("grid", "0,5fr", "0,5fr", "90px", "10px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "calc(1fr + 100px)", "calc(1fr + 100px)", "none", "none");
+  TestingUtils.testGridTemplateColumnsRows("grid", "calc(1fr + 100px)", "calc(1fr + 100px)", "90px", "10px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "(1fr) auto", "(1fr) auto", "none", "none");
+  TestingUtils.testGridTemplateColumnsRows("grid", "(1fr) auto", "(1fr) auto", "90px", "10px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "minmax(1fr, 1000px)", "minmax(1fr, 700px)", "none", "none");
+  TestingUtils.testGridTemplateColumnsRows("grid", "minmax(1fr, 1000px)", "minmax(1fr, 700px)", "90px", "10px");
+</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-definition/grid-inline-support-flexible-lengths-001.xht b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-definition/grid-inline-support-flexible-lengths-001.xht
deleted file mode 100644
index 5251e2a..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-definition/grid-inline-support-flexible-lengths-001.xht
+++ /dev/null
@@ -1,105 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-    <head>
-        <title>CSS Grid Layout Test: Support flexible lengths for 'grid-template-columns' and 'grid-template-rows' properties within an inline grid</title>
-        <link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com" />
-        <link rel="help" href="http://www.w3.org/TR/css-grid-1/#fr-unit" title="5.1.3 Flexible Lengths: the fr unit" />
-        <meta name="flags" content="ahem dom" />
-        <meta name="assert" content="This test checks that 'grid-template-columns' and 'grid-template-rows' properties support flexible lengths (the 'fr' unit) within an inline grid, so you can use it to represent a fraction of the free space in the grid container." />
-        <script src="/resources/testharness.js" type="text/javascript"></script>
-        <script src="/resources/testharnessreport.js" type="text/javascript"></script>
-        <script src="support/testing-utils.js" type="text/javascript"></script>
-        <style type="text/css"><![CDATA[
-            .inline-grid {
-                display: inline-grid;
-                width: 800px;
-                height: 600px;
-                font: 10px/1 Ahem;
-                justify-content: start;
-                align-content: start;
-            }
-        ]]></style>
-    </head>
-    <body>
-        <div id="log"></div>
-
-        <div id="emptyGrid" class="inline-grid"></div>
-        <div id="grid" class="inline-grid">
-            <div>GRID ITEM</div>
-        </div>
-
-        <script type="text/javascript"><![CDATA[
-            // Valid values.
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "1fr", "1fr", "800px", "600px");
-            TestingUtils.testGridTemplateColumnsRows("grid", "1fr", "1fr", "800px", "600px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "2fr", "2fr", "800px", "600px");
-            TestingUtils.testGridTemplateColumnsRows("grid", "2fr", "2fr", "800px", "600px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "10fr", "10fr", "800px", "600px");
-            TestingUtils.testGridTemplateColumnsRows("grid", "10fr", "10fr", "800px", "600px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "0.5fr", "0.5fr", "400px", "300px");
-            TestingUtils.testGridTemplateColumnsRows("grid", "0.5fr", "0.5fr", "400px", "300px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", ".5fr", ".5fr", "400px", "300px");
-            TestingUtils.testGridTemplateColumnsRows("grid", ".5fr", ".5fr", "400px", "300px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "minmax(100px, 1fr)", "minmax(100px, 1fr)", "800px", "600px");
-            TestingUtils.testGridTemplateColumnsRows("grid", "minmax(100px, 1fr)", "minmax(100px, 1fr)", "800px", "600px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "minmax(1fr, 1fr)", "minmax(1fr, 1fr)", "800px", "600px");
-            TestingUtils.testGridTemplateColumnsRows("grid", "minmax(1fr, 1fr)", "minmax(1fr, 1fr)", "800px", "600px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "1fr 1fr", "1fr 1fr", ["400px 400px", "repeat(2, 400px)"], ["300px 300px", "repeat(2, 300px)"]);
-            TestingUtils.testGridTemplateColumnsRows("grid", "1fr 1fr", "1fr 1fr", ["400px 400px", "repeat(2, 400px)"], ["300px 300px", "repeat(2, 300px)"]);
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "0.25fr 0.75fr", "0.25fr 0.75fr", "200px 600px", "150px 450px");
-            TestingUtils.testGridTemplateColumnsRows("grid", "0.25fr 0.75fr", "0.25fr 0.75fr", "200px 600px", "150px 450px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "1fr 2fr 1fr", "1fr 2fr 1fr", "200px 400px 200px", "150px 300px 150px");
-            TestingUtils.testGridTemplateColumnsRows("grid", "1fr 2fr 1fr", "1fr 2fr 1fr", "200px 400px 200px", "150px 300px 150px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "auto 1fr 4fr 3fr 2fr", "auto 1fr 4fr 3fr 2fr", "0px 80px 320px 240px 160px", "0px 60px 240px 180px 120px");
-            TestingUtils.testGridTemplateColumnsRows("grid", "auto 1fr 4fr 3fr 2fr", "auto 1fr 4fr 3fr 2fr", "90px 71px 284px 213px 142px", "10px 59px 236px 177px 118px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "1fr 4fr 100px 3fr 2fr", "1fr 4fr 100px 3fr 2fr", "70px 280px 100px 210px 140px", "50px 200px 100px 150px 100px");
-            TestingUtils.testGridTemplateColumnsRows("grid", "1fr 4fr 100px 3fr 2fr", "1fr 4fr 100px 3fr 2fr", "70px 280px 100px 210px 140px", "50px 200px 100px 150px 100px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "auto 1fr", "auto 1fr", "0px 800px", "0px 600px");
-            TestingUtils.testGridTemplateColumnsRows("grid", "auto 1fr", "auto 1fr", "90px 710px", "10px 590px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "max-content 1fr", "max-content 1fr", "0px 800px", "0px 600px");
-            TestingUtils.testGridTemplateColumnsRows("grid", "max-content 1fr", "max-content 1fr", "90px 710px", "10px 590px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "min-content 1fr", "min-content 1fr", "0px 800px", "0px 600px");
-            TestingUtils.testGridTemplateColumnsRows("grid", "min-content 1fr", "min-content 1fr", "40px 760px", "20px 580px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "1fr auto", "1fr auto", "800px 0px", "600px 0px");
-            TestingUtils.testGridTemplateColumnsRows("grid", "1fr auto", "1fr auto", "800px 0px", "600px 0px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "300px 1fr", "200px 1fr", "300px 500px", "200px 400px");
-            TestingUtils.testGridTemplateColumnsRows("grid", "300px 1fr", "200px 1fr", "300px 500px", "200px 400px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "800px 1fr", "600px 1fr", "800px 0px", "600px 0px");
-            TestingUtils.testGridTemplateColumnsRows("grid", "800px 1fr", "600px 1fr", "800px 0px", "600px 0px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "1000px 1fr", "700px 1fr", "1000px 0px", "700px 0px");
-            TestingUtils.testGridTemplateColumnsRows("grid", "1000px 1fr", "700px 1fr", "1000px 0px", "700px 0px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "calc(50px + 50%) 1fr", "calc(50px + 50%) 1fr", "450px 350px", "350px 250px");
-            TestingUtils.testGridTemplateColumnsRows("grid", "calc(50px + 50%) 1fr", "calc(50px + 50%) 1fr", "450px 350px", "350px 250px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "minmax(100px, 300px) 1fr", "minmax(100px, 200px) 1fr", "300px 500px", "200px 400px");
-            TestingUtils.testGridTemplateColumnsRows("grid", "minmax(100px, 300px) 1fr", "minmax(100px, 200px) 1fr", "300px 500px", "200px 400px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "repeat(4, 1fr)", "repeat(4, 1fr)", ["200px 200px 200px 200px", "repeat(4, 200px)"], ["150px 150px 150px 150px", "repeat(4, 150px)"]);
-            TestingUtils.testGridTemplateColumnsRows("grid", "repeat(4, 1fr)", "repeat(4, 1fr)", ["200px 200px 200px 200px", "repeat(4, 200px)"], ["150px 150px 150px 150px", "repeat(4, 150px)"]);
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[a] repeat(4, [b] 1fr [c]) [d]", "[z] repeat(4, [y] 1fr) [x]", ["[a b] 200px [c b] 200px [c b] 200px [c b] 200px [c d]", "[a] repeat(4, [b] 200px [c]) [d]"], ["[z y] 150px [y] 150px [y] 150px [y] 150px [x]", "[z] repeat(4, [y] 150px) [x]"]);
-            TestingUtils.testGridTemplateColumnsRows("grid", "[a] repeat(4, [b] 1fr [c]) [d]", "[z] repeat(4, [y] 1fr) [x]", ["[a b] 200px [c b] 200px [c b] 200px [c b] 200px [c d]", "[a] repeat(4, [b] 200px [c]) [d]"], ["[z y] 150px [y] 150px [y] 150px [y] 150px [x]", "[z] repeat(4, [y] 150px) [x]"]);
-
-            // Reset values.
-            document.getElementById("emptyGrid").style.gridTemplateColumns = "";
-            document.getElementById("emptyGrid").style.gridTemplateRows = "";
-            document.getElementById("grid").style.gridTemplateColumns = "";
-            document.getElementById("grid").style.gridTemplateRows = "";
-
-            // Wrong values.
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "fr", "fr", "none", "none");
-            TestingUtils.testGridTemplateColumnsRows("grid", "fr", "fr", "90px", "10px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "1 fr", "1 fr", "none", "none");
-            TestingUtils.testGridTemplateColumnsRows("grid", "1 fr", "1 fr", "90px", "10px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "1free-space", "1free-space", "none", "none");
-            TestingUtils.testGridTemplateColumnsRows("grid", "1free-space", "1free-space", "90px", "10px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "-2fr", "-2fr", "none", "none");
-            TestingUtils.testGridTemplateColumnsRows("grid", "-2fr", "-2fr", "90px", "10px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "0,5fr", "0,5fr", "none", "none");
-            TestingUtils.testGridTemplateColumnsRows("grid", "0,5fr", "0,5fr", "90px", "10px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "calc(1fr + 100px)", "calc(1fr + 100px)", "none", "none");
-            TestingUtils.testGridTemplateColumnsRows("grid", "calc(1fr + 100px)", "calc(1fr + 100px)", "90px", "10px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "(1fr) auto", "(1fr) auto", "none", "none");
-            TestingUtils.testGridTemplateColumnsRows("grid", "(1fr) auto", "(1fr) auto", "90px", "10px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "minmax(1fr, 1000px)", "minmax(1fr, 700px)", "none", "none");
-            TestingUtils.testGridTemplateColumnsRows("grid", "minmax(1fr, 1000px)", "minmax(1fr, 700px)", "90px", "10px");
-        ]]></script>
-    </body>
-</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-definition/grid-inline-support-grid-template-areas-001.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-definition/grid-inline-support-grid-template-areas-001.html
new file mode 100644
index 0000000..d647c26
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-definition/grid-inline-support-grid-template-areas-001.html
@@ -0,0 +1,72 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Grid Layout Test: Support for 'grid-template-ares' property within an inline grid</title>
+<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
+<link rel="help" href="http://www.w3.org/TR/css-grid-1/#grid-template-areas-property" title="5.2 Named Areas: the 'grid-template-areas' property">
+<meta name="flags" content="ahem dom">
+<meta name="assert" content="This test checks that 'grid-template-areas' is supported in an inline grid. So you can define the grid structure.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="support/testing-utils.js"></script>
+<style>
+  #grid {
+    display: inline-grid;
+  }
+</style>
+<div id="log"></div>
+
+<div id="inline-grid"></div>
+
+<script>
+  // Single values.
+  TestingUtils.testGridTemplateAreas('inline-grid', 'none', 'none');
+  TestingUtils.testGridTemplateAreas('inline-grid', '"a"', '"a"');
+  TestingUtils.testGridTemplateAreas('inline-grid', '"."', '"."');
+  TestingUtils.testGridTemplateAreas('inline-grid', '"lower UPPER 10 -minus _low 1-st ©copy_right line¶"', '"lower UPPER 10 -minus _low 1-st ©copy_right line¶"');
+  TestingUtils.testGridTemplateAreas('inline-grid', '"a b"', '"a b"');
+  TestingUtils.testGridTemplateAreas('inline-grid', '"a b" "c d"', '"a b" "c d"');
+  TestingUtils.testGridTemplateAreas('inline-grid', '"a   b"   "c   d"', ['"a b" "c d"', '"a   b" "c   d"']);
+  TestingUtils.testGridTemplateAreas('inline-grid', '"a b""c d"', '"a b" "c d"');
+  TestingUtils.testGridTemplateAreas('inline-grid', '"a b"\t"c d"', '"a b" "c d"');
+  TestingUtils.testGridTemplateAreas('inline-grid', '"a b"\n"c d"', '"a b" "c d"');
+  TestingUtils.testGridTemplateAreas('inline-grid', '"a b" "a b"', '"a b" "a b"');
+  TestingUtils.testGridTemplateAreas('inline-grid', '"a a" "b b"', '"a a" "b b"');
+  TestingUtils.testGridTemplateAreas('inline-grid', '". a ." "b a c"', '". a ." "b a c"');
+  TestingUtils.testGridTemplateAreas('inline-grid', '".. a ..." "b a c"', ['". a ." "b a c"', '".. a ..." "b a c"']);
+  TestingUtils.testGridTemplateAreas('inline-grid', '".a..." "b a c"', ['". a ." "b a c"', '".a..." "b a c"']);
+  TestingUtils.testGridTemplateAreas('inline-grid', '"head head" "nav main" "foot ."', '"head head" "nav main" "foot ."');
+  TestingUtils.testGridTemplateAreas('inline-grid', '"head head" "nav main" "foot ...."', ['"head head" "nav main" "foot ."', '"head head" "nav main" "foot ...."']);
+  TestingUtils.testGridTemplateAreas('inline-grid', '"head head" "nav main" "foot."', ['"head head" "nav main" "foot ."', '"head head" "nav main" "foot."']);
+  TestingUtils.testGridTemplateAreas('inline-grid', '". header header ." "nav main main main" "nav footer footer ."', '". header header ." "nav main main main" "nav footer footer ."');
+  TestingUtils.testGridTemplateAreas('inline-grid', '"... header header ...." "nav main main main" "nav footer footer ...."', ['". header header ." "nav main main main" "nav footer footer ."', '"... header header ...." "nav main main main" "nav footer footer ...."']);
+  TestingUtils.testGridTemplateAreas('inline-grid', '"...header header...." "nav main main main" "nav footer footer...."', ['". header header ." "nav main main main" "nav footer footer ."', '"...header header...." "nav main main main" "nav footer footer...."']);
+  TestingUtils.testGridTemplateAreas('inline-grid', '"title stats" "score stats" "board board" "ctrls ctrls"', '"title stats" "score stats" "board board" "ctrls ctrls"');
+  TestingUtils.testGridTemplateAreas('inline-grid', '"title board" "stats board" "score ctrls"', '"title board" "stats board" "score ctrls"');
+  TestingUtils.testGridTemplateAreas('inline-grid', '". a" "b a" ". a"', '". a" "b a" ". a"');
+  TestingUtils.testGridTemplateAreas('inline-grid', '".. a" "b a" "... a"', ['". a" "b a" ". a"', '".. a" "b a" "... a"']);
+  TestingUtils.testGridTemplateAreas('inline-grid', '"..a" "b a" ".a"', ['". a" "b a" ". a"', '"..a" "b a" ".a"']);
+  TestingUtils.testGridTemplateAreas('inline-grid', '"a a a" "b b b"', '"a a a" "b b b"');
+  TestingUtils.testGridTemplateAreas('inline-grid', '". ." "a a"', '". ." "a a"');
+  TestingUtils.testGridTemplateAreas('inline-grid', '"... ...." "a a"', ['". ." "a a"', '"... ...." "a a"']);
+
+  // Reset values.
+  document.getElementById('inline-grid').style.gridTemplateAreas = '';
+
+  // Wrong values.
+  TestingUtils.testGridTemplateAreas('inline-grid', 'a', 'none');
+  TestingUtils.testGridTemplateAreas('inline-grid', '"a" "b c"', 'none');
+  TestingUtils.testGridTemplateAreas('inline-grid', '"a b" "c" "d e"', 'none');
+  TestingUtils.testGridTemplateAreas('inline-grid', '"a b c" "d e"', 'none');
+  TestingUtils.testGridTemplateAreas('inline-grid', '"a b"-"c d"', 'none');
+  TestingUtils.testGridTemplateAreas('inline-grid', '"a b" - "c d"', 'none');
+  TestingUtils.testGridTemplateAreas('inline-grid', '"a b" . "c d"', 'none');
+  TestingUtils.testGridTemplateAreas('inline-grid', '"a b a"', 'none');
+  TestingUtils.testGridTemplateAreas('inline-grid', '"a" "b" "a"', 'none');
+  TestingUtils.testGridTemplateAreas('inline-grid', '"a b" "b b"', 'none');
+  TestingUtils.testGridTemplateAreas('inline-grid', '"b a" "b b"', 'none');
+  TestingUtils.testGridTemplateAreas('inline-grid', '"a b" "b a"', 'none');
+  TestingUtils.testGridTemplateAreas('inline-grid', '"a ." ". a"', 'none');
+  TestingUtils.testGridTemplateAreas('inline-grid', '","', 'none');
+  TestingUtils.testGridTemplateAreas('inline-grid', '"10%"', 'none');
+  TestingUtils.testGridTemplateAreas('inline-grid', '"USD$"', 'none');
+</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-definition/grid-inline-support-grid-template-areas-001.xht b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-definition/grid-inline-support-grid-template-areas-001.xht
deleted file mode 100644
index 0e119db..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-definition/grid-inline-support-grid-template-areas-001.xht
+++ /dev/null
@@ -1,77 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-    <head>
-        <title>CSS Grid Layout Test: Support for 'grid-template-ares' property within an inline grid</title>
-        <link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com" />
-        <link rel="help" href="http://www.w3.org/TR/css-grid-1/#grid-template-areas-property" title="5.2 Named Areas: the 'grid-template-areas' property" />
-        <meta name="flags" content="ahem dom" />
-        <meta name="assert" content="This test checks that 'grid-template-areas' is supported in an inline grid. So you can define the grid structure." />
-        <script src="/resources/testharness.js" type="text/javascript"></script>
-        <script src="/resources/testharnessreport.js" type="text/javascript"></script>
-        <script src="support/testing-utils.js" type="text/javascript"></script>
-        <style type="text/css"><![CDATA[
-            #grid {
-                display: inline-grid;
-            }
-        ]]></style>
-    </head>
-    <body>
-        <div id="log"></div>
-
-        <div id="inline-grid"></div>
-
-        <script type="text/javascript"><![CDATA[
-            // Single values.
-            TestingUtils.testGridTemplateAreas('inline-grid', 'none', 'none');
-            TestingUtils.testGridTemplateAreas('inline-grid', '"a"', '"a"');
-            TestingUtils.testGridTemplateAreas('inline-grid', '"."', '"."');
-            TestingUtils.testGridTemplateAreas('inline-grid', '"lower UPPER 10 -minus _low 1-st ©copy_right line¶"', '"lower UPPER 10 -minus _low 1-st ©copy_right line¶"');
-            TestingUtils.testGridTemplateAreas('inline-grid', '"a b"', '"a b"');
-            TestingUtils.testGridTemplateAreas('inline-grid', '"a b" "c d"', '"a b" "c d"');
-            TestingUtils.testGridTemplateAreas('inline-grid', '"a     b"     "c     d"', ['"a b" "c d"', '"a     b" "c     d"']);
-            TestingUtils.testGridTemplateAreas('inline-grid', '"a b""c d"', '"a b" "c d"');
-            TestingUtils.testGridTemplateAreas('inline-grid', '"a b"\t"c d"', '"a b" "c d"');
-            TestingUtils.testGridTemplateAreas('inline-grid', '"a b"\n"c d"', '"a b" "c d"');
-            TestingUtils.testGridTemplateAreas('inline-grid', '"a b" "a b"', '"a b" "a b"');
-            TestingUtils.testGridTemplateAreas('inline-grid', '"a a" "b b"', '"a a" "b b"');
-            TestingUtils.testGridTemplateAreas('inline-grid', '". a ." "b a c"', '". a ." "b a c"');
-            TestingUtils.testGridTemplateAreas('inline-grid', '".. a ..." "b a c"', ['". a ." "b a c"', '".. a ..." "b a c"']);
-            TestingUtils.testGridTemplateAreas('inline-grid', '".a..." "b a c"', ['". a ." "b a c"', '".a..." "b a c"']);
-            TestingUtils.testGridTemplateAreas('inline-grid', '"head head" "nav main" "foot ."', '"head head" "nav main" "foot ."');
-            TestingUtils.testGridTemplateAreas('inline-grid', '"head head" "nav main" "foot ...."', ['"head head" "nav main" "foot ."', '"head head" "nav main" "foot ...."']);
-            TestingUtils.testGridTemplateAreas('inline-grid', '"head head" "nav main" "foot."', ['"head head" "nav main" "foot ."', '"head head" "nav main" "foot."']);
-            TestingUtils.testGridTemplateAreas('inline-grid', '". header header ." "nav main main main" "nav footer footer ."', '". header header ." "nav main main main" "nav footer footer ."');
-            TestingUtils.testGridTemplateAreas('inline-grid', '"... header header ...." "nav main main main" "nav footer footer ...."', ['". header header ." "nav main main main" "nav footer footer ."', '"... header header ...." "nav main main main" "nav footer footer ...."']);
-            TestingUtils.testGridTemplateAreas('inline-grid', '"...header header...." "nav main main main" "nav footer footer...."', ['". header header ." "nav main main main" "nav footer footer ."', '"...header header...." "nav main main main" "nav footer footer...."']);
-            TestingUtils.testGridTemplateAreas('inline-grid', '"title stats" "score stats" "board board" "ctrls ctrls"', '"title stats" "score stats" "board board" "ctrls ctrls"');
-            TestingUtils.testGridTemplateAreas('inline-grid', '"title board" "stats board" "score ctrls"', '"title board" "stats board" "score ctrls"');
-            TestingUtils.testGridTemplateAreas('inline-grid', '". a" "b a" ". a"', '". a" "b a" ". a"');
-            TestingUtils.testGridTemplateAreas('inline-grid', '".. a" "b a" "... a"', ['". a" "b a" ". a"', '".. a" "b a" "... a"']);
-            TestingUtils.testGridTemplateAreas('inline-grid', '"..a" "b a" ".a"', ['". a" "b a" ". a"', '"..a" "b a" ".a"']);
-            TestingUtils.testGridTemplateAreas('inline-grid', '"a a a" "b b b"', '"a a a" "b b b"');
-            TestingUtils.testGridTemplateAreas('inline-grid', '". ." "a a"', '". ." "a a"');
-            TestingUtils.testGridTemplateAreas('inline-grid', '"... ...." "a a"', ['". ." "a a"', '"... ...." "a a"']);
-
-            // Reset values.
-            document.getElementById('inline-grid').style.gridTemplateAreas = '';
-
-            // Wrong values.
-            TestingUtils.testGridTemplateAreas('inline-grid', 'a', 'none');
-            TestingUtils.testGridTemplateAreas('inline-grid', '"a" "b c"', 'none');
-            TestingUtils.testGridTemplateAreas('inline-grid', '"a b" "c" "d e"', 'none');
-            TestingUtils.testGridTemplateAreas('inline-grid', '"a b c" "d e"', 'none');
-            TestingUtils.testGridTemplateAreas('inline-grid', '"a b"-"c d"', 'none');
-            TestingUtils.testGridTemplateAreas('inline-grid', '"a b" - "c d"', 'none');
-            TestingUtils.testGridTemplateAreas('inline-grid', '"a b" . "c d"', 'none');
-            TestingUtils.testGridTemplateAreas('inline-grid', '"a b a"', 'none');
-            TestingUtils.testGridTemplateAreas('inline-grid', '"a" "b" "a"', 'none');
-            TestingUtils.testGridTemplateAreas('inline-grid', '"a b" "b b"', 'none');
-            TestingUtils.testGridTemplateAreas('inline-grid', '"b a" "b b"', 'none');
-            TestingUtils.testGridTemplateAreas('inline-grid', '"a b" "b a"', 'none');
-            TestingUtils.testGridTemplateAreas('inline-grid', '"a ." ". a"', 'none');
-            TestingUtils.testGridTemplateAreas('inline-grid', '","', 'none');
-            TestingUtils.testGridTemplateAreas('inline-grid', '"10%"', 'none');
-            TestingUtils.testGridTemplateAreas('inline-grid', '"USD$"', 'none');
-        ]]></script>
-    </body>
-</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-definition/grid-inline-support-grid-template-columns-rows-001.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-definition/grid-inline-support-grid-template-columns-rows-001.html
new file mode 100644
index 0000000..5a20c01
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-definition/grid-inline-support-grid-template-columns-rows-001.html
@@ -0,0 +1,84 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Grid Layout Test: Support for 'grid-template-columns' and 'grid-template-rows' properties within an inline grid</title>
+<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
+<link rel="help" href="http://www.w3.org/TR/css-grid-1/#track-sizing" title="5.1 Track Sizing: the 'grid-template-rows' and 'grid-template-columns' properties">
+<meta name="flags" content="ahem dom">
+<meta name="assert" content="This test checks that 'grid-template-columns' and 'grid-template-rows' properties are supported in an inline grid. So you can use the different syntax options to define the trak list.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="support/testing-utils.js"></script>
+<style>
+  .inline-grid {
+    display: inline-grid;
+    width: 800px;
+    height: 600px;
+    font: 10px/1 Ahem;
+    justify-content: start;
+    align-content: start;
+  }
+</style>
+<div id="log"></div>
+
+<div id="emptyGrid" class="inline-grid"></div>
+<div id="grid" class="inline-grid">
+  <div id="item">GRID ITEM</div>
+</div>
+
+<script>
+  // Single values.
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "none", "none", "none", "none");
+  TestingUtils.testGridTemplateColumnsRows("grid", "none", "none", "90px", "10px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "auto", "auto", "0px", "0px");
+  TestingUtils.testGridTemplateColumnsRows("grid", "auto", "auto", "90px", "10px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "500px", "300px", "500px", "300px");
+  TestingUtils.testGridTemplateColumnsRows("grid", "500px", "300px", "500px", "300px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "40em", "20em", "400px", "200px");
+  TestingUtils.testGridTemplateColumnsRows("grid", "40em", "20em", "400px", "200px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "25%", "50%", "200px", "300px");
+  TestingUtils.testGridTemplateColumnsRows("grid", "25%", "50%", "200px", "300px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "calc(200px + 10%)", "calc(25% + 50px)", "280px", "200px");
+  TestingUtils.testGridTemplateColumnsRows("grid", "calc(200px + 10%)", "calc(25% + 50px)", "280px", "200px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "1fr", "1fr", "800px", "600px");
+  TestingUtils.testGridTemplateColumnsRows("grid", "1fr", "1fr", "800px", "600px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "max-content", "max-content", "0px", "0px");
+  TestingUtils.testGridTemplateColumnsRows("grid", "max-content", "max-content", "90px", "10px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "min-content", "min-content", "0px", "0px");
+  TestingUtils.testGridTemplateColumnsRows("grid", "min-content", "min-content", "40px", "20px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "minmax(200px, 400px)", "minmax(50px, 100px)", "400px", "100px");
+  TestingUtils.testGridTemplateColumnsRows("grid", "minmax(200px, 400px)", "minmax(50px, 100px)", "400px", "100px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "minmax(calc(10% + 200px), calc(800px - 20%))", "minmax(calc(20% + 50px), calc(600px - 10%))", "640px", "540px");
+  TestingUtils.testGridTemplateColumnsRows("grid", "minmax(calc(10% + 200px), calc(800px - 20%))", "minmax(calc(20% + 50px), calc(600px - 10%))", "640px", "540px");
+
+  // Multiple values.
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "500px 200px 50px", "100px 300px", "500px 200px 50px", "100px 300px");
+  TestingUtils.testGridTemplateColumnsRows("grid", "500px 200px 50px", "100px 300px", "500px 200px 50px", "100px 300px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "40em 100px 15%", "50px 20em 10%", "400px 100px 120px", "50px 200px 60px");
+  TestingUtils.testGridTemplateColumnsRows("grid", "40em 100px 15%", "50px 20em 10%", "400px 100px 120px", "50px 200px 60px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "200px 1fr", "1fr 100px", "200px 600px", "500px 100px");
+  TestingUtils.testGridTemplateColumnsRows("grid", "200px 1fr", "1fr 100px", "200px 600px", "500px 100px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "auto 1fr", "auto 1fr", "0px 800px", "0px 600px");
+  TestingUtils.testGridTemplateColumnsRows("grid", "auto 1fr", "auto 1fr", "90px 710px", "10px 590px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "1fr 3fr", "2fr 1fr", "200px 600px", "400px 200px");
+  TestingUtils.testGridTemplateColumnsRows("grid", "1fr 3fr", "2fr 1fr", "200px 600px", "400px 200px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "minmax(25px, 75px) 750px", "minmax(50px, 150px) 500px", "50px 750px", "100px 500px");
+  TestingUtils.testGridTemplateColumnsRows("grid", "minmax(25px, 75px) 750px", "minmax(50px, 150px) 500px", "50px 750px", "100px 500px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "min-content 1fr calc(20px + 10%) minmax(30em, 50em)", "min-content 1fr calc(10% + 40px) minmax(3em, 5em)", "0px 200px 100px 500px", "0px 450px 100px 50px");
+  TestingUtils.testGridTemplateColumnsRows("grid", "min-content 1fr calc(20px + 10%) minmax(30em, 50em)", "min-content 1fr  calc(10% + 40px) minmax(3em, 5em)", "40px 160px 100px 500px", "20px 430px 100px 50px");
+
+  // Reset values.
+  document.getElementById("emptyGrid").style.gridTemplateColumns = "";
+  document.getElementById("emptyGrid").style.gridTemplateRows = "";
+  document.getElementById("grid").style.gridTemplateColumns = "";
+  document.getElementById("grid").style.gridTemplateRows = "";
+
+  // Wrong values.
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "foo", "bar", "none", "none");
+  TestingUtils.testGridTemplateColumnsRows("grid", "foo", "bar", "90px", "10px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "auto none", "none auto", "none", "none");
+  TestingUtils.testGridTemplateColumnsRows("grid", "auto none", "none auto", "90px", "10px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "100px, 200px", "300px, 400px", "none", "none");
+  TestingUtils.testGridTemplateColumnsRows("grid", "100px, 200px", "300px, 400px", "90px", "10px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "minmax(100px, 200px, 300px)", "minmax(100px, 200px, 300px)", "none", "none");
+  TestingUtils.testGridTemplateColumnsRows("grid", "minmax(100px, 200px, 300px)", "minmax(100px, 200px, 300px)", "90px", "10px");
+</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-definition/grid-inline-support-grid-template-columns-rows-001.xht b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-definition/grid-inline-support-grid-template-columns-rows-001.xht
deleted file mode 100644
index 8f1f153..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-definition/grid-inline-support-grid-template-columns-rows-001.xht
+++ /dev/null
@@ -1,89 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-    <head>
-        <title>CSS Grid Layout Test: Support for 'grid-template-columns' and 'grid-template-rows' properties within an inline grid</title>
-        <link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com" />
-        <link rel="help" href="http://www.w3.org/TR/css-grid-1/#track-sizing" title="5.1 Track Sizing: the 'grid-template-rows' and 'grid-template-columns' properties" />
-        <meta name="flags" content="ahem dom" />
-        <meta name="assert" content="This test checks that 'grid-template-columns' and 'grid-template-rows' properties are supported in an inline grid. So you can use the different syntax options to define the trak list." />
-        <script src="/resources/testharness.js" type="text/javascript"></script>
-        <script src="/resources/testharnessreport.js" type="text/javascript"></script>
-        <script src="support/testing-utils.js" type="text/javascript"></script>
-        <style type="text/css"><![CDATA[
-            .inline-grid {
-                display: inline-grid;
-                width: 800px;
-                height: 600px;
-                font: 10px/1 Ahem;
-                justify-content: start;
-                align-content: start;
-            }
-        ]]></style>
-    </head>
-    <body>
-        <div id="log"></div>
-
-        <div id="emptyGrid" class="inline-grid"></div>
-        <div id="grid" class="inline-grid">
-            <div id="item">GRID ITEM</div>
-        </div>
-
-        <script type="text/javascript"><![CDATA[
-            // Single values.
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "none", "none", "none", "none");
-            TestingUtils.testGridTemplateColumnsRows("grid", "none", "none", "90px", "10px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "auto", "auto", "0px", "0px");
-            TestingUtils.testGridTemplateColumnsRows("grid", "auto", "auto", "90px", "10px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "500px", "300px", "500px", "300px");
-            TestingUtils.testGridTemplateColumnsRows("grid", "500px", "300px", "500px", "300px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "40em", "20em", "400px", "200px");
-            TestingUtils.testGridTemplateColumnsRows("grid", "40em", "20em", "400px", "200px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "25%", "50%", "200px", "300px");
-            TestingUtils.testGridTemplateColumnsRows("grid", "25%", "50%", "200px", "300px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "calc(200px + 10%)", "calc(25% + 50px)", "280px", "200px");
-            TestingUtils.testGridTemplateColumnsRows("grid", "calc(200px + 10%)", "calc(25% + 50px)", "280px", "200px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "1fr", "1fr", "800px", "600px");
-            TestingUtils.testGridTemplateColumnsRows("grid", "1fr", "1fr", "800px", "600px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "max-content", "max-content", "0px", "0px");
-            TestingUtils.testGridTemplateColumnsRows("grid", "max-content", "max-content", "90px", "10px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "min-content", "min-content", "0px", "0px");
-            TestingUtils.testGridTemplateColumnsRows("grid", "min-content", "min-content", "40px", "20px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "minmax(200px, 400px)", "minmax(50px, 100px)", "400px", "100px");
-            TestingUtils.testGridTemplateColumnsRows("grid", "minmax(200px, 400px)", "minmax(50px, 100px)", "400px", "100px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "minmax(calc(10% + 200px), calc(800px - 20%))", "minmax(calc(20% + 50px), calc(600px - 10%))", "640px", "540px");
-            TestingUtils.testGridTemplateColumnsRows("grid", "minmax(calc(10% + 200px), calc(800px - 20%))", "minmax(calc(20% + 50px), calc(600px - 10%))", "640px", "540px");
-
-            // Multiple values.
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "500px 200px 50px", "100px 300px", "500px 200px 50px", "100px 300px");
-            TestingUtils.testGridTemplateColumnsRows("grid", "500px 200px 50px", "100px 300px", "500px 200px 50px", "100px 300px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "40em 100px 15%", "50px 20em 10%", "400px 100px 120px", "50px 200px 60px");
-            TestingUtils.testGridTemplateColumnsRows("grid", "40em 100px 15%", "50px 20em 10%", "400px 100px 120px", "50px 200px 60px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "200px 1fr", "1fr 100px", "200px 600px", "500px 100px");
-            TestingUtils.testGridTemplateColumnsRows("grid", "200px 1fr", "1fr 100px", "200px 600px", "500px 100px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "auto 1fr", "auto 1fr", "0px 800px", "0px 600px");
-            TestingUtils.testGridTemplateColumnsRows("grid", "auto 1fr", "auto 1fr", "90px 710px", "10px 590px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "1fr 3fr", "2fr 1fr", "200px 600px", "400px 200px");
-            TestingUtils.testGridTemplateColumnsRows("grid", "1fr 3fr", "2fr 1fr", "200px 600px", "400px 200px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "minmax(25px, 75px) 750px", "minmax(50px, 150px) 500px", "50px 750px", "100px 500px");
-            TestingUtils.testGridTemplateColumnsRows("grid", "minmax(25px, 75px) 750px", "minmax(50px, 150px) 500px", "50px 750px", "100px 500px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "min-content 1fr calc(20px + 10%) minmax(30em, 50em)", "min-content 1fr calc(10% + 40px) minmax(3em, 5em)", "0px 200px 100px 500px", "0px 450px 100px 50px");
-            TestingUtils.testGridTemplateColumnsRows("grid", "min-content 1fr calc(20px + 10%) minmax(30em, 50em)", "min-content 1fr  calc(10% + 40px) minmax(3em, 5em)", "40px 160px 100px 500px", "20px 430px 100px 50px");
-
-            // Reset values.
-            document.getElementById("emptyGrid").style.gridTemplateColumns = "";
-            document.getElementById("emptyGrid").style.gridTemplateRows = "";
-            document.getElementById("grid").style.gridTemplateColumns = "";
-            document.getElementById("grid").style.gridTemplateRows = "";
-
-            // Wrong values.
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "foo", "bar", "none", "none");
-            TestingUtils.testGridTemplateColumnsRows("grid", "foo", "bar", "90px", "10px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "auto none", "none auto", "none", "none");
-            TestingUtils.testGridTemplateColumnsRows("grid", "auto none", "none auto", "90px", "10px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "100px, 200px", "300px, 400px", "none", "none");
-            TestingUtils.testGridTemplateColumnsRows("grid", "100px, 200px", "300px, 400px", "90px", "10px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "minmax(100px, 200px, 300px)", "minmax(100px, 200px, 300px)", "none", "none");
-            TestingUtils.testGridTemplateColumnsRows("grid", "minmax(100px, 200px, 300px)", "minmax(100px, 200px, 300px)", "90px", "10px");
-        ]]></script>
-    </body>
-</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-definition/grid-inline-support-named-grid-lines-001.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-definition/grid-inline-support-named-grid-lines-001.html
new file mode 100644
index 0000000..3763315
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-definition/grid-inline-support-named-grid-lines-001.html
@@ -0,0 +1,118 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Grid Layout Test: Support for named grid lines in 'grid-template-columns' and 'grid-template-rows' properties within an inline grid</title>
+<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
+<link rel="help" href="http://www.w3.org/TR/css-grid-1/#named-lines" title="5.1.1. Named Grid Lines: the '(&lt;custom-ident\&gt;*)' syntax">
+<meta name="flags" content="ahem dom">
+<meta name="assert" content="This test checks that grid lines can be explicitly named in 'grid-template-columns' and 'grid-template-rows' properties within an inline grid.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="support/testing-utils.js"></script>
+<style>
+  .inline-grid {
+    display: inline-grid;
+    width: 800px;
+    height: 600px;
+    font: 10px/1 Ahem;
+    justify-content: start;
+    align-content: start;
+  }
+</style>
+<div id="log"></div>
+
+<div id="emptyGrid" class="inline-grid"></div>
+<div id="grid" class="inline-grid">
+  <div id="item">GRID ITEM</div>
+</div>
+
+<script>
+  // Valid values.
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[first] auto [last]", "[first] auto [last]", "[first] 0px [last]", "[first] 0px [last]");
+  TestingUtils.testGridTemplateColumnsRows("grid", "[first] auto [last]", "[first] auto [last]", "[first] 90px [last]", "[first] 10px [last]");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[F1rst-L1_n3] auto [L4st-L1_n3]", "[F1rst-L1_n3] auto [L4st-L1_n3]", "[F1rst-L1_n3] 0px [L4st-L1_n3]", "[F1rst-L1_n3] 0px [L4st-L1_n3]");
+  TestingUtils.testGridTemplateColumnsRows("grid", "[F1rst-L1_n3] auto [L4st-L1_n3]", "[F1rst-L1_n3] auto [L4st-L1_n3]", "[F1rst-L1_n3] 90px [L4st-L1_n3]", "[F1rst-L1_n3] 10px [L4st-L1_n3]");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[] auto [ ]", "[ ] auto []", "0px", "0px");
+  TestingUtils.testGridTemplateColumnsRows("grid", "[] auto [ ]", "[ ] auto []", "90px", "10px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[first] auto", "[first] auto", "[first] 0px", "[first] 0px");
+  TestingUtils.testGridTemplateColumnsRows("grid", "[first] auto", "[first] auto", "[first] 90px", "[first] 10px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "auto [last]", "auto [last]", "0px [last]", "0px [last]");
+  TestingUtils.testGridTemplateColumnsRows("grid", "auto [last]", "auto [last]", "90px [last]", "10px [last]");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[line] auto [line]", "[line] auto [line]", "[line] 0px [line]", "[line] 0px [line]");
+  TestingUtils.testGridTemplateColumnsRows("grid", "[line] auto [line]", "[line] auto [line]", "[line] 90px [line]", "[line] 10px [line]");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[first line] auto [last line]", "[first line] auto [last line]", "[first line] 0px [last line]", "[first line] 0px [last line]");
+  TestingUtils.testGridTemplateColumnsRows("grid", "[first line] auto [last line]", "[first line] auto [last line]", "[first line] 90px [last line]", "[first line] 10px [last line]");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[a] auto [b] auto [c]", "[a] auto [b] auto [c]", "[a] 0px [b] 0px [c]", "[a] 0px [b] 0px [c]");
+  TestingUtils.testGridTemplateColumnsRows("grid", "[a] auto [b] auto [c]", "[a] auto [b] auto [c]", "[a] 90px [b] 0px [c]", "[a] 10px [b] 0px [c]");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "auto [b] auto [c]", "auto [b] auto [c]", "0px [b] 0px [c]", "0px [b] 0px [c]");
+  TestingUtils.testGridTemplateColumnsRows("grid", "auto [b] auto [c]", "auto [b] auto [c]", "90px [b] 0px [c]", "10px [b] 0px [c]");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[a] auto auto [c]", "[a] auto auto [c]", ["[a] 0px 0px [c]", "[a] repeat(2, 0px) [c]"], ["[a] 0px 0px [c]", "[a] repeat(2, 0px) [c]"]);
+  TestingUtils.testGridTemplateColumnsRows("grid", "[a] auto auto [c]", "[a] auto auto [c]", "[a] 90px 0px [c]", "[a] 10px 0px [c]");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[a] auto [b] auto", "[a] auto [b] auto", "[a] 0px [b] 0px", "[a] 0px [b] 0px");
+  TestingUtils.testGridTemplateColumnsRows("grid", "[a] auto [b] auto", "[a] auto [b] auto", "[a] 90px [b] 0px", "[a] 10px [b] 0px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[a] auto auto", "[a] auto auto", ["[a] 0px 0px", "[a] repeat(2, 0px)"], ["[a] 0px 0px", "[a] repeat(2, 0px)"]);
+  TestingUtils.testGridTemplateColumnsRows("grid", "[a] auto auto", "[a] auto auto", "[a] 90px 0px", "[a] 10px 0px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "auto [b] auto", "auto [b] auto", "0px [b] 0px", "0px [b] 0px");
+  TestingUtils.testGridTemplateColumnsRows("grid", "auto [b] auto", "auto [b] auto", "90px [b] 0px", "10px [b] 0px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "auto auto [c]", "auto auto [c]", ["0px 0px [c]", "repeat(2, 0px) [c]"], ["0px 0px [c]", "repeat(2, 0px) [c]"]);
+  TestingUtils.testGridTemplateColumnsRows("grid", "auto auto [c]", "auto auto [c]", "90px 0px [c]", "10px 0px [c]");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[a] auto [a] auto [a]", "[a] auto [a] auto [a]", ["[a] 0px [a] 0px [a]", "repeat(2, [a] 0px) [a]"], ["[a] 0px [a] 0px [a]", "repeat(2, [a] 0px) [a]"]);
+  TestingUtils.testGridTemplateColumnsRows("grid", "[a] auto [a] auto [a]", "[a] auto [a] auto [a]", "[a] 90px [a] 0px [a]", "[a] 10px [a] 0px [a]");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[a b c] auto [a b c] auto [a b c]", "[a b c] auto [a b c] auto [a b c]", ["[a b c] 0px [a b c] 0px [a b c]", "repeat(2, [a b c] 0px) [a b c]"], "[a b c] 0px [a b c] 0px [a b c]");
+  TestingUtils.testGridTemplateColumnsRows("grid", "[a b c] auto [a b c] auto [a b c]", "[a b c] auto [a b c] auto [a b c]", "[a b c] 90px [a b c] 0px [a b c]", "[a b c] 10px [a b c] 0px [a b c]");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[a] 40em [b] 100px [c] 15% [d]", "[z] 50px [y] 20em [x] 10% [w]", "[a] 400px [b] 100px [c] 120px [d]", "[z] 50px [y] 200px [x] 60px [w]");
+  TestingUtils.testGridTemplateColumnsRows("grid", "[a] 40em [b] 100px [c] 15% [d]", "[z] 50px [y] 20em [x] 10% [w]", "[a] 400px [b] 100px [c] 120px [d]", "[z] 50px [y] 200px [x] 60px [w]");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[a] 200px [b] 1fr [c]", "[z] 1fr [y] 100px [x]", "[a] 200px [b] 600px [c]", "[z] 500px [y] 100px [x]");
+  TestingUtils.testGridTemplateColumnsRows("grid", "[a] 200px [b] 1fr [c]", "[z] 1fr [y] 100px [x]", "[a] 200px [b] 600px [c]", "[z] 500px [y] 100px [x]");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[a] min-content [b] 1fr [c] calc(20px + 10%) [d] minmax(30em, 50em) [e]", "[z] min-content [y] 1fr [x] calc(10% + 40px) [w] minmax(3em, 5em) [v]", "[a] 0px [b] 200px [c] 100px [d] 500px [e]", "[z] 0px [y] 450px [x] 100px [w] 50px [v]");
+  TestingUtils.testGridTemplateColumnsRows("grid", "[a] min-content [b] 1fr [c] calc(20px + 10%) [d] minmax(30em, 50em) [e]", "[z] min-content [y] 1fr [x] calc(10% + 40px) [w] minmax(3em, 5em) [v]", "[a] 40px [b] 160px [c] 100px [d] 500px [e]", "[z] 20px [y] 430px [x] 100px [w] 50px [v]");
+
+  // Reset values.
+  document.getElementById("emptyGrid").style.gridTemplateColumns = "";
+  document.getElementById("emptyGrid").style.gridTemplateRows = "";
+  document.getElementById("grid").style.gridTemplateColumns = "";
+  document.getElementById("grid").style.gridTemplateRows = "";
+
+  // Wrong values.
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[a]", "[a]", "none", "none");
+  TestingUtils.testGridTemplateColumnsRows("grid", "[a]", "[a]", "90px", "10px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[a b]", "[a b]", "none", "none");
+  TestingUtils.testGridTemplateColumnsRows("grid", "[a b]", "[a b]", "90px", "10px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[a] none [b]", "[a] none [b]", "none", "none");
+  TestingUtils.testGridTemplateColumnsRows("grid", "[a] none [b]", "[a] none [b]", "90px", "10px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[a] [b]", "[a] [b]", "none", "none");
+  TestingUtils.testGridTemplateColumnsRows("grid", "[a] [b]", "[a] [b]", "90px", "10px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "a auto b", "a auto b", "none", "none");
+  TestingUtils.testGridTemplateColumnsRows("grid", "a auto b", "a auto b", "90px", "10px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "(a) auto (b)", "(a) auto (b)", "none", "none");
+  TestingUtils.testGridTemplateColumnsRows("grid", "(a) auto (b)", "(a) auto (b)", "90px", "10px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "'a' auto 'b'", "'a' auto 'b'", "none", "none");
+  TestingUtils.testGridTemplateColumnsRows("grid", "'a' auto 'b'", "'a' auto 'b'", "90px", "10px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "\"a\" auto \"b\"", "\"a\" auto \"b\"", "none", "none");
+  TestingUtils.testGridTemplateColumnsRows("grid", "\"a\" auto \"b\"", "\"a\" auto \"b\"", "90px", "10px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[a, b] auto [a, b]", "[a, b] auto [a, b]", "none", "none");
+  TestingUtils.testGridTemplateColumnsRows("grid", "[a, b] auto [a, b]", "[a, b] auto [a, b]", "90px", "10px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[a] [b] auto [c d] [e]", "[a] [b] auto [c d] [e]", "none", "none");
+  TestingUtils.testGridTemplateColumnsRows("grid", "[a] [b] auto [c d] [e]", "[a] [b] auto [c d] [e]", "90px", "10px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[a [b]] auto [c]", "[a [b]] auto [c]", "none", "none");
+  TestingUtils.testGridTemplateColumnsRows("grid", "[a [b]] auto [c]", "[a [b]] auto [c]", "90px", "10px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[a] auto [[b]]", "[a] auto [[b]]", "none", "none");
+  TestingUtils.testGridTemplateColumnsRows("grid", "[a] auto [[b]]", "[a] auto [[b]]", "90px", "10px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[a auto [b]", "[a auto [b]", "none", "none");
+  TestingUtils.testGridTemplateColumnsRows("grid", "[a auto [b]", "[a auto [b]", "90px", "10px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[a 100px] auto [b]", "[a 100px] auto [b]", "none", "none");
+  TestingUtils.testGridTemplateColumnsRows("grid", "[a 100px] auto [b]", "[a 100px] auto [b]", "90px", "10px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[a 50%] auto [b]", "[a 50%] auto [b]", "none", "none");
+  TestingUtils.testGridTemplateColumnsRows("grid", "[a 50%] auto [b]", "[a 50%] auto [b]", "90px", "10px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[5] auto [10]", "[5] auto [10]", "none", "none");
+  TestingUtils.testGridTemplateColumnsRows("grid", "[5] auto [10]", "[5] auto [10]", "90px", "10px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[a.] auto [b*]", "[a.] auto [b*]", "none", "none");
+  TestingUtils.testGridTemplateColumnsRows("grid", "[a.] auto [b*]", "[a.] auto [b*]", "90px", "10px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[#a] auto [$b]", "[#a] auto [$b]", "none", "none");
+  TestingUtils.testGridTemplateColumnsRows("grid", "[#a] auto [$b]", "[#a] auto [$b]", "90px", "10px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[initial] auto", "[initial] auto", "none", "none");
+  TestingUtils.testGridTemplateColumnsRows("grid", "[initial] auto", "[initial] auto", "90px", "10px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[inherit] auto", "[inherit] auto", "none", "none");
+  TestingUtils.testGridTemplateColumnsRows("grid", "[inherit] auto", "[inherit] auto", "90px", "10px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[default] auto", "[default] auto", "none", "none");
+  TestingUtils.testGridTemplateColumnsRows("grid", "[default] auto", "[default] auto", "90px", "10px");
+</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-definition/grid-inline-support-named-grid-lines-001.xht b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-definition/grid-inline-support-named-grid-lines-001.xht
deleted file mode 100644
index e1b273d..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-definition/grid-inline-support-named-grid-lines-001.xht
+++ /dev/null
@@ -1,123 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-    <head>
-        <title>CSS Grid Layout Test: Support for named grid lines in 'grid-template-columns' and 'grid-template-rows' properties within an inline grid</title>
-        <link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com" />
-        <link rel="help" href="http://www.w3.org/TR/css-grid-1/#named-lines" title="5.1.1. Named Grid Lines: the '(&lt;custom-ident\&gt;*)' syntax" />
-        <meta name="flags" content="ahem dom" />
-        <meta name="assert" content="This test checks that grid lines can be explicitly named in 'grid-template-columns' and 'grid-template-rows' properties within an inline grid." />
-        <script src="/resources/testharness.js" type="text/javascript"></script>
-        <script src="/resources/testharnessreport.js" type="text/javascript"></script>
-        <script src="support/testing-utils.js" type="text/javascript"></script>
-        <style type="text/css"><![CDATA[
-            .inline-grid {
-                display: inline-grid;
-                width: 800px;
-                height: 600px;
-                font: 10px/1 Ahem;
-                justify-content: start;
-                align-content: start;
-            }
-        ]]></style>
-    </head>
-    <body>
-        <div id="log"></div>
-
-        <div id="emptyGrid" class="inline-grid"></div>
-        <div id="grid" class="inline-grid">
-            <div id="item">GRID ITEM</div>
-        </div>
-
-        <script type="text/javascript"><![CDATA[
-            // Valid values.
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[first] auto [last]", "[first] auto [last]", "[first] 0px [last]", "[first] 0px [last]");
-            TestingUtils.testGridTemplateColumnsRows("grid", "[first] auto [last]", "[first] auto [last]", "[first] 90px [last]", "[first] 10px [last]");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[F1rst-L1_n3] auto [L4st-L1_n3]", "[F1rst-L1_n3] auto [L4st-L1_n3]", "[F1rst-L1_n3] 0px [L4st-L1_n3]", "[F1rst-L1_n3] 0px [L4st-L1_n3]");
-            TestingUtils.testGridTemplateColumnsRows("grid", "[F1rst-L1_n3] auto [L4st-L1_n3]", "[F1rst-L1_n3] auto [L4st-L1_n3]", "[F1rst-L1_n3] 90px [L4st-L1_n3]", "[F1rst-L1_n3] 10px [L4st-L1_n3]");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[] auto [ ]", "[ ] auto []", "0px", "0px");
-            TestingUtils.testGridTemplateColumnsRows("grid", "[] auto [ ]", "[ ] auto []", "90px", "10px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[first] auto", "[first] auto", "[first] 0px", "[first] 0px");
-            TestingUtils.testGridTemplateColumnsRows("grid", "[first] auto", "[first] auto", "[first] 90px", "[first] 10px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "auto [last]", "auto [last]", "0px [last]", "0px [last]");
-            TestingUtils.testGridTemplateColumnsRows("grid", "auto [last]", "auto [last]", "90px [last]", "10px [last]");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[line] auto [line]", "[line] auto [line]", "[line] 0px [line]", "[line] 0px [line]");
-            TestingUtils.testGridTemplateColumnsRows("grid", "[line] auto [line]", "[line] auto [line]", "[line] 90px [line]", "[line] 10px [line]");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[first line] auto [last line]", "[first line] auto [last line]", "[first line] 0px [last line]", "[first line] 0px [last line]");
-            TestingUtils.testGridTemplateColumnsRows("grid", "[first line] auto [last line]", "[first line] auto [last line]", "[first line] 90px [last line]", "[first line] 10px [last line]");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[a] auto [b] auto [c]", "[a] auto [b] auto [c]", "[a] 0px [b] 0px [c]", "[a] 0px [b] 0px [c]");
-            TestingUtils.testGridTemplateColumnsRows("grid", "[a] auto [b] auto [c]", "[a] auto [b] auto [c]", "[a] 90px [b] 0px [c]", "[a] 10px [b] 0px [c]");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "auto [b] auto [c]", "auto [b] auto [c]", "0px [b] 0px [c]", "0px [b] 0px [c]");
-            TestingUtils.testGridTemplateColumnsRows("grid", "auto [b] auto [c]", "auto [b] auto [c]", "90px [b] 0px [c]", "10px [b] 0px [c]");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[a] auto auto [c]", "[a] auto auto [c]", ["[a] 0px 0px [c]", "[a] repeat(2, 0px) [c]"], ["[a] 0px 0px [c]", "[a] repeat(2, 0px) [c]"]);
-            TestingUtils.testGridTemplateColumnsRows("grid", "[a] auto auto [c]", "[a] auto auto [c]", "[a] 90px 0px [c]", "[a] 10px 0px [c]");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[a] auto [b] auto", "[a] auto [b] auto", "[a] 0px [b] 0px", "[a] 0px [b] 0px");
-            TestingUtils.testGridTemplateColumnsRows("grid", "[a] auto [b] auto", "[a] auto [b] auto", "[a] 90px [b] 0px", "[a] 10px [b] 0px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[a] auto auto", "[a] auto auto", ["[a] 0px 0px", "[a] repeat(2, 0px)"], ["[a] 0px 0px", "[a] repeat(2, 0px)"]);
-            TestingUtils.testGridTemplateColumnsRows("grid", "[a] auto auto", "[a] auto auto", "[a] 90px 0px", "[a] 10px 0px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "auto [b] auto", "auto [b] auto", "0px [b] 0px", "0px [b] 0px");
-            TestingUtils.testGridTemplateColumnsRows("grid", "auto [b] auto", "auto [b] auto", "90px [b] 0px", "10px [b] 0px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "auto auto [c]", "auto auto [c]", ["0px 0px [c]", "repeat(2, 0px) [c]"], ["0px 0px [c]", "repeat(2, 0px) [c]"]);
-            TestingUtils.testGridTemplateColumnsRows("grid", "auto auto [c]", "auto auto [c]", "90px 0px [c]", "10px 0px [c]");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[a] auto [a] auto [a]", "[a] auto [a] auto [a]", ["[a] 0px [a] 0px [a]", "repeat(2, [a] 0px) [a]"], ["[a] 0px [a] 0px [a]", "repeat(2, [a] 0px) [a]"]);
-            TestingUtils.testGridTemplateColumnsRows("grid", "[a] auto [a] auto [a]", "[a] auto [a] auto [a]", "[a] 90px [a] 0px [a]", "[a] 10px [a] 0px [a]");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[a b c] auto [a b c] auto [a b c]", "[a b c] auto [a b c] auto [a b c]", ["[a b c] 0px [a b c] 0px [a b c]", "repeat(2, [a b c] 0px) [a b c]"], "[a b c] 0px [a b c] 0px [a b c]");
-            TestingUtils.testGridTemplateColumnsRows("grid", "[a b c] auto [a b c] auto [a b c]", "[a b c] auto [a b c] auto [a b c]", "[a b c] 90px [a b c] 0px [a b c]", "[a b c] 10px [a b c] 0px [a b c]");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[a] 40em [b] 100px [c] 15% [d]", "[z] 50px [y] 20em [x] 10% [w]", "[a] 400px [b] 100px [c] 120px [d]", "[z] 50px [y] 200px [x] 60px [w]");
-            TestingUtils.testGridTemplateColumnsRows("grid", "[a] 40em [b] 100px [c] 15% [d]", "[z] 50px [y] 20em [x] 10% [w]", "[a] 400px [b] 100px [c] 120px [d]", "[z] 50px [y] 200px [x] 60px [w]");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[a] 200px [b] 1fr [c]", "[z] 1fr [y] 100px [x]", "[a] 200px [b] 600px [c]", "[z] 500px [y] 100px [x]");
-            TestingUtils.testGridTemplateColumnsRows("grid", "[a] 200px [b] 1fr [c]", "[z] 1fr [y] 100px [x]", "[a] 200px [b] 600px [c]", "[z] 500px [y] 100px [x]");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[a] min-content [b] 1fr [c] calc(20px + 10%) [d] minmax(30em, 50em) [e]", "[z] min-content [y] 1fr [x] calc(10% + 40px) [w] minmax(3em, 5em) [v]", "[a] 0px [b] 200px [c] 100px [d] 500px [e]", "[z] 0px [y] 450px [x] 100px [w] 50px [v]");
-            TestingUtils.testGridTemplateColumnsRows("grid", "[a] min-content [b] 1fr [c] calc(20px + 10%) [d] minmax(30em, 50em) [e]", "[z] min-content [y] 1fr [x] calc(10% + 40px) [w] minmax(3em, 5em) [v]", "[a] 40px [b] 160px [c] 100px [d] 500px [e]", "[z] 20px [y] 430px [x] 100px [w] 50px [v]");
-
-            // Reset values.
-            document.getElementById("emptyGrid").style.gridTemplateColumns = "";
-            document.getElementById("emptyGrid").style.gridTemplateRows = "";
-            document.getElementById("grid").style.gridTemplateColumns = "";
-            document.getElementById("grid").style.gridTemplateRows = "";
-
-            // Wrong values.
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[a]", "[a]", "none", "none");
-            TestingUtils.testGridTemplateColumnsRows("grid", "[a]", "[a]", "90px", "10px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[a b]", "[a b]", "none", "none");
-            TestingUtils.testGridTemplateColumnsRows("grid", "[a b]", "[a b]", "90px", "10px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[a] none [b]", "[a] none [b]", "none", "none");
-            TestingUtils.testGridTemplateColumnsRows("grid", "[a] none [b]", "[a] none [b]", "90px", "10px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[a] [b]", "[a] [b]", "none", "none");
-            TestingUtils.testGridTemplateColumnsRows("grid", "[a] [b]", "[a] [b]", "90px", "10px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "a auto b", "a auto b", "none", "none");
-            TestingUtils.testGridTemplateColumnsRows("grid", "a auto b", "a auto b", "90px", "10px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "(a) auto (b)", "(a) auto (b)", "none", "none");
-            TestingUtils.testGridTemplateColumnsRows("grid", "(a) auto (b)", "(a) auto (b)", "90px", "10px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "'a' auto 'b'", "'a' auto 'b'", "none", "none");
-            TestingUtils.testGridTemplateColumnsRows("grid", "'a' auto 'b'", "'a' auto 'b'", "90px", "10px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "\"a\" auto \"b\"", "\"a\" auto \"b\"", "none", "none");
-            TestingUtils.testGridTemplateColumnsRows("grid", "\"a\" auto \"b\"", "\"a\" auto \"b\"", "90px", "10px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[a, b] auto [a, b]", "[a, b] auto [a, b]", "none", "none");
-            TestingUtils.testGridTemplateColumnsRows("grid", "[a, b] auto [a, b]", "[a, b] auto [a, b]", "90px", "10px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[a] [b] auto [c d] [e]", "[a] [b] auto [c d] [e]", "none", "none");
-            TestingUtils.testGridTemplateColumnsRows("grid", "[a] [b] auto [c d] [e]", "[a] [b] auto [c d] [e]", "90px", "10px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[a [b]] auto [c]", "[a [b]] auto [c]", "none", "none");
-            TestingUtils.testGridTemplateColumnsRows("grid", "[a [b]] auto [c]", "[a [b]] auto [c]", "90px", "10px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[a] auto [[b]]", "[a] auto [[b]]", "none", "none");
-            TestingUtils.testGridTemplateColumnsRows("grid", "[a] auto [[b]]", "[a] auto [[b]]", "90px", "10px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[a auto [b]", "[a auto [b]", "none", "none");
-            TestingUtils.testGridTemplateColumnsRows("grid", "[a auto [b]", "[a auto [b]", "90px", "10px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[a 100px] auto [b]", "[a 100px] auto [b]", "none", "none");
-            TestingUtils.testGridTemplateColumnsRows("grid", "[a 100px] auto [b]", "[a 100px] auto [b]", "90px", "10px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[a 50%] auto [b]", "[a 50%] auto [b]", "none", "none");
-            TestingUtils.testGridTemplateColumnsRows("grid", "[a 50%] auto [b]", "[a 50%] auto [b]", "90px", "10px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[5] auto [10]", "[5] auto [10]", "none", "none");
-            TestingUtils.testGridTemplateColumnsRows("grid", "[5] auto [10]", "[5] auto [10]", "90px", "10px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[a.] auto [b*]", "[a.] auto [b*]", "none", "none");
-            TestingUtils.testGridTemplateColumnsRows("grid", "[a.] auto [b*]", "[a.] auto [b*]", "90px", "10px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[#a] auto [$b]", "[#a] auto [$b]", "none", "none");
-            TestingUtils.testGridTemplateColumnsRows("grid", "[#a] auto [$b]", "[#a] auto [$b]", "90px", "10px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[initial] auto", "[initial] auto", "none", "none");
-            TestingUtils.testGridTemplateColumnsRows("grid", "[initial] auto", "[initial] auto", "90px", "10px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[inherit] auto", "[inherit] auto", "none", "none");
-            TestingUtils.testGridTemplateColumnsRows("grid", "[inherit] auto", "[inherit] auto", "90px", "10px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[default] auto", "[default] auto", "none", "none");
-            TestingUtils.testGridTemplateColumnsRows("grid", "[default] auto", "[default] auto", "90px", "10px");
-        ]]></script>
-    </body>
-</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-definition/grid-inline-support-repeat-001.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-definition/grid-inline-support-repeat-001.html
new file mode 100644
index 0000000..77afdf46
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-definition/grid-inline-support-repeat-001.html
@@ -0,0 +1,78 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Grid Layout Test: Support 'repeat()' notation for 'grid-template-columns' and 'grid-template-rows' properties within an inline grid</title>
+<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
+<link rel="help" href="http://www.w3.org/TR/css-grid-1/#repeat-notation" title="5.1.2 Repeating Rows and Columns: the 'repeat()' notation">
+<meta name="flags" content="ahem dom">
+<meta name="assert" content="This test checks that 'grid-template-columns' and 'grid-template-rows' properties support 'repeat()' notation within an inline grid, so you can use it to represents a repeated fragment of the track list.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="support/testing-utils.js"></script>
+<style>
+  .inline-grid {
+    display: inline-grid;
+    width: 800px;
+    height: 600px;
+    font: 10px/1 Ahem;
+    justify-content: start;
+    align-content: start;
+  }
+</style>
+<div id="log"></div>
+
+<div id="emptyGrid" class="inline-grid"></div>
+<div id="grid" class="inline-grid">
+  <div id="item">GRID ITEM</div>
+</div>
+
+<script>
+  // Valid values.
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "repeat(1, auto)", "repeat(1, auto)", "0px", "0px");
+  TestingUtils.testGridTemplateColumnsRows("grid", "repeat(1, auto)", "repeat(1, auto)", "90px", "10px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "repeat(2, auto)", "repeat(2, auto)", ["0px 0px", "repeat(2, 0px)"], ["0px 0px", "repeat(2, 0px)"]);
+  TestingUtils.testGridTemplateColumnsRows("grid", "repeat(2, auto)", "repeat(2, auto)", "90px 0px", "10px 0px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "repeat(2, minmax(50px, calc(50px + 50%))", "repeat(2, minmax(50px, calc(50px + 50%))", ["400px 400px", "repeat(2, 400px)"], ["300px 300px", "repeat(2, 300px)"]);
+  TestingUtils.testGridTemplateColumnsRows("grid", "repeat(2, minmax(50px, calc(50px + 50%))", "repeat(2, minmax(50px, calc(50px + 50%))", ["400px 400px", "repeat(2, 400px)"], ["300px 300px", "repeat(2, 300px)"]);
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "repeat(5, 10%)", "repeat(5, 10%)", ["80px 80px 80px 80px 80px", "repeat(5, 80px)"], ["60px 60px 60px 60px 60px", "repeat(5, 60px)"]);
+  TestingUtils.testGridTemplateColumnsRows("grid", "repeat(5, 10%)", "repeat(5, 10%)", ["80px 80px 80px 80px 80px", "repeat(5, 80px)"], ["60px 60px 60px 60px 60px", "repeat(5, 60px)"]);
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "max-content repeat(2, 25%) 1fr", "100px repeat(2, 25%) 1fr", ["0px 200px 200px 400px", "0px repeat(2, 200px) 400px"], ["100px 150px 150px 200px", "100px repeat(2, 150px) 200px"]);
+  TestingUtils.testGridTemplateColumnsRows("grid", "max-content repeat(2, 25%) 1fr", "max-content repeat(2, 25%) 1fr", ["90px 200px 200px 310px", "90px repeat(2, 200px) 310px"], ["10px 150px 150px 290px", "10px repeat(2, 150px) 290px"]);
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "repeat(2, min-content 50px)", "repeat(2, min-content 50px)", ["0px 50px 0px 50px", "repeat(2, 0px 50px)"], ["0px 50px 0px 50px", "repeat(2, 0px 50px)"]);
+  TestingUtils.testGridTemplateColumnsRows("grid", "repeat(2, min-content 50px)", "repeat(2, min-content 50px)", "40px 50px 0px 50px", "20px 50px 0px 50px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "repeat(2, [a] minmax(50px, 100px) [b] 25em [c])", "repeat(2, [a] minmax(50px, 100px) [b] 25em [c])", "[a] 100px [b] 250px [c a] 100px [b] 250px [c]", "[a] 50px [b] 250px [c a] 50px [b] 250px [c]");
+  TestingUtils.testGridTemplateColumnsRows("grid", "repeat(2, [a] minmax(50px, 100px) [b] 25em [c])", "repeat(2, [a] minmax(50px, 100px) [b] 25em [c])", "[a] 100px [b] 250px [c a] 100px [b] 250px [c]", "[a] 50px [b] 250px [c a] 50px [b] 250px [c]");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[a] repeat(2, auto [b] 100px) [c]", "[a] repeat(2, auto [b] 100px) [c]", ["[a] 0px [b] 100px 0px [b] 100px [c]", "[a] repeat(2, 0px [b] 100px) [c]"], ["[a] 0px [b] 100px 0px [b] 100px [c]", "[a] repeat(2, 0px [b] 100px) [c]"]);
+  TestingUtils.testGridTemplateColumnsRows("grid", "[a] repeat(2, auto [b] 100px) [c]", "[a] repeat(2, auto [b] 100px) [c]", "[a] 90px [b] 100px 0px [b] 100px [c]", "[a] 10px [b] 100px 0px [b] 100px [c]");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[a] auto repeat(2, [b] 100px) [c]", "[a] auto repeat(2, [b] 100px) [c]", ["[a] 0px [b] 100px [b] 100px [c]", "[a] 0px repeat(2, [b] 100px) [c]"], ["[a] 0px [b] 100px [b] 100px [c]", "[a] 0px repeat(2, [b] 100px) [c]"]);
+  TestingUtils.testGridTemplateColumnsRows("grid", "[a] auto repeat(2, [b] 100px) [c]", "[a] auto repeat(2, [b] 100px) [c]", ["[a] 90px [b] 100px [b] 100px [c]", "[a] 90px repeat(2, [b] 100px) [c]"], ["[a] 10px [b] 100px [b] 100px [c]", "[a] 10px repeat(2, [b] 100px) [c]"]);
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[a] repeat(2, auto [b]) 100px [c]", "[a] repeat(2, auto [b]) 100px [c]", "[a] 0px [b] 0px [b] 100px [c]", "[a] 0px [b] 0px [b] 100px [c]");
+  TestingUtils.testGridTemplateColumnsRows("grid", "[a] repeat(2, auto [b]) 100px [c]", "[a] repeat(2, auto [b]) 100px [c]", "[a] 90px [b] 0px [b] 100px [c]", "[a] 10px [b] 0px [b] 100px [c]");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[a] repeat(2, [b] 100px)", "[a] repeat(2, [b] 100px)", ["[a b] 100px [b] 100px", "[a] repeat(2, [b] 100px)"], ["[a b] 100px [b] 100px", "[a] repeat(2, [b] 100px)"]);
+  TestingUtils.testGridTemplateColumnsRows("grid", "[a] repeat(2, [b] 100px)", "[a] repeat(2, [b] 100px)", ["[a b] 100px [b] 100px", "[a] repeat(2, [b] 100px)"], ["[a b] 100px [b] 100px", "[a] repeat(2, [b] 100px)"]);
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[a] repeat(2, [b] auto [c]) [d]", "[a] repeat(2, [b] auto [c]) [d]", ["[a b] 0px [c b] 0px [c d]", "[a] repeat(2, [b] 0px [c]) [d]"], ["[a b] 0px [c b] 0px [c d]", "[a] repeat(2, [b] 0px [c]) [d]"]);
+  TestingUtils.testGridTemplateColumnsRows("grid", "[a] repeat(2, [b] auto [c]) [d]", "[a] repeat(2, [b] auto [c]) [d]", "[a b] 90px [c b] 0px [c d]", "[a b] 10px [c b] 0px [c d]");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[a] min-content repeat(2, [b] 1fr [c] calc(20px + 10%)) [d] minmax(30em, 50em) [e]", "[z] min-content repeat(2, [y] 1fr [x] calc(10% + 40px)) [w] minmax(3em, 5em) [v]", ["[a] 0px [b] 50px [c] 100px [b] 50px [c] 100px [d] 500px [e]", "[a] 0px repeat(2, [b] 50px [c] 100px) [d] 500px [e]"], ["[z] 0px [y] 175px [x] 100px [y] 175px [x] 100px [w] 50px [v]", "[z] 0px repeat(2, [y] 175px [x] 100px) [w] 50px [v]"]);
+  TestingUtils.testGridTemplateColumnsRows("grid", "[a] min-content repeat(2, [b] 1fr [c] calc(20px + 10%)) [d] minmax(30em, 50em) [e]", "[z] min-content repeat(2, [y] 1fr [x] calc(10% + 40px)) [w] minmax(3em, 5em) [v]", ["[a] 40px [b] 30px [c] 100px [b] 30px [c] 100px [d] 500px [e]", "[a] 40px repeat(2, [b] 30px [c] 100px) [d] 500px [e]"], ["[z] 20px [y] 165px [x] 100px [y] 165px [x] 100px [w] 50px [v]", "[z] 20px repeat(2, [y] 165px [x] 100px) [w] 50px [v]"]);
+
+  // Reset values.
+  document.getElementById("emptyGrid").style.gridTemplateColumns = "";
+  document.getElementById("emptyGrid").style.gridTemplateRows = "";
+  document.getElementById("grid").style.gridTemplateColumns = "";
+  document.getElementById("grid").style.gridTemplateRows = "";
+
+  // Wrong values.
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "repeat(-1, auto)", "repeat(-1, auto)", "none", "none");
+  TestingUtils.testGridTemplateColumnsRows("grid", "repeat(-1, auto)", "repeat(-1, auto)", "90px", "10px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "repeat(auto, 2)", "repeat(auto, 2)", "none", "none");
+  TestingUtils.testGridTemplateColumnsRows("grid", "repeat(auto, 2)", "repeat(auto, 2)", "90px", "10px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "repeat 2, auto", "repeat 2, auto", "none", "none");
+  TestingUtils.testGridTemplateColumnsRows("grid", "repeat 2, auto", "repeat 2, auto", "90px", "10px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "repeat(2 auto)", "repeat(2 auto)", "none", "none");
+  TestingUtils.testGridTemplateColumnsRows("grid", "repeat(2 auto)", "repeat(2 auto)", "90px", "10px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "100px (repeat 2, auto)", "(repeat 2, auto)", "none", "none");
+  TestingUtils.testGridTemplateColumnsRows("grid", "100px (repeat 2, auto)", "(repeat 2, auto)", "90px", "10px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "repeat(2, 50px repeat(2, 100px))", "repeat(2, 50px repeat(2, 100px))", "none", "none");
+  TestingUtils.testGridTemplateColumnsRows("grid", "repeat(2, 50px repeat(2, 100px))", "repeat(2, 50px repeat(2, 100px))", "90px", "10px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "100px repeat(2, [a])", "100px repeat(2, [a])", "none", "none");
+  TestingUtils.testGridTemplateColumnsRows("grid", "100px repeat(2, [a])", "100px repeat(2, [a])", "90px", "10px");
+</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-definition/grid-inline-support-repeat-001.xht b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-definition/grid-inline-support-repeat-001.xht
deleted file mode 100644
index c0ae0de..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-definition/grid-inline-support-repeat-001.xht
+++ /dev/null
@@ -1,83 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-    <head>
-        <title>CSS Grid Layout Test: Support 'repeat()' notation for 'grid-template-columns' and 'grid-template-rows' properties within an inline grid</title>
-        <link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com" />
-        <link rel="help" href="http://www.w3.org/TR/css-grid-1/#repeat-notation" title="5.1.2 Repeating Rows and Columns: the 'repeat()' notation" />
-        <meta name="flags" content="ahem dom" />
-        <meta name="assert" content="This test checks that 'grid-template-columns' and 'grid-template-rows' properties support 'repeat()' notation within an inline grid, so you can use it to represents a repeated fragment of the track list." />
-        <script src="/resources/testharness.js" type="text/javascript"></script>
-        <script src="/resources/testharnessreport.js" type="text/javascript"></script>
-        <script src="support/testing-utils.js" type="text/javascript"></script>
-        <style type="text/css"><![CDATA[
-            .inline-grid {
-                display: inline-grid;
-                width: 800px;
-                height: 600px;
-                font: 10px/1 Ahem;
-                justify-content: start;
-                align-content: start;
-            }
-        ]]></style>
-    </head>
-    <body>
-        <div id="log"></div>
-
-        <div id="emptyGrid" class="inline-grid"></div>
-        <div id="grid" class="inline-grid">
-            <div id="item">GRID ITEM</div>
-        </div>
-
-        <script type="text/javascript"><![CDATA[
-            // Valid values.
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "repeat(1, auto)", "repeat(1, auto)", "0px", "0px");
-            TestingUtils.testGridTemplateColumnsRows("grid", "repeat(1, auto)", "repeat(1, auto)", "90px", "10px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "repeat(2, auto)", "repeat(2, auto)", ["0px 0px", "repeat(2, 0px)"], ["0px 0px", "repeat(2, 0px)"]);
-            TestingUtils.testGridTemplateColumnsRows("grid", "repeat(2, auto)", "repeat(2, auto)", "90px 0px", "10px 0px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "repeat(2, minmax(50px, calc(50px + 50%))", "repeat(2, minmax(50px, calc(50px + 50%))", ["400px 400px", "repeat(2, 400px)"], ["300px 300px", "repeat(2, 300px)"]);
-            TestingUtils.testGridTemplateColumnsRows("grid", "repeat(2, minmax(50px, calc(50px + 50%))", "repeat(2, minmax(50px, calc(50px + 50%))", ["400px 400px", "repeat(2, 400px)"], ["300px 300px", "repeat(2, 300px)"]);
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "repeat(5, 10%)", "repeat(5, 10%)", ["80px 80px 80px 80px 80px", "repeat(5, 80px)"], ["60px 60px 60px 60px 60px", "repeat(5, 60px)"]);
-            TestingUtils.testGridTemplateColumnsRows("grid", "repeat(5, 10%)", "repeat(5, 10%)", ["80px 80px 80px 80px 80px", "repeat(5, 80px)"], ["60px 60px 60px 60px 60px", "repeat(5, 60px)"]);
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "max-content repeat(2, 25%) 1fr", "100px repeat(2, 25%) 1fr", ["0px 200px 200px 400px", "0px repeat(2, 200px) 400px"], ["100px 150px 150px 200px", "100px repeat(2, 150px) 200px"]);
-            TestingUtils.testGridTemplateColumnsRows("grid", "max-content repeat(2, 25%) 1fr", "max-content repeat(2, 25%) 1fr", ["90px 200px 200px 310px", "90px repeat(2, 200px) 310px"], ["10px 150px 150px 290px", "10px repeat(2, 150px) 290px"]);
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "repeat(2, min-content 50px)", "repeat(2, min-content 50px)", ["0px 50px 0px 50px", "repeat(2, 0px 50px)"], ["0px 50px 0px 50px", "repeat(2, 0px 50px)"]);
-            TestingUtils.testGridTemplateColumnsRows("grid", "repeat(2, min-content 50px)", "repeat(2, min-content 50px)", "40px 50px 0px 50px", "20px 50px 0px 50px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "repeat(2, [a] minmax(50px, 100px) [b] 25em [c])", "repeat(2, [a] minmax(50px, 100px) [b] 25em [c])", "[a] 100px [b] 250px [c a] 100px [b] 250px [c]", "[a] 50px [b] 250px [c a] 50px [b] 250px [c]");
-            TestingUtils.testGridTemplateColumnsRows("grid", "repeat(2, [a] minmax(50px, 100px) [b] 25em [c])", "repeat(2, [a] minmax(50px, 100px) [b] 25em [c])", "[a] 100px [b] 250px [c a] 100px [b] 250px [c]", "[a] 50px [b] 250px [c a] 50px [b] 250px [c]");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[a] repeat(2, auto [b] 100px) [c]", "[a] repeat(2, auto [b] 100px) [c]", ["[a] 0px [b] 100px 0px [b] 100px [c]", "[a] repeat(2, 0px [b] 100px) [c]"], ["[a] 0px [b] 100px 0px [b] 100px [c]", "[a] repeat(2, 0px [b] 100px) [c]"]);
-            TestingUtils.testGridTemplateColumnsRows("grid", "[a] repeat(2, auto [b] 100px) [c]", "[a] repeat(2, auto [b] 100px) [c]", "[a] 90px [b] 100px 0px [b] 100px [c]", "[a] 10px [b] 100px 0px [b] 100px [c]");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[a] auto repeat(2, [b] 100px) [c]", "[a] auto repeat(2, [b] 100px) [c]", ["[a] 0px [b] 100px [b] 100px [c]", "[a] 0px repeat(2, [b] 100px) [c]"], ["[a] 0px [b] 100px [b] 100px [c]", "[a] 0px repeat(2, [b] 100px) [c]"]);
-            TestingUtils.testGridTemplateColumnsRows("grid", "[a] auto repeat(2, [b] 100px) [c]", "[a] auto repeat(2, [b] 100px) [c]", ["[a] 90px [b] 100px [b] 100px [c]", "[a] 90px repeat(2, [b] 100px) [c]"], ["[a] 10px [b] 100px [b] 100px [c]", "[a] 10px repeat(2, [b] 100px) [c]"]);
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[a] repeat(2, auto [b]) 100px [c]", "[a] repeat(2, auto [b]) 100px [c]", "[a] 0px [b] 0px [b] 100px [c]", "[a] 0px [b] 0px [b] 100px [c]");
-            TestingUtils.testGridTemplateColumnsRows("grid", "[a] repeat(2, auto [b]) 100px [c]", "[a] repeat(2, auto [b]) 100px [c]", "[a] 90px [b] 0px [b] 100px [c]", "[a] 10px [b] 0px [b] 100px [c]");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[a] repeat(2, [b] 100px)", "[a] repeat(2, [b] 100px)", ["[a b] 100px [b] 100px", "[a] repeat(2, [b] 100px)"], ["[a b] 100px [b] 100px", "[a] repeat(2, [b] 100px)"]);
-            TestingUtils.testGridTemplateColumnsRows("grid", "[a] repeat(2, [b] 100px)", "[a] repeat(2, [b] 100px)", ["[a b] 100px [b] 100px", "[a] repeat(2, [b] 100px)"], ["[a b] 100px [b] 100px", "[a] repeat(2, [b] 100px)"]);
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[a] repeat(2, [b] auto [c]) [d]", "[a] repeat(2, [b] auto [c]) [d]", ["[a b] 0px [c b] 0px [c d]", "[a] repeat(2, [b] 0px [c]) [d]"], ["[a b] 0px [c b] 0px [c d]", "[a] repeat(2, [b] 0px [c]) [d]"]);
-            TestingUtils.testGridTemplateColumnsRows("grid", "[a] repeat(2, [b] auto [c]) [d]", "[a] repeat(2, [b] auto [c]) [d]", "[a b] 90px [c b] 0px [c d]", "[a b] 10px [c b] 0px [c d]");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[a] min-content repeat(2, [b] 1fr [c] calc(20px + 10%)) [d] minmax(30em, 50em) [e]", "[z] min-content repeat(2, [y] 1fr [x] calc(10% + 40px)) [w] minmax(3em, 5em) [v]", ["[a] 0px [b] 50px [c] 100px [b] 50px [c] 100px [d] 500px [e]", "[a] 0px repeat(2, [b] 50px [c] 100px) [d] 500px [e]"], ["[z] 0px [y] 175px [x] 100px [y] 175px [x] 100px [w] 50px [v]", "[z] 0px repeat(2, [y] 175px [x] 100px) [w] 50px [v]"]);
-            TestingUtils.testGridTemplateColumnsRows("grid", "[a] min-content repeat(2, [b] 1fr [c] calc(20px + 10%)) [d] minmax(30em, 50em) [e]", "[z] min-content repeat(2, [y] 1fr [x] calc(10% + 40px)) [w] minmax(3em, 5em) [v]", ["[a] 40px [b] 30px [c] 100px [b] 30px [c] 100px [d] 500px [e]", "[a] 40px repeat(2, [b] 30px [c] 100px) [d] 500px [e]"], ["[z] 20px [y] 165px [x] 100px [y] 165px [x] 100px [w] 50px [v]", "[z] 20px repeat(2, [y] 165px [x] 100px) [w] 50px [v]"]);
-
-            // Reset values.
-            document.getElementById("emptyGrid").style.gridTemplateColumns = "";
-            document.getElementById("emptyGrid").style.gridTemplateRows = "";
-            document.getElementById("grid").style.gridTemplateColumns = "";
-            document.getElementById("grid").style.gridTemplateRows = "";
-
-            // Wrong values.
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "repeat(-1, auto)", "repeat(-1, auto)", "none", "none");
-            TestingUtils.testGridTemplateColumnsRows("grid", "repeat(-1, auto)", "repeat(-1, auto)", "90px", "10px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "repeat(auto, 2)", "repeat(auto, 2)", "none", "none");
-            TestingUtils.testGridTemplateColumnsRows("grid", "repeat(auto, 2)", "repeat(auto, 2)", "90px", "10px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "repeat 2, auto", "repeat 2, auto", "none", "none");
-            TestingUtils.testGridTemplateColumnsRows("grid", "repeat 2, auto", "repeat 2, auto", "90px", "10px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "repeat(2 auto)", "repeat(2 auto)", "none", "none");
-            TestingUtils.testGridTemplateColumnsRows("grid", "repeat(2 auto)", "repeat(2 auto)", "90px", "10px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "100px (repeat 2, auto)", "(repeat 2, auto)", "none", "none");
-            TestingUtils.testGridTemplateColumnsRows("grid", "100px (repeat 2, auto)", "(repeat 2, auto)", "90px", "10px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "repeat(2, 50px repeat(2, 100px))", "repeat(2, 50px repeat(2, 100px))", "none", "none");
-            TestingUtils.testGridTemplateColumnsRows("grid", "repeat(2, 50px repeat(2, 100px))", "repeat(2, 50px repeat(2, 100px))", "90px", "10px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "100px repeat(2, [a])", "100px repeat(2, [a])", "none", "none");
-            TestingUtils.testGridTemplateColumnsRows("grid", "100px repeat(2, [a])", "100px repeat(2, [a])", "90px", "10px");
-        ]]></script>
-    </body>
-</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-definition/grid-inline-template-columns-rows-resolved-values-001.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-definition/grid-inline-template-columns-rows-resolved-values-001.html
new file mode 100644
index 0000000..60badb4
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-definition/grid-inline-template-columns-rows-resolved-values-001.html
@@ -0,0 +1,102 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Grid Layout Test: 'grid-template-columns' and 'grid-template-rows' properties resolved values for implicit tracks in an inline grid</title>
+<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
+<link rel="help" href="http://www.w3.org/TR/css-grid-1/#resolved-track-list" title="5.1.5. Resolved Values">
+<meta name="flags" content="ahem dom">
+<meta name="assert" content="This test checks that resolved values for 'grid-template-columns' and 'grid-template-rows' list tracks implicitly created in an inline grid.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="support/testing-utils.js"></script>
+<style>
+  .inline-grid {
+    display: inline-grid;
+    width: 800px;
+    height: 600px;
+    font: 10px/1 Ahem;
+    justify-content: start;
+    align-content: start;
+  }
+
+  .fifthColumn {
+    grid-column: 5;
+  }
+
+  .fourthRow {
+    grid-row: 4;
+  }
+
+  .gridAutoFlowColumn {
+    grid-auto-flow: column;
+  }
+</style>
+<div id="log"></div>
+
+<div id="grid" class="inline-grid">
+  <div>FIRST ITEM</div>
+  <div>SECOND ITEM</div>
+  <div>THIRD<br />ITEM</div>
+</div>
+
+<div id="gridItemsPositions" class="inline-grid">
+  <div class="fifthColumn">FIRST ITEM</div>
+  <div class="fourthRow">SECOND ITEM</div>
+  <div>THIRD<br />ITEM</div>
+</div>
+
+<div id="gridAutoFlowColumn" class="inline-grid gridAutoFlowColumn">
+  <div>FIRST ITEM</div>
+  <div>SECOND ITEM</div>
+  <div>THIRD<br />ITEM</div>
+</div>
+
+<div id="gridAutoFlowColumnItemsPositions" class="inline-grid gridAutoFlowColumn">
+  <div class="fifthColumn">FIRST ITEM</div>
+  <div class="fourthRow">SECOND ITEM</div>
+  <div>THIRD<br />ITEM</div>
+</div>
+
+<script>
+  // Valid values.
+  TestingUtils.testGridTemplateColumnsRows("grid", "", "", "110px", ["10px 10px 20px", "repeat(2, 10px) 20px"]);
+  TestingUtils.testGridTemplateColumnsRows("grid", "auto auto", "", "100px 110px", "10px 20px");
+  TestingUtils.testGridTemplateColumnsRows("grid", "60px", "", "60px", ["20px 20px 20px", "repeat(3, 20px)"]);
+  TestingUtils.testGridTemplateColumnsRows("grid", "100px 60px", "", "100px 60px", ["20px 20px", "repeat(2, 20px)"]);
+  TestingUtils.testGridTemplateColumnsRows("grid", "", "50px", "110px", "50px 10px 20px");
+  TestingUtils.testGridTemplateColumnsRows("grid", "", "50px 30px", "110px", "50px 30px 20px");
+  TestingUtils.testGridTemplateColumnsRows("grid", "60px", "50px", "60px", ["50px 20px 20px", "50px repeat(2, 20px)"]);
+  TestingUtils.testGridTemplateColumnsRows("grid", "60px", "50px 30px", "60px", "50px 30px 20px");
+  TestingUtils.testGridTemplateColumnsRows("grid", "100px 60px", "50px", "100px 60px", "50px 20px");
+  TestingUtils.testGridTemplateColumnsRows("grid", "100px 60px", "50px 30px", "100px 60px", "50px 30px");
+
+  TestingUtils.testGridTemplateColumnsRows("gridItemsPositions", "", "", ["110px 0px 0px 0px 100px", "110px repeat(3, 0px) 100px"], "10px 20px 0px 10px");
+  TestingUtils.testGridTemplateColumnsRows("gridItemsPositions", "60px", "", ["60px 0px 0px 0px 100px", "60px repeat(3, 0px) 100px"], "10px 20px 0px 20px");
+  TestingUtils.testGridTemplateColumnsRows("gridItemsPositions", "60px 50px", "", ["60px 50px 0px 0px 100px", "60px 50px repeat(2, 0px) 100px"], "10px 20px 0px 20px");
+  TestingUtils.testGridTemplateColumnsRows("gridItemsPositions", "", "60px", ["110px 0px 0px 0px 100px", "110px repeat(3, 0px) 100px"], "60px 20px 0px 10px");
+  TestingUtils.testGridTemplateColumnsRows("gridItemsPositions", "", "60px 50px", ["110px 0px 0px 0px 100px", "110px repeat(3, 0px) 100px"], "60px 50px 0px 10px");
+  TestingUtils.testGridTemplateColumnsRows("gridItemsPositions", "60px", "60px", ["60px 0px 0px 0px 100px", "60px repeat(3, 0px) 100px"], "60px 20px 0px 20px");
+  TestingUtils.testGridTemplateColumnsRows("gridItemsPositions", "60px", "60px 50px", ["60px 0px 0px 0px 100px", "60px repeat(3, 0px) 100px"], "60px 50px 0px 20px");
+  TestingUtils.testGridTemplateColumnsRows("gridItemsPositions", "60px 50px", "60px", ["60px 50px 0px 0px 100px", "60px 50px repeat(2, 0px) 100px"], "60px 20px 0px 20px");
+  TestingUtils.testGridTemplateColumnsRows("gridItemsPositions", "60px 50px", "60px 50px", ["60px 50px 0px 0px 100px", "60px 50px repeat(2, 0px) 100px"], "60px 50px 0px 20px");
+
+  TestingUtils.testGridTemplateColumnsRows("gridAutoFlowColumn", "", "", "100px 110px 50px", "20px");
+  TestingUtils.testGridTemplateColumnsRows("gridAutoFlowColumn", "", "auto auto", "110px 50px", "20px 10px");
+  TestingUtils.testGridTemplateColumnsRows("gridAutoFlowColumn", "60px", "", "60px 110px 50px", "20px");
+  TestingUtils.testGridTemplateColumnsRows("gridAutoFlowColumn", "100px 60px", "", "100px 60px 50px", "20px");
+  TestingUtils.testGridTemplateColumnsRows("gridAutoFlowColumn", "", "50px", "100px 110px 50px", "50px");
+  TestingUtils.testGridTemplateColumnsRows("gridAutoFlowColumn", "", "50px 30px", "110px 50px", "50px 30px");
+  TestingUtils.testGridTemplateColumnsRows("gridAutoFlowColumn", "60px", "50px", "60px 110px 50px", "50px");
+  TestingUtils.testGridTemplateColumnsRows("gridAutoFlowColumn", "60px", "50px 30px", "60px 50px", "50px 30px");
+  TestingUtils.testGridTemplateColumnsRows("gridAutoFlowColumn", "100px 60px", "50px", "100px 60px 50px", "50px");
+  TestingUtils.testGridTemplateColumnsRows("gridAutoFlowColumn", "100px 60px", "50px 30px", "100px 60px", "50px 30px");
+
+  TestingUtils.testGridTemplateColumnsRows("gridAutoFlowColumnItemsPositions", "", "", ["110px 50px 0px 0px 100px", "110px 50px repeat(2, 0px) 100px"], ["20px 0px 0px 10px", "20px repeat(2, 0px) 10px"]);
+  TestingUtils.testGridTemplateColumnsRows("gridAutoFlowColumnItemsPositions", "60px", "", ["60px 50px 0px 0px 100px", "60px 50px repeat(2, 0px) 100px"], ["20px 0px 0px 20px", "20px repeat(2, 0px) 20px"]);
+  TestingUtils.testGridTemplateColumnsRows("gridAutoFlowColumnItemsPositions", "60px 70px", "", ["60px 70px 0px 0px 100px", "60px 70px repeat(2, 0px) 100px"], ["20px 0px 0px 20px", "20px repeat(2, 0px) 20px"]);
+  TestingUtils.testGridTemplateColumnsRows("gridAutoFlowColumnItemsPositions", "", "60px", ["110px 50px 0px 0px 100px", "110px 50px repeat(2, 0px) 100px"], ["60px 0px 0px 10px", "60px repeat(2, 0px) 10px"]);
+  TestingUtils.testGridTemplateColumnsRows("gridAutoFlowColumnItemsPositions", "", "60px 70px", ["110px 50px 0px 0px 100px", "110px 50px repeat(2, 0px) 100px"], "60px 70px 0px 10px");
+  TestingUtils.testGridTemplateColumnsRows("gridAutoFlowColumnItemsPositions", "60px", "60px", ["60px 50px 0px 0px 100px", "60px 50px repeat(2, 0px) 100px"], ["60px 0px 0px 20px", "60px repeat(2, 0px) 20px"]);
+  TestingUtils.testGridTemplateColumnsRows("gridAutoFlowColumnItemsPositions", "60px", "60px 70px", ["60px 50px 0px 0px 100px", "60px 50px repeat(2, 0px) 100px"], "60px 70px 0px 20px");
+  TestingUtils.testGridTemplateColumnsRows("gridAutoFlowColumnItemsPositions", "60px 70px", "60px", ["60px 70px 0px 0px 100px", "60px 70px repeat(2, 0px) 100px"], ["60px 0px 0px 20px", "60px repeat(2, 0px) 20px"]);
+  TestingUtils.testGridTemplateColumnsRows("gridAutoFlowColumnItemsPositions", "60px 70px", "60px 70px", ["60px 70px 0px 0px 100px", "60px 70px repeat(2, 0px) 100px"], "60px 70px 0px 20px");
+</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-definition/grid-inline-template-columns-rows-resolved-values-001.xht b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-definition/grid-inline-template-columns-rows-resolved-values-001.xht
deleted file mode 100644
index 39ab983e..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-definition/grid-inline-template-columns-rows-resolved-values-001.xht
+++ /dev/null
@@ -1,107 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-    <head>
-        <title>CSS Grid Layout Test: 'grid-template-columns' and 'grid-template-rows' properties resolved values for implicit tracks in an inline grid</title>
-        <link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com" />
-        <link rel="help" href="http://www.w3.org/TR/css-grid-1/#resolved-track-list" title="5.1.5. Resolved Values" />
-        <meta name="flags" content="ahem dom" />
-        <meta name="assert" content="This test checks that resolved values for 'grid-template-columns' and 'grid-template-rows' list tracks implicitly created in an inline grid." />
-        <script src="/resources/testharness.js" type="text/javascript"></script>
-        <script src="/resources/testharnessreport.js" type="text/javascript"></script>
-        <script src="support/testing-utils.js" type="text/javascript"></script>
-        <style type="text/css"><![CDATA[
-            .inline-grid {
-                display: inline-grid;
-                width: 800px;
-                height: 600px;
-                font: 10px/1 Ahem;
-                justify-content: start;
-                align-content: start;
-            }
-
-            .fifthColumn {
-                grid-column: 5;
-            }
-
-            .fourthRow {
-                grid-row: 4;
-            }
-
-            .gridAutoFlowColumn {
-                grid-auto-flow: column;
-            }
-        ]]></style>
-    </head>
-    <body>
-        <div id="log"></div>
-
-        <div id="grid" class="inline-grid">
-            <div>FIRST ITEM</div>
-            <div>SECOND ITEM</div>
-            <div>THIRD<br />ITEM</div>
-        </div>
-
-        <div id="gridItemsPositions" class="inline-grid">
-            <div class="fifthColumn">FIRST ITEM</div>
-            <div class="fourthRow">SECOND ITEM</div>
-            <div>THIRD<br />ITEM</div>
-        </div>
-
-        <div id="gridAutoFlowColumn" class="inline-grid gridAutoFlowColumn">
-            <div>FIRST ITEM</div>
-            <div>SECOND ITEM</div>
-            <div>THIRD<br />ITEM</div>
-        </div>
-
-        <div id="gridAutoFlowColumnItemsPositions" class="inline-grid gridAutoFlowColumn">
-            <div class="fifthColumn">FIRST ITEM</div>
-            <div class="fourthRow">SECOND ITEM</div>
-            <div>THIRD<br />ITEM</div>
-        </div>
-
-        <script type="text/javascript"><![CDATA[
-            // Valid values.
-            TestingUtils.testGridTemplateColumnsRows("grid", "", "", "110px", ["10px 10px 20px", "repeat(2, 10px) 20px"]);
-            TestingUtils.testGridTemplateColumnsRows("grid", "auto auto", "", "100px 110px", "10px 20px");
-            TestingUtils.testGridTemplateColumnsRows("grid", "60px", "", "60px", ["20px 20px 20px", "repeat(3, 20px)"]);
-            TestingUtils.testGridTemplateColumnsRows("grid", "100px 60px", "", "100px 60px", ["20px 20px", "repeat(2, 20px)"]);
-            TestingUtils.testGridTemplateColumnsRows("grid", "", "50px", "110px", "50px 10px 20px");
-            TestingUtils.testGridTemplateColumnsRows("grid", "", "50px 30px", "110px", "50px 30px 20px");
-            TestingUtils.testGridTemplateColumnsRows("grid", "60px", "50px", "60px", ["50px 20px 20px", "50px repeat(2, 20px)"]);
-            TestingUtils.testGridTemplateColumnsRows("grid", "60px", "50px 30px", "60px", "50px 30px 20px");
-            TestingUtils.testGridTemplateColumnsRows("grid", "100px 60px", "50px", "100px 60px", "50px 20px");
-            TestingUtils.testGridTemplateColumnsRows("grid", "100px 60px", "50px 30px", "100px 60px", "50px 30px");
-
-            TestingUtils.testGridTemplateColumnsRows("gridItemsPositions", "", "", ["110px 0px 0px 0px 100px", "110px repeat(3, 0px) 100px"], "10px 20px 0px 10px");
-            TestingUtils.testGridTemplateColumnsRows("gridItemsPositions", "60px", "", ["60px 0px 0px 0px 100px", "60px repeat(3, 0px) 100px"], "10px 20px 0px 20px");
-            TestingUtils.testGridTemplateColumnsRows("gridItemsPositions", "60px 50px", "", ["60px 50px 0px 0px 100px", "60px 50px repeat(2, 0px) 100px"], "10px 20px 0px 20px");
-            TestingUtils.testGridTemplateColumnsRows("gridItemsPositions", "", "60px", ["110px 0px 0px 0px 100px", "110px repeat(3, 0px) 100px"], "60px 20px 0px 10px");
-            TestingUtils.testGridTemplateColumnsRows("gridItemsPositions", "", "60px 50px", ["110px 0px 0px 0px 100px", "110px repeat(3, 0px) 100px"], "60px 50px 0px 10px");
-            TestingUtils.testGridTemplateColumnsRows("gridItemsPositions", "60px", "60px", ["60px 0px 0px 0px 100px", "60px repeat(3, 0px) 100px"], "60px 20px 0px 20px");
-            TestingUtils.testGridTemplateColumnsRows("gridItemsPositions", "60px", "60px 50px", ["60px 0px 0px 0px 100px", "60px repeat(3, 0px) 100px"], "60px 50px 0px 20px");
-            TestingUtils.testGridTemplateColumnsRows("gridItemsPositions", "60px 50px", "60px", ["60px 50px 0px 0px 100px", "60px 50px repeat(2, 0px) 100px"], "60px 20px 0px 20px");
-            TestingUtils.testGridTemplateColumnsRows("gridItemsPositions", "60px 50px", "60px 50px", ["60px 50px 0px 0px 100px", "60px 50px repeat(2, 0px) 100px"], "60px 50px 0px 20px");
-
-            TestingUtils.testGridTemplateColumnsRows("gridAutoFlowColumn", "", "", "100px 110px 50px", "20px");
-            TestingUtils.testGridTemplateColumnsRows("gridAutoFlowColumn", "", "auto auto", "110px 50px", "20px 10px");
-            TestingUtils.testGridTemplateColumnsRows("gridAutoFlowColumn", "60px", "", "60px 110px 50px", "20px");
-            TestingUtils.testGridTemplateColumnsRows("gridAutoFlowColumn", "100px 60px", "", "100px 60px 50px", "20px");
-            TestingUtils.testGridTemplateColumnsRows("gridAutoFlowColumn", "", "50px", "100px 110px 50px", "50px");
-            TestingUtils.testGridTemplateColumnsRows("gridAutoFlowColumn", "", "50px 30px", "110px 50px", "50px 30px");
-            TestingUtils.testGridTemplateColumnsRows("gridAutoFlowColumn", "60px", "50px", "60px 110px 50px", "50px");
-            TestingUtils.testGridTemplateColumnsRows("gridAutoFlowColumn", "60px", "50px 30px", "60px 50px", "50px 30px");
-            TestingUtils.testGridTemplateColumnsRows("gridAutoFlowColumn", "100px 60px", "50px", "100px 60px 50px", "50px");
-            TestingUtils.testGridTemplateColumnsRows("gridAutoFlowColumn", "100px 60px", "50px 30px", "100px 60px", "50px 30px");
-
-            TestingUtils.testGridTemplateColumnsRows("gridAutoFlowColumnItemsPositions", "", "", ["110px 50px 0px 0px 100px", "110px 50px repeat(2, 0px) 100px"], ["20px 0px 0px 10px", "20px repeat(2, 0px) 10px"]);
-            TestingUtils.testGridTemplateColumnsRows("gridAutoFlowColumnItemsPositions", "60px", "", ["60px 50px 0px 0px 100px", "60px 50px repeat(2, 0px) 100px"], ["20px 0px 0px 20px", "20px repeat(2, 0px) 20px"]);
-            TestingUtils.testGridTemplateColumnsRows("gridAutoFlowColumnItemsPositions", "60px 70px", "", ["60px 70px 0px 0px 100px", "60px 70px repeat(2, 0px) 100px"], ["20px 0px 0px 20px", "20px repeat(2, 0px) 20px"]);
-            TestingUtils.testGridTemplateColumnsRows("gridAutoFlowColumnItemsPositions", "", "60px", ["110px 50px 0px 0px 100px", "110px 50px repeat(2, 0px) 100px"], ["60px 0px 0px 10px", "60px repeat(2, 0px) 10px"]);
-            TestingUtils.testGridTemplateColumnsRows("gridAutoFlowColumnItemsPositions", "", "60px 70px", ["110px 50px 0px 0px 100px", "110px 50px repeat(2, 0px) 100px"], "60px 70px 0px 10px");
-            TestingUtils.testGridTemplateColumnsRows("gridAutoFlowColumnItemsPositions", "60px", "60px", ["60px 50px 0px 0px 100px", "60px 50px repeat(2, 0px) 100px"], ["60px 0px 0px 20px", "60px repeat(2, 0px) 20px"]);
-            TestingUtils.testGridTemplateColumnsRows("gridAutoFlowColumnItemsPositions", "60px", "60px 70px", ["60px 50px 0px 0px 100px", "60px 50px repeat(2, 0px) 100px"], "60px 70px 0px 20px");
-            TestingUtils.testGridTemplateColumnsRows("gridAutoFlowColumnItemsPositions", "60px 70px", "60px", ["60px 70px 0px 0px 100px", "60px 70px repeat(2, 0px) 100px"], ["60px 0px 0px 20px", "60px repeat(2, 0px) 20px"]);
-            TestingUtils.testGridTemplateColumnsRows("gridAutoFlowColumnItemsPositions", "60px 70px", "60px 70px", ["60px 70px 0px 0px 100px", "60px 70px repeat(2, 0px) 100px"], "60px 70px 0px 20px");
-        ]]></script>
-    </body>
-</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-definition/grid-support-flexible-lengths-001.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-definition/grid-support-flexible-lengths-001.html
new file mode 100644
index 0000000..7c4e1c6
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-definition/grid-support-flexible-lengths-001.html
@@ -0,0 +1,100 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Grid Layout Test: Support flexible lengths for 'grid-template-columns' and 'grid-template-rows' properties</title>
+<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
+<link rel="help" href="http://www.w3.org/TR/css-grid-1/#fr-unit" title="5.1.3 Flexible Lengths: the fr unit">
+<meta name="flags" content="ahem dom">
+<meta name="assert" content="This test checks that 'grid-template-columns' and 'grid-template-rows' properties support flexible lengths (the 'fr' unit), so you can use it to represent a fraction of the free space in the grid container.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="support/testing-utils.js"></script>
+<style>
+  .grid {
+    display: grid;
+    width: 800px;
+    height: 600px;
+    font: 10px/1 Ahem;
+    justify-content: start;
+    align-content: start;
+  }
+</style>
+<div id="log"></div>
+
+<div id="emptyGrid" class="grid"></div>
+<div id="grid" class="grid">
+  <div>GRID ITEM</div>
+</div>
+
+<script>
+  // Valid values.
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "1fr", "1fr", "800px", "600px");
+  TestingUtils.testGridTemplateColumnsRows("grid", "1fr", "1fr", "800px", "600px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "2fr", "2fr", "800px", "600px");
+  TestingUtils.testGridTemplateColumnsRows("grid", "2fr", "2fr", "800px", "600px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "10fr", "10fr", "800px", "600px");
+  TestingUtils.testGridTemplateColumnsRows("grid", "10fr", "10fr", "800px", "600px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "0.5fr", "0.5fr", "400px", "300px");
+  TestingUtils.testGridTemplateColumnsRows("grid", "0.5fr", "0.5fr", "400px", "300px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", ".5fr", ".5fr", "400px", "300px");
+  TestingUtils.testGridTemplateColumnsRows("grid", ".5fr", ".5fr", "400px", "300px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "minmax(100px, 1fr)", "minmax(100px, 1fr)", "800px", "600px");
+  TestingUtils.testGridTemplateColumnsRows("grid", "minmax(100px, 1fr)", "minmax(100px, 1fr)", "800px", "600px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "minmax(1fr, 1fr)", "minmax(1fr, 1fr)", "800px", "600px");
+  TestingUtils.testGridTemplateColumnsRows("grid", "minmax(1fr, 1fr)", "minmax(1fr, 1fr)", "800px", "600px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "1fr 1fr", "1fr 1fr", ["400px 400px", "repeat(2, 400px)"], ["300px 300px", "repeat(2, 300px)"]);
+  TestingUtils.testGridTemplateColumnsRows("grid", "1fr 1fr", "1fr 1fr", ["400px 400px", "repeat(2, 400px)"], ["300px 300px", "repeat(2, 300px)"]);
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "0.25fr 0.75fr", "0.25fr 0.75fr", "200px 600px", "150px 450px");
+  TestingUtils.testGridTemplateColumnsRows("grid", "0.25fr 0.75fr", "0.25fr 0.75fr", "200px 600px", "150px 450px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "1fr 2fr 1fr", "1fr 2fr 1fr", "200px 400px 200px", "150px 300px 150px");
+  TestingUtils.testGridTemplateColumnsRows("grid", "1fr 2fr 1fr", "1fr 2fr 1fr", "200px 400px 200px", "150px 300px 150px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "auto 1fr 4fr 3fr 2fr", "auto 1fr 4fr 3fr 2fr", "0px 80px 320px 240px 160px", "0px 60px 240px 180px 120px");
+  TestingUtils.testGridTemplateColumnsRows("grid", "auto 1fr 4fr 3fr 2fr", "auto 1fr 4fr 3fr 2fr", "90px 71px 284px 213px 142px", "10px 59px 236px 177px 118px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "1fr 4fr 100px 3fr 2fr", "1fr 4fr 100px 3fr 2fr", "70px 280px 100px 210px 140px", "50px 200px 100px 150px 100px");
+  TestingUtils.testGridTemplateColumnsRows("grid", "1fr 4fr 100px 3fr 2fr", "1fr 4fr 100px 3fr 2fr", "70px 280px 100px 210px 140px", "50px 200px 100px 150px 100px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "auto 1fr", "auto 1fr", "0px 800px", "0px 600px");
+  TestingUtils.testGridTemplateColumnsRows("grid", "auto 1fr", "auto 1fr", "90px 710px", "10px 590px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "max-content 1fr", "max-content 1fr", "0px 800px", "0px 600px");
+  TestingUtils.testGridTemplateColumnsRows("grid", "max-content 1fr", "max-content 1fr", "90px 710px", "10px 590px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "min-content 1fr", "min-content 1fr", "0px 800px", "0px 600px");
+  TestingUtils.testGridTemplateColumnsRows("grid", "min-content 1fr", "min-content 1fr", "40px 760px", "20px 580px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "1fr auto", "1fr auto", "800px 0px", "600px 0px");
+  TestingUtils.testGridTemplateColumnsRows("grid", "1fr auto", "1fr auto", "800px 0px", "600px 0px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "300px 1fr", "200px 1fr", "300px 500px", "200px 400px");
+  TestingUtils.testGridTemplateColumnsRows("grid", "300px 1fr", "200px 1fr", "300px 500px", "200px 400px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "800px 1fr", "600px 1fr", "800px 0px", "600px 0px");
+  TestingUtils.testGridTemplateColumnsRows("grid", "800px 1fr", "600px 1fr", "800px 0px", "600px 0px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "1000px 1fr", "700px 1fr", "1000px 0px", "700px 0px");
+  TestingUtils.testGridTemplateColumnsRows("grid", "1000px 1fr", "700px 1fr", "1000px 0px", "700px 0px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "calc(50px + 50%) 1fr", "calc(50px + 50%) 1fr", "450px 350px", "350px 250px");
+  TestingUtils.testGridTemplateColumnsRows("grid", "calc(50px + 50%) 1fr", "calc(50px + 50%) 1fr", "450px 350px", "350px 250px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "minmax(100px, 300px) 1fr", "minmax(100px, 200px) 1fr", "300px 500px", "200px 400px");
+  TestingUtils.testGridTemplateColumnsRows("grid", "minmax(100px, 300px) 1fr", "minmax(100px, 200px) 1fr", "300px 500px", "200px 400px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "repeat(4, 1fr)", "repeat(4, 1fr)", ["200px 200px 200px 200px", "repeat(4, 200px)"], ["150px 150px 150px 150px", "repeat(4, 150px)"]);
+  TestingUtils.testGridTemplateColumnsRows("grid", "repeat(4, 1fr)", "repeat(4, 1fr)", ["200px 200px 200px 200px", "repeat(4, 200px)"], ["150px 150px 150px 150px", "repeat(4, 150px)"]);
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[a] repeat(4, [b] 1fr [c]) [d]", "[z] repeat(4, [y] 1fr) [x]", ["[a b] 200px [c b] 200px [c b] 200px [c b] 200px [c d]", "[a] repeat(4, [b] 200px [c]) [d]"], ["[z y] 150px [y] 150px [y] 150px [y] 150px [x]", "[z] repeat(4, [y] 150px) [x]"]);
+  TestingUtils.testGridTemplateColumnsRows("grid", "[a] repeat(4, [b] 1fr [c]) [d]", "[z] repeat(4, [y] 1fr) [x]", ["[a b] 200px [c b] 200px [c b] 200px [c b] 200px [c d]", "[a] repeat(4, [b] 200px [c]) [d]"], ["[z y] 150px [y] 150px [y] 150px [y] 150px [x]", "[z] repeat(4, [y] 150px) [x]"]);
+
+  // Reset values.
+  document.getElementById("emptyGrid").style.gridTemplateColumns = "";
+  document.getElementById("emptyGrid").style.gridTemplateRows = "";
+  document.getElementById("grid").style.gridTemplateColumns = "";
+  document.getElementById("grid").style.gridTemplateRows = "";
+
+  // Wrong values.
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "fr", "fr", "none", "none");
+  TestingUtils.testGridTemplateColumnsRows("grid", "fr", "fr", "90px", "10px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "1 fr", "1 fr", "none", "none");
+  TestingUtils.testGridTemplateColumnsRows("grid", "1 fr", "1 fr", "90px", "10px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "1free-space", "1free-space", "none", "none");
+  TestingUtils.testGridTemplateColumnsRows("grid", "1free-space", "1free-space", "90px", "10px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "-2fr", "-2fr", "none", "none");
+  TestingUtils.testGridTemplateColumnsRows("grid", "-2fr", "-2fr", "90px", "10px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "0,5fr", "0,5fr", "none", "none");
+  TestingUtils.testGridTemplateColumnsRows("grid", "0,5fr", "0,5fr", "90px", "10px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "calc(1fr + 100px)", "calc(1fr + 100px)", "none", "none");
+  TestingUtils.testGridTemplateColumnsRows("grid", "calc(1fr + 100px)", "calc(1fr + 100px)", "90px", "10px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "(1fr) auto", "(1fr) auto", "none", "none");
+  TestingUtils.testGridTemplateColumnsRows("grid", "(1fr) auto", "(1fr) auto", "90px", "10px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "minmax(1fr, 1000px)", "minmax(1fr, 700px)", "none", "none");
+  TestingUtils.testGridTemplateColumnsRows("grid", "minmax(1fr, 1000px)", "minmax(1fr, 700px)", "90px", "10px");
+</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-definition/grid-support-flexible-lengths-001.xht b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-definition/grid-support-flexible-lengths-001.xht
deleted file mode 100644
index dff2511..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-definition/grid-support-flexible-lengths-001.xht
+++ /dev/null
@@ -1,105 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-    <head>
-        <title>CSS Grid Layout Test: Support flexible lengths for 'grid-template-columns' and 'grid-template-rows' properties</title>
-        <link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com" />
-        <link rel="help" href="http://www.w3.org/TR/css-grid-1/#fr-unit" title="5.1.3 Flexible Lengths: the fr unit" />
-        <meta name="flags" content="ahem dom" />
-        <meta name="assert" content="This test checks that 'grid-template-columns' and 'grid-template-rows' properties support flexible lengths (the 'fr' unit), so you can use it to represent a fraction of the free space in the grid container." />
-        <script src="/resources/testharness.js" type="text/javascript"></script>
-        <script src="/resources/testharnessreport.js" type="text/javascript"></script>
-        <script src="support/testing-utils.js" type="text/javascript"></script>
-        <style type="text/css"><![CDATA[
-            .grid {
-                display: grid;
-                width: 800px;
-                height: 600px;
-                font: 10px/1 Ahem;
-                justify-content: start;
-                align-content: start;
-            }
-        ]]></style>
-    </head>
-    <body>
-        <div id="log"></div>
-
-        <div id="emptyGrid" class="grid"></div>
-        <div id="grid" class="grid">
-            <div>GRID ITEM</div>
-        </div>
-
-        <script type="text/javascript"><![CDATA[
-            // Valid values.
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "1fr", "1fr", "800px", "600px");
-            TestingUtils.testGridTemplateColumnsRows("grid", "1fr", "1fr", "800px", "600px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "2fr", "2fr", "800px", "600px");
-            TestingUtils.testGridTemplateColumnsRows("grid", "2fr", "2fr", "800px", "600px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "10fr", "10fr", "800px", "600px");
-            TestingUtils.testGridTemplateColumnsRows("grid", "10fr", "10fr", "800px", "600px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "0.5fr", "0.5fr", "400px", "300px");
-            TestingUtils.testGridTemplateColumnsRows("grid", "0.5fr", "0.5fr", "400px", "300px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", ".5fr", ".5fr", "400px", "300px");
-            TestingUtils.testGridTemplateColumnsRows("grid", ".5fr", ".5fr", "400px", "300px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "minmax(100px, 1fr)", "minmax(100px, 1fr)", "800px", "600px");
-            TestingUtils.testGridTemplateColumnsRows("grid", "minmax(100px, 1fr)", "minmax(100px, 1fr)", "800px", "600px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "minmax(1fr, 1fr)", "minmax(1fr, 1fr)", "800px", "600px");
-            TestingUtils.testGridTemplateColumnsRows("grid", "minmax(1fr, 1fr)", "minmax(1fr, 1fr)", "800px", "600px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "1fr 1fr", "1fr 1fr", ["400px 400px", "repeat(2, 400px)"], ["300px 300px", "repeat(2, 300px)"]);
-            TestingUtils.testGridTemplateColumnsRows("grid", "1fr 1fr", "1fr 1fr", ["400px 400px", "repeat(2, 400px)"], ["300px 300px", "repeat(2, 300px)"]);
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "0.25fr 0.75fr", "0.25fr 0.75fr", "200px 600px", "150px 450px");
-            TestingUtils.testGridTemplateColumnsRows("grid", "0.25fr 0.75fr", "0.25fr 0.75fr", "200px 600px", "150px 450px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "1fr 2fr 1fr", "1fr 2fr 1fr", "200px 400px 200px", "150px 300px 150px");
-            TestingUtils.testGridTemplateColumnsRows("grid", "1fr 2fr 1fr", "1fr 2fr 1fr", "200px 400px 200px", "150px 300px 150px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "auto 1fr 4fr 3fr 2fr", "auto 1fr 4fr 3fr 2fr", "0px 80px 320px 240px 160px", "0px 60px 240px 180px 120px");
-            TestingUtils.testGridTemplateColumnsRows("grid", "auto 1fr 4fr 3fr 2fr", "auto 1fr 4fr 3fr 2fr", "90px 71px 284px 213px 142px", "10px 59px 236px 177px 118px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "1fr 4fr 100px 3fr 2fr", "1fr 4fr 100px 3fr 2fr", "70px 280px 100px 210px 140px", "50px 200px 100px 150px 100px");
-            TestingUtils.testGridTemplateColumnsRows("grid", "1fr 4fr 100px 3fr 2fr", "1fr 4fr 100px 3fr 2fr", "70px 280px 100px 210px 140px", "50px 200px 100px 150px 100px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "auto 1fr", "auto 1fr", "0px 800px", "0px 600px");
-            TestingUtils.testGridTemplateColumnsRows("grid", "auto 1fr", "auto 1fr", "90px 710px", "10px 590px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "max-content 1fr", "max-content 1fr", "0px 800px", "0px 600px");
-            TestingUtils.testGridTemplateColumnsRows("grid", "max-content 1fr", "max-content 1fr", "90px 710px", "10px 590px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "min-content 1fr", "min-content 1fr", "0px 800px", "0px 600px");
-            TestingUtils.testGridTemplateColumnsRows("grid", "min-content 1fr", "min-content 1fr", "40px 760px", "20px 580px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "1fr auto", "1fr auto", "800px 0px", "600px 0px");
-            TestingUtils.testGridTemplateColumnsRows("grid", "1fr auto", "1fr auto", "800px 0px", "600px 0px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "300px 1fr", "200px 1fr", "300px 500px", "200px 400px");
-            TestingUtils.testGridTemplateColumnsRows("grid", "300px 1fr", "200px 1fr", "300px 500px", "200px 400px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "800px 1fr", "600px 1fr", "800px 0px", "600px 0px");
-            TestingUtils.testGridTemplateColumnsRows("grid", "800px 1fr", "600px 1fr", "800px 0px", "600px 0px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "1000px 1fr", "700px 1fr", "1000px 0px", "700px 0px");
-            TestingUtils.testGridTemplateColumnsRows("grid", "1000px 1fr", "700px 1fr", "1000px 0px", "700px 0px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "calc(50px + 50%) 1fr", "calc(50px + 50%) 1fr", "450px 350px", "350px 250px");
-            TestingUtils.testGridTemplateColumnsRows("grid", "calc(50px + 50%) 1fr", "calc(50px + 50%) 1fr", "450px 350px", "350px 250px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "minmax(100px, 300px) 1fr", "minmax(100px, 200px) 1fr", "300px 500px", "200px 400px");
-            TestingUtils.testGridTemplateColumnsRows("grid", "minmax(100px, 300px) 1fr", "minmax(100px, 200px) 1fr", "300px 500px", "200px 400px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "repeat(4, 1fr)", "repeat(4, 1fr)", ["200px 200px 200px 200px", "repeat(4, 200px)"], ["150px 150px 150px 150px", "repeat(4, 150px)"]);
-            TestingUtils.testGridTemplateColumnsRows("grid", "repeat(4, 1fr)", "repeat(4, 1fr)", ["200px 200px 200px 200px", "repeat(4, 200px)"], ["150px 150px 150px 150px", "repeat(4, 150px)"]);
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[a] repeat(4, [b] 1fr [c]) [d]", "[z] repeat(4, [y] 1fr) [x]", ["[a b] 200px [c b] 200px [c b] 200px [c b] 200px [c d]", "[a] repeat(4, [b] 200px [c]) [d]"], ["[z y] 150px [y] 150px [y] 150px [y] 150px [x]", "[z] repeat(4, [y] 150px) [x]"]);
-            TestingUtils.testGridTemplateColumnsRows("grid", "[a] repeat(4, [b] 1fr [c]) [d]", "[z] repeat(4, [y] 1fr) [x]", ["[a b] 200px [c b] 200px [c b] 200px [c b] 200px [c d]", "[a] repeat(4, [b] 200px [c]) [d]"], ["[z y] 150px [y] 150px [y] 150px [y] 150px [x]", "[z] repeat(4, [y] 150px) [x]"]);
-
-            // Reset values.
-            document.getElementById("emptyGrid").style.gridTemplateColumns = "";
-            document.getElementById("emptyGrid").style.gridTemplateRows = "";
-            document.getElementById("grid").style.gridTemplateColumns = "";
-            document.getElementById("grid").style.gridTemplateRows = "";
-
-            // Wrong values.
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "fr", "fr", "none", "none");
-            TestingUtils.testGridTemplateColumnsRows("grid", "fr", "fr", "90px", "10px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "1 fr", "1 fr", "none", "none");
-            TestingUtils.testGridTemplateColumnsRows("grid", "1 fr", "1 fr", "90px", "10px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "1free-space", "1free-space", "none", "none");
-            TestingUtils.testGridTemplateColumnsRows("grid", "1free-space", "1free-space", "90px", "10px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "-2fr", "-2fr", "none", "none");
-            TestingUtils.testGridTemplateColumnsRows("grid", "-2fr", "-2fr", "90px", "10px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "0,5fr", "0,5fr", "none", "none");
-            TestingUtils.testGridTemplateColumnsRows("grid", "0,5fr", "0,5fr", "90px", "10px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "calc(1fr + 100px)", "calc(1fr + 100px)", "none", "none");
-            TestingUtils.testGridTemplateColumnsRows("grid", "calc(1fr + 100px)", "calc(1fr + 100px)", "90px", "10px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "(1fr) auto", "(1fr) auto", "none", "none");
-            TestingUtils.testGridTemplateColumnsRows("grid", "(1fr) auto", "(1fr) auto", "90px", "10px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "minmax(1fr, 1000px)", "minmax(1fr, 700px)", "none", "none");
-            TestingUtils.testGridTemplateColumnsRows("grid", "minmax(1fr, 1000px)", "minmax(1fr, 700px)", "90px", "10px");
-        ]]></script>
-    </body>
-</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-definition/grid-support-grid-template-areas-001.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-definition/grid-support-grid-template-areas-001.html
new file mode 100644
index 0000000..da29040b
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-definition/grid-support-grid-template-areas-001.html
@@ -0,0 +1,72 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Grid Layout Test: Support for 'grid-template-ares' property</title>
+<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
+<link rel="help" href="http://www.w3.org/TR/css-grid-1/#grid-template-areas-property" title="5.2 Named Areas: the 'grid-template-areas' property">
+<meta name="flags" content="ahem dom">
+<meta name="assert" content="This test checks that 'grid-template-areas' is supported in a grid. So you can define the grid structure.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="support/testing-utils.js"></script>
+<style>
+  #grid {
+    display: grid;
+  }
+</style>
+<div id="log"></div>
+
+<div id="grid"></div>
+
+<script>
+  // Single values.
+  TestingUtils.testGridTemplateAreas('grid', 'none', 'none');
+  TestingUtils.testGridTemplateAreas('grid', '"a"', '"a"');
+  TestingUtils.testGridTemplateAreas('grid', '"."', '"."');
+  TestingUtils.testGridTemplateAreas('grid', '"lower UPPER 10 -minus _low 1-st ©copy_right line¶"', '"lower UPPER 10 -minus _low 1-st ©copy_right line¶"');
+  TestingUtils.testGridTemplateAreas('grid', '"a b"', '"a b"');
+  TestingUtils.testGridTemplateAreas('grid', '"a b" "c d"', '"a b" "c d"');
+  TestingUtils.testGridTemplateAreas('grid', '"a   b"   "c   d"', ['"a b" "c d"', '"a   b" "c   d"']);
+  TestingUtils.testGridTemplateAreas('grid', '"a b""c d"', '"a b" "c d"');
+  TestingUtils.testGridTemplateAreas('grid', '"a b"\t"c d"', '"a b" "c d"');
+  TestingUtils.testGridTemplateAreas('grid', '"a b"\n"c d"', '"a b" "c d"');
+  TestingUtils.testGridTemplateAreas('grid', '"a b" "a b"', '"a b" "a b"');
+  TestingUtils.testGridTemplateAreas('grid', '"a a" "b b"', '"a a" "b b"');
+  TestingUtils.testGridTemplateAreas('grid', '". a ." "b a c"', '". a ." "b a c"');
+  TestingUtils.testGridTemplateAreas('grid', '".. a ..." "b a c"', ['". a ." "b a c"', '".. a ..." "b a c"']);
+  TestingUtils.testGridTemplateAreas('grid', '".a..." "b a c"', ['". a ." "b a c"', '".a..." "b a c"']);
+  TestingUtils.testGridTemplateAreas('grid', '"head head" "nav main" "foot ."', '"head head" "nav main" "foot ."');
+  TestingUtils.testGridTemplateAreas('grid', '"head head" "nav main" "foot ...."', ['"head head" "nav main" "foot ."', '"head head" "nav main" "foot ...."']);
+  TestingUtils.testGridTemplateAreas('grid', '"head head" "nav main" "foot."', ['"head head" "nav main" "foot ."', '"head head" "nav main" "foot."']);
+  TestingUtils.testGridTemplateAreas('grid', '". header header ." "nav main main main" "nav footer footer ."', '". header header ." "nav main main main" "nav footer footer ."');
+  TestingUtils.testGridTemplateAreas('grid', '"... header header ...." "nav main main main" "nav footer footer ...."', ['". header header ." "nav main main main" "nav footer footer ."', '"... header header ...." "nav main main main" "nav footer footer ...."']);
+  TestingUtils.testGridTemplateAreas('grid', '"...header header...." "nav main main main" "nav footer footer...."', ['". header header ." "nav main main main" "nav footer footer ."', '"...header header...." "nav main main main" "nav footer footer...."']);
+  TestingUtils.testGridTemplateAreas('grid', '"title stats" "score stats" "board board" "ctrls ctrls"', '"title stats" "score stats" "board board" "ctrls ctrls"');
+  TestingUtils.testGridTemplateAreas('grid', '"title board" "stats board" "score ctrls"', '"title board" "stats board" "score ctrls"');
+  TestingUtils.testGridTemplateAreas('grid', '". a" "b a" ". a"', '". a" "b a" ". a"');
+  TestingUtils.testGridTemplateAreas('grid', '".. a" "b a" "... a"', ['". a" "b a" ". a"', '".. a" "b a" "... a"']);
+  TestingUtils.testGridTemplateAreas('grid', '"..a" "b a" ".a"', ['". a" "b a" ". a"', '"..a" "b a" ".a"']);
+  TestingUtils.testGridTemplateAreas('grid', '"a a a" "b b b"', '"a a a" "b b b"');
+  TestingUtils.testGridTemplateAreas('grid', '". ." "a a"', '". ." "a a"');
+  TestingUtils.testGridTemplateAreas('grid', '"... ...." "a a"', ['". ." "a a"', '"... ...." "a a"']);
+
+  // Reset values.
+  document.getElementById('grid').style.gridTemplateAreas = '';
+
+  // Wrong values.
+  TestingUtils.testGridTemplateAreas('grid', 'a', 'none');
+  TestingUtils.testGridTemplateAreas('grid', '"a" "b c"', 'none');
+  TestingUtils.testGridTemplateAreas('grid', '"a b" "c" "d e"', 'none');
+  TestingUtils.testGridTemplateAreas('grid', '"a b c" "d e"', 'none');
+  TestingUtils.testGridTemplateAreas('grid', '"a b"-"c d"', 'none');
+  TestingUtils.testGridTemplateAreas('grid', '"a b" - "c d"', 'none');
+  TestingUtils.testGridTemplateAreas('grid', '"a b" . "c d"', 'none');
+  TestingUtils.testGridTemplateAreas('grid', '"a b a"', 'none');
+  TestingUtils.testGridTemplateAreas('grid', '"a" "b" "a"', 'none');
+  TestingUtils.testGridTemplateAreas('grid', '"a b" "b b"', 'none');
+  TestingUtils.testGridTemplateAreas('grid', '"b a" "b b"', 'none');
+  TestingUtils.testGridTemplateAreas('grid', '"a b" "b a"', 'none');
+  TestingUtils.testGridTemplateAreas('grid', '"a ." ". a"', 'none');
+  TestingUtils.testGridTemplateAreas('grid', '","', 'none');
+  TestingUtils.testGridTemplateAreas('grid', '"10%"', 'none');
+  TestingUtils.testGridTemplateAreas('grid', '"USD$"', 'none');
+</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-definition/grid-support-grid-template-areas-001.xht b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-definition/grid-support-grid-template-areas-001.xht
deleted file mode 100644
index 2f88e747..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-definition/grid-support-grid-template-areas-001.xht
+++ /dev/null
@@ -1,77 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-    <head>
-        <title>CSS Grid Layout Test: Support for 'grid-template-ares' property</title>
-        <link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com" />
-        <link rel="help" href="http://www.w3.org/TR/css-grid-1/#grid-template-areas-property" title="5.2 Named Areas: the 'grid-template-areas' property" />
-        <meta name="flags" content="ahem dom" />
-        <meta name="assert" content="This test checks that 'grid-template-areas' is supported in a grid. So you can define the grid structure." />
-        <script src="/resources/testharness.js" type="text/javascript"></script>
-        <script src="/resources/testharnessreport.js" type="text/javascript"></script>
-        <script src="support/testing-utils.js" type="text/javascript"></script>
-        <style type="text/css"><![CDATA[
-            #grid {
-                display: grid;
-            }
-        ]]></style>
-    </head>
-    <body>
-        <div id="log"></div>
-
-        <div id="grid"></div>
-
-        <script type="text/javascript"><![CDATA[
-            // Single values.
-            TestingUtils.testGridTemplateAreas('grid', 'none', 'none');
-            TestingUtils.testGridTemplateAreas('grid', '"a"', '"a"');
-            TestingUtils.testGridTemplateAreas('grid', '"."', '"."');
-            TestingUtils.testGridTemplateAreas('grid', '"lower UPPER 10 -minus _low 1-st ©copy_right line¶"', '"lower UPPER 10 -minus _low 1-st ©copy_right line¶"');
-            TestingUtils.testGridTemplateAreas('grid', '"a b"', '"a b"');
-            TestingUtils.testGridTemplateAreas('grid', '"a b" "c d"', '"a b" "c d"');
-            TestingUtils.testGridTemplateAreas('grid', '"a     b"     "c     d"', ['"a b" "c d"', '"a     b" "c     d"']);
-            TestingUtils.testGridTemplateAreas('grid', '"a b""c d"', '"a b" "c d"');
-            TestingUtils.testGridTemplateAreas('grid', '"a b"\t"c d"', '"a b" "c d"');
-            TestingUtils.testGridTemplateAreas('grid', '"a b"\n"c d"', '"a b" "c d"');
-            TestingUtils.testGridTemplateAreas('grid', '"a b" "a b"', '"a b" "a b"');
-            TestingUtils.testGridTemplateAreas('grid', '"a a" "b b"', '"a a" "b b"');
-            TestingUtils.testGridTemplateAreas('grid', '". a ." "b a c"', '". a ." "b a c"');
-            TestingUtils.testGridTemplateAreas('grid', '".. a ..." "b a c"', ['". a ." "b a c"', '".. a ..." "b a c"']);
-            TestingUtils.testGridTemplateAreas('grid', '".a..." "b a c"', ['". a ." "b a c"', '".a..." "b a c"']);
-            TestingUtils.testGridTemplateAreas('grid', '"head head" "nav main" "foot ."', '"head head" "nav main" "foot ."');
-            TestingUtils.testGridTemplateAreas('grid', '"head head" "nav main" "foot ...."', ['"head head" "nav main" "foot ."', '"head head" "nav main" "foot ...."']);
-            TestingUtils.testGridTemplateAreas('grid', '"head head" "nav main" "foot."', ['"head head" "nav main" "foot ."', '"head head" "nav main" "foot."']);
-            TestingUtils.testGridTemplateAreas('grid', '". header header ." "nav main main main" "nav footer footer ."', '". header header ." "nav main main main" "nav footer footer ."');
-            TestingUtils.testGridTemplateAreas('grid', '"... header header ...." "nav main main main" "nav footer footer ...."', ['". header header ." "nav main main main" "nav footer footer ."', '"... header header ...." "nav main main main" "nav footer footer ...."']);
-            TestingUtils.testGridTemplateAreas('grid', '"...header header...." "nav main main main" "nav footer footer...."', ['". header header ." "nav main main main" "nav footer footer ."', '"...header header...." "nav main main main" "nav footer footer...."']);
-            TestingUtils.testGridTemplateAreas('grid', '"title stats" "score stats" "board board" "ctrls ctrls"', '"title stats" "score stats" "board board" "ctrls ctrls"');
-            TestingUtils.testGridTemplateAreas('grid', '"title board" "stats board" "score ctrls"', '"title board" "stats board" "score ctrls"');
-            TestingUtils.testGridTemplateAreas('grid', '". a" "b a" ". a"', '". a" "b a" ". a"');
-            TestingUtils.testGridTemplateAreas('grid', '".. a" "b a" "... a"', ['". a" "b a" ". a"', '".. a" "b a" "... a"']);
-            TestingUtils.testGridTemplateAreas('grid', '"..a" "b a" ".a"', ['". a" "b a" ". a"', '"..a" "b a" ".a"']);
-            TestingUtils.testGridTemplateAreas('grid', '"a a a" "b b b"', '"a a a" "b b b"');
-            TestingUtils.testGridTemplateAreas('grid', '". ." "a a"', '". ." "a a"');
-            TestingUtils.testGridTemplateAreas('grid', '"... ...." "a a"', ['". ." "a a"', '"... ...." "a a"']);
-
-            // Reset values.
-            document.getElementById('grid').style.gridTemplateAreas = '';
-
-            // Wrong values.
-            TestingUtils.testGridTemplateAreas('grid', 'a', 'none');
-            TestingUtils.testGridTemplateAreas('grid', '"a" "b c"', 'none');
-            TestingUtils.testGridTemplateAreas('grid', '"a b" "c" "d e"', 'none');
-            TestingUtils.testGridTemplateAreas('grid', '"a b c" "d e"', 'none');
-            TestingUtils.testGridTemplateAreas('grid', '"a b"-"c d"', 'none');
-            TestingUtils.testGridTemplateAreas('grid', '"a b" - "c d"', 'none');
-            TestingUtils.testGridTemplateAreas('grid', '"a b" . "c d"', 'none');
-            TestingUtils.testGridTemplateAreas('grid', '"a b a"', 'none');
-            TestingUtils.testGridTemplateAreas('grid', '"a" "b" "a"', 'none');
-            TestingUtils.testGridTemplateAreas('grid', '"a b" "b b"', 'none');
-            TestingUtils.testGridTemplateAreas('grid', '"b a" "b b"', 'none');
-            TestingUtils.testGridTemplateAreas('grid', '"a b" "b a"', 'none');
-            TestingUtils.testGridTemplateAreas('grid', '"a ." ". a"', 'none');
-            TestingUtils.testGridTemplateAreas('grid', '","', 'none');
-            TestingUtils.testGridTemplateAreas('grid', '"10%"', 'none');
-            TestingUtils.testGridTemplateAreas('grid', '"USD$"', 'none');
-        ]]></script>
-    </body>
-</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-definition/grid-support-grid-template-columns-rows-001.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-definition/grid-support-grid-template-columns-rows-001.html
new file mode 100644
index 0000000..a1c21a7b
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-definition/grid-support-grid-template-columns-rows-001.html
@@ -0,0 +1,84 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Grid Layout Test: Support for 'grid-template-columns' and 'grid-template-rows' properties</title>
+<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
+<link rel="help" href="http://www.w3.org/TR/css-grid-1/#track-sizing" title="5.1 Track Sizing: the 'grid-template-rows' and 'grid-template-columns' properties">
+<meta name="flags" content="ahem dom">
+<meta name="assert" content="This test checks that 'grid-template-columns' and 'grid-template-rows' properties are supported in a grid. So you can use the different syntax options to define the trak list.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="support/testing-utils.js"></script>
+<style>
+  .grid {
+    display: grid;
+    width: 800px;
+    height: 600px;
+    font: 10px/1 Ahem;
+    justify-content: start;
+    align-content: start;
+  }
+</style>
+<div id="log"></div>
+
+<div id="emptyGrid" class="grid"></div>
+<div id="grid" class="grid">
+  <div id="item">GRID ITEM</div>
+</div>
+
+<script>
+  // Single values.
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "none", "none", "none", "none");
+  TestingUtils.testGridTemplateColumnsRows("grid", "none", "none", "90px", "10px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "auto", "auto", "0px", "0px");
+  TestingUtils.testGridTemplateColumnsRows("grid", "auto", "auto", "90px", "10px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "500px", "300px", "500px", "300px");
+  TestingUtils.testGridTemplateColumnsRows("grid", "500px", "300px", "500px", "300px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "40em", "20em", "400px", "200px");
+  TestingUtils.testGridTemplateColumnsRows("grid", "40em", "20em", "400px", "200px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "25%", "50%", "200px", "300px");
+  TestingUtils.testGridTemplateColumnsRows("grid", "25%", "50%", "200px", "300px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "calc(200px + 10%)", "calc(25% + 50px)", "280px", "200px");
+  TestingUtils.testGridTemplateColumnsRows("grid", "calc(200px + 10%)", "calc(25% + 50px)", "280px", "200px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "1fr", "1fr", "800px", "600px");
+  TestingUtils.testGridTemplateColumnsRows("grid", "1fr", "1fr", "800px", "600px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "max-content", "max-content", "0px", "0px");
+  TestingUtils.testGridTemplateColumnsRows("grid", "max-content", "max-content", "90px", "10px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "min-content", "min-content", "0px", "0px");
+  TestingUtils.testGridTemplateColumnsRows("grid", "min-content", "min-content", "40px", "20px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "minmax(200px, 400px)", "minmax(50px, 100px)", "400px", "100px");
+  TestingUtils.testGridTemplateColumnsRows("grid", "minmax(200px, 400px)", "minmax(50px, 100px)", "400px", "100px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "minmax(calc(10% + 200px), calc(800px - 20%))", "minmax(calc(20% + 50px), calc(600px - 10%))", "640px", "540px");
+  TestingUtils.testGridTemplateColumnsRows("grid", "minmax(calc(10% + 200px), calc(800px - 20%))", "minmax(calc(20% + 50px), calc(600px - 10%))", "640px", "540px");
+
+  // Multiple values.
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "500px 200px 50px", "100px 300px", "500px 200px 50px", "100px 300px");
+  TestingUtils.testGridTemplateColumnsRows("grid", "500px 200px 50px", "100px 300px", "500px 200px 50px", "100px 300px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "40em 100px 15%", "50px 20em 10%", "400px 100px 120px", "50px 200px 60px");
+  TestingUtils.testGridTemplateColumnsRows("grid", "40em 100px 15%", "50px 20em 10%", "400px 100px 120px", "50px 200px 60px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "200px 1fr", "1fr 100px", "200px 600px", "500px 100px");
+  TestingUtils.testGridTemplateColumnsRows("grid", "200px 1fr", "1fr 100px", "200px 600px", "500px 100px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "auto 1fr", "auto 1fr", "0px 800px", "0px 600px");
+  TestingUtils.testGridTemplateColumnsRows("grid", "auto 1fr", "auto 1fr", "90px 710px", "10px 590px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "1fr 3fr", "2fr 1fr", "200px 600px", "400px 200px");
+  TestingUtils.testGridTemplateColumnsRows("grid", "1fr 3fr", "2fr 1fr", "200px 600px", "400px 200px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "minmax(25px, 75px) 750px", "minmax(50px, 150px) 500px", "50px 750px", "100px 500px");
+  TestingUtils.testGridTemplateColumnsRows("grid", "minmax(25px, 75px) 750px", "minmax(50px, 150px) 500px", "50px 750px", "100px 500px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "min-content 1fr calc(20px + 10%) minmax(30em, 50em)", "min-content 1fr calc(10% + 40px) minmax(3em, 5em)", "0px 200px 100px 500px", "0px 450px 100px 50px");
+  TestingUtils.testGridTemplateColumnsRows("grid", "min-content 1fr calc(20px + 10%) minmax(30em, 50em)", "min-content 1fr  calc(10% + 40px) minmax(3em, 5em)", "40px 160px 100px 500px", "20px 430px 100px 50px");
+
+  // Reset values.
+  document.getElementById("emptyGrid").style.gridTemplateColumns = "";
+  document.getElementById("emptyGrid").style.gridTemplateRows = "";
+  document.getElementById("grid").style.gridTemplateColumns = "";
+  document.getElementById("grid").style.gridTemplateRows = "";
+
+  // Wrong values.
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "foo", "bar", "none", "none");
+  TestingUtils.testGridTemplateColumnsRows("grid", "foo", "bar", "90px", "10px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "auto none", "none auto", "none", "none");
+  TestingUtils.testGridTemplateColumnsRows("grid", "auto none", "none auto", "90px", "10px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "100px, 200px", "300px, 400px", "none", "none");
+  TestingUtils.testGridTemplateColumnsRows("grid", "100px, 200px", "300px, 400px", "90px", "10px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "minmax(100px, 200px, 300px)", "minmax(100px, 200px, 300px)", "none", "none");
+  TestingUtils.testGridTemplateColumnsRows("grid", "minmax(100px, 200px, 300px)", "minmax(100px, 200px, 300px)", "90px", "10px");
+</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-definition/grid-support-grid-template-columns-rows-001.xht b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-definition/grid-support-grid-template-columns-rows-001.xht
deleted file mode 100644
index f10c42d..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-definition/grid-support-grid-template-columns-rows-001.xht
+++ /dev/null
@@ -1,89 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-    <head>
-        <title>CSS Grid Layout Test: Support for 'grid-template-columns' and 'grid-template-rows' properties</title>
-        <link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com" />
-        <link rel="help" href="http://www.w3.org/TR/css-grid-1/#track-sizing" title="5.1 Track Sizing: the 'grid-template-rows' and 'grid-template-columns' properties" />
-        <meta name="flags" content="ahem dom" />
-        <meta name="assert" content="This test checks that 'grid-template-columns' and 'grid-template-rows' properties are supported in a grid. So you can use the different syntax options to define the trak list." />
-        <script src="/resources/testharness.js" type="text/javascript"></script>
-        <script src="/resources/testharnessreport.js" type="text/javascript"></script>
-        <script src="support/testing-utils.js" type="text/javascript"></script>
-        <style type="text/css"><![CDATA[
-            .grid {
-                display: grid;
-                width: 800px;
-                height: 600px;
-                font: 10px/1 Ahem;
-                justify-content: start;
-                align-content: start;
-            }
-        ]]></style>
-    </head>
-    <body>
-        <div id="log"></div>
-
-        <div id="emptyGrid" class="grid"></div>
-        <div id="grid" class="grid">
-            <div id="item">GRID ITEM</div>
-        </div>
-
-        <script type="text/javascript"><![CDATA[
-            // Single values.
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "none", "none", "none", "none");
-            TestingUtils.testGridTemplateColumnsRows("grid", "none", "none", "90px", "10px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "auto", "auto", "0px", "0px");
-            TestingUtils.testGridTemplateColumnsRows("grid", "auto", "auto", "90px", "10px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "500px", "300px", "500px", "300px");
-            TestingUtils.testGridTemplateColumnsRows("grid", "500px", "300px", "500px", "300px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "40em", "20em", "400px", "200px");
-            TestingUtils.testGridTemplateColumnsRows("grid", "40em", "20em", "400px", "200px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "25%", "50%", "200px", "300px");
-            TestingUtils.testGridTemplateColumnsRows("grid", "25%", "50%", "200px", "300px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "calc(200px + 10%)", "calc(25% + 50px)", "280px", "200px");
-            TestingUtils.testGridTemplateColumnsRows("grid", "calc(200px + 10%)", "calc(25% + 50px)", "280px", "200px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "1fr", "1fr", "800px", "600px");
-            TestingUtils.testGridTemplateColumnsRows("grid", "1fr", "1fr", "800px", "600px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "max-content", "max-content", "0px", "0px");
-            TestingUtils.testGridTemplateColumnsRows("grid", "max-content", "max-content", "90px", "10px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "min-content", "min-content", "0px", "0px");
-            TestingUtils.testGridTemplateColumnsRows("grid", "min-content", "min-content", "40px", "20px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "minmax(200px, 400px)", "minmax(50px, 100px)", "400px", "100px");
-            TestingUtils.testGridTemplateColumnsRows("grid", "minmax(200px, 400px)", "minmax(50px, 100px)", "400px", "100px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "minmax(calc(10% + 200px), calc(800px - 20%))", "minmax(calc(20% + 50px), calc(600px - 10%))", "640px", "540px");
-            TestingUtils.testGridTemplateColumnsRows("grid", "minmax(calc(10% + 200px), calc(800px - 20%))", "minmax(calc(20% + 50px), calc(600px - 10%))", "640px", "540px");
-
-            // Multiple values.
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "500px 200px 50px", "100px 300px", "500px 200px 50px", "100px 300px");
-            TestingUtils.testGridTemplateColumnsRows("grid", "500px 200px 50px", "100px 300px", "500px 200px 50px", "100px 300px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "40em 100px 15%", "50px 20em 10%", "400px 100px 120px", "50px 200px 60px");
-            TestingUtils.testGridTemplateColumnsRows("grid", "40em 100px 15%", "50px 20em 10%", "400px 100px 120px", "50px 200px 60px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "200px 1fr", "1fr 100px", "200px 600px", "500px 100px");
-            TestingUtils.testGridTemplateColumnsRows("grid", "200px 1fr", "1fr 100px", "200px 600px", "500px 100px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "auto 1fr", "auto 1fr", "0px 800px", "0px 600px");
-            TestingUtils.testGridTemplateColumnsRows("grid", "auto 1fr", "auto 1fr", "90px 710px", "10px 590px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "1fr 3fr", "2fr 1fr", "200px 600px", "400px 200px");
-            TestingUtils.testGridTemplateColumnsRows("grid", "1fr 3fr", "2fr 1fr", "200px 600px", "400px 200px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "minmax(25px, 75px) 750px", "minmax(50px, 150px) 500px", "50px 750px", "100px 500px");
-            TestingUtils.testGridTemplateColumnsRows("grid", "minmax(25px, 75px) 750px", "minmax(50px, 150px) 500px", "50px 750px", "100px 500px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "min-content 1fr calc(20px + 10%) minmax(30em, 50em)", "min-content 1fr calc(10% + 40px) minmax(3em, 5em)", "0px 200px 100px 500px", "0px 450px 100px 50px");
-            TestingUtils.testGridTemplateColumnsRows("grid", "min-content 1fr calc(20px + 10%) minmax(30em, 50em)", "min-content 1fr  calc(10% + 40px) minmax(3em, 5em)", "40px 160px 100px 500px", "20px 430px 100px 50px");
-
-            // Reset values.
-            document.getElementById("emptyGrid").style.gridTemplateColumns = "";
-            document.getElementById("emptyGrid").style.gridTemplateRows = "";
-            document.getElementById("grid").style.gridTemplateColumns = "";
-            document.getElementById("grid").style.gridTemplateRows = "";
-
-            // Wrong values.
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "foo", "bar", "none", "none");
-            TestingUtils.testGridTemplateColumnsRows("grid", "foo", "bar", "90px", "10px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "auto none", "none auto", "none", "none");
-            TestingUtils.testGridTemplateColumnsRows("grid", "auto none", "none auto", "90px", "10px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "100px, 200px", "300px, 400px", "none", "none");
-            TestingUtils.testGridTemplateColumnsRows("grid", "100px, 200px", "300px, 400px", "90px", "10px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "minmax(100px, 200px, 300px)", "minmax(100px, 200px, 300px)", "none", "none");
-            TestingUtils.testGridTemplateColumnsRows("grid", "minmax(100px, 200px, 300px)", "minmax(100px, 200px, 300px)", "90px", "10px");
-        ]]></script>
-    </body>
-</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-definition/grid-support-named-grid-lines-001.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-definition/grid-support-named-grid-lines-001.html
new file mode 100644
index 0000000..f51b924
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-definition/grid-support-named-grid-lines-001.html
@@ -0,0 +1,118 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Grid Layout Test: Support for named grid lines in 'grid-template-columns' and 'grid-template-rows' properties</title>
+<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
+<link rel="help" href="http://www.w3.org/TR/css-grid-1/#named-lines" title="5.1.1. Named Grid Lines: the '(&lt;custom-ident\&gt;*)' syntax">
+<meta name="flags" content="ahem dom">
+<meta name="assert" content="This test checks that grid lines can be explicitly named in 'grid-template-columns' and 'grid-template-rows' properties.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="support/testing-utils.js"></script>
+<style>
+  .grid {
+    display: grid;
+    width: 800px;
+    height: 600px;
+    font: 10px/1 Ahem;
+    justify-content: start;
+    align-content: start;
+  }
+</style>
+<div id="log"></div>
+
+<div id="emptyGrid" class="grid"></div>
+<div id="grid" class="grid">
+  <div id="item">GRID ITEM</div>
+</div>
+
+<script>
+  // Valid values.
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[first] auto [last]", "[first] auto [last]", "[first] 0px [last]", "[first] 0px [last]");
+  TestingUtils.testGridTemplateColumnsRows("grid", "[first] auto [last]", "[first] auto [last]", "[first] 90px [last]", "[first] 10px [last]");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[F1rst-L1_n3] auto [L4st-L1_n3]", "[F1rst-L1_n3] auto [L4st-L1_n3]", "[F1rst-L1_n3] 0px [L4st-L1_n3]", "[F1rst-L1_n3] 0px [L4st-L1_n3]");
+  TestingUtils.testGridTemplateColumnsRows("grid", "[F1rst-L1_n3] auto [L4st-L1_n3]", "[F1rst-L1_n3] auto [L4st-L1_n3]", "[F1rst-L1_n3] 90px [L4st-L1_n3]", "[F1rst-L1_n3] 10px [L4st-L1_n3]");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[] auto [ ]", "[ ] auto []", "0px", "0px");
+  TestingUtils.testGridTemplateColumnsRows("grid", "[] auto [ ]", "[ ] auto []", "90px", "10px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[first] auto", "[first] auto", "[first] 0px", "[first] 0px");
+  TestingUtils.testGridTemplateColumnsRows("grid", "[first] auto", "[first] auto", "[first] 90px", "[first] 10px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "auto [last]", "auto [last]", "0px [last]", "0px [last]");
+  TestingUtils.testGridTemplateColumnsRows("grid", "auto [last]", "auto [last]", "90px [last]", "10px [last]");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[line] auto [line]", "[line] auto [line]", "[line] 0px [line]", "[line] 0px [line]");
+  TestingUtils.testGridTemplateColumnsRows("grid", "[line] auto [line]", "[line] auto [line]", "[line] 90px [line]", "[line] 10px [line]");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[first line] auto [last line]", "[first line] auto [last line]", "[first line] 0px [last line]", "[first line] 0px [last line]");
+  TestingUtils.testGridTemplateColumnsRows("grid", "[first line] auto [last line]", "[first line] auto [last line]", "[first line] 90px [last line]", "[first line] 10px [last line]");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[a] auto [b] auto [c]", "[a] auto [b] auto [c]", "[a] 0px [b] 0px [c]", "[a] 0px [b] 0px [c]");
+  TestingUtils.testGridTemplateColumnsRows("grid", "[a] auto [b] auto [c]", "[a] auto [b] auto [c]", "[a] 90px [b] 0px [c]", "[a] 10px [b] 0px [c]");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "auto [b] auto [c]", "auto [b] auto [c]", "0px [b] 0px [c]", "0px [b] 0px [c]");
+  TestingUtils.testGridTemplateColumnsRows("grid", "auto [b] auto [c]", "auto [b] auto [c]", "90px [b] 0px [c]", "10px [b] 0px [c]");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[a] auto auto [c]", "[a] auto auto [c]", ["[a] 0px 0px [c]", "[a] repeat(2, 0px) [c]"], ["[a] 0px 0px [c]", "[a] repeat(2, 0px) [c]"]);
+  TestingUtils.testGridTemplateColumnsRows("grid", "[a] auto auto [c]", "[a] auto auto [c]", "[a] 90px 0px [c]", "[a] 10px 0px [c]");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[a] auto [b] auto", "[a] auto [b] auto", "[a] 0px [b] 0px", "[a] 0px [b] 0px");
+  TestingUtils.testGridTemplateColumnsRows("grid", "[a] auto [b] auto", "[a] auto [b] auto", "[a] 90px [b] 0px", "[a] 10px [b] 0px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[a] auto auto", "[a] auto auto", ["[a] 0px 0px", "[a] repeat(2, 0px)"], ["[a] 0px 0px", "[a] repeat(2, 0px)"]);
+  TestingUtils.testGridTemplateColumnsRows("grid", "[a] auto auto", "[a] auto auto", "[a] 90px 0px", "[a] 10px 0px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "auto [b] auto", "auto [b] auto", "0px [b] 0px", "0px [b] 0px");
+  TestingUtils.testGridTemplateColumnsRows("grid", "auto [b] auto", "auto [b] auto", "90px [b] 0px", "10px [b] 0px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "auto auto [c]", "auto auto [c]", ["0px 0px [c]", "repeat(2, 0px) [c]"], ["0px 0px [c]", "repeat(2, 0px) [c]"]);
+  TestingUtils.testGridTemplateColumnsRows("grid", "auto auto [c]", "auto auto [c]", "90px 0px [c]", "10px 0px [c]");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[a] auto [a] auto [a]", "[a] auto [a] auto [a]", ["[a] 0px [a] 0px [a]", "repeat(2, [a] 0px) [a]"], ["[a] 0px [a] 0px [a]", "repeat(2, [a] 0px) [a]"]);
+  TestingUtils.testGridTemplateColumnsRows("grid", "[a] auto [a] auto [a]", "[a] auto [a] auto [a]", "[a] 90px [a] 0px [a]", "[a] 10px [a] 0px [a]");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[a b c] auto [a b c] auto [a b c]", "[a b c] auto [a b c] auto [a b c]", ["[a b c] 0px [a b c] 0px [a b c]", "repeat(2, [a b c] 0px) [a b c]"], "[a b c] 0px [a b c] 0px [a b c]");
+  TestingUtils.testGridTemplateColumnsRows("grid", "[a b c] auto [a b c] auto [a b c]", "[a b c] auto [a b c] auto [a b c]", "[a b c] 90px [a b c] 0px [a b c]", "[a b c] 10px [a b c] 0px [a b c]");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[a] 40em [b] 100px [c] 15% [d]", "[z] 50px [y] 20em [x] 10% [w]", "[a] 400px [b] 100px [c] 120px [d]", "[z] 50px [y] 200px [x] 60px [w]");
+  TestingUtils.testGridTemplateColumnsRows("grid", "[a] 40em [b] 100px [c] 15% [d]", "[z] 50px [y] 20em [x] 10% [w]", "[a] 400px [b] 100px [c] 120px [d]", "[z] 50px [y] 200px [x] 60px [w]");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[a] 200px [b] 1fr [c]", "[z] 1fr [y] 100px [x]", "[a] 200px [b] 600px [c]", "[z] 500px [y] 100px [x]");
+  TestingUtils.testGridTemplateColumnsRows("grid", "[a] 200px [b] 1fr [c]", "[z] 1fr [y] 100px [x]", "[a] 200px [b] 600px [c]", "[z] 500px [y] 100px [x]");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[a] min-content [b] 1fr [c] calc(20px + 10%) [d] minmax(30em, 50em) [e]", "[z] min-content [y] 1fr [x] calc(10% + 40px) [w] minmax(3em, 5em) [v]", "[a] 0px [b] 200px [c] 100px [d] 500px [e]", "[z] 0px [y] 450px [x] 100px [w] 50px [v]");
+  TestingUtils.testGridTemplateColumnsRows("grid", "[a] min-content [b] 1fr [c] calc(20px + 10%) [d] minmax(30em, 50em) [e]", "[z] min-content [y] 1fr [x] calc(10% + 40px) [w] minmax(3em, 5em) [v]", "[a] 40px [b] 160px [c] 100px [d] 500px [e]", "[z] 20px [y] 430px [x] 100px [w] 50px [v]");
+
+  // Reset values.
+  document.getElementById("emptyGrid").style.gridTemplateColumns = "";
+  document.getElementById("emptyGrid").style.gridTemplateRows = "";
+  document.getElementById("grid").style.gridTemplateColumns = "";
+  document.getElementById("grid").style.gridTemplateRows = "";
+
+  // Wrong values.
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[a]", "[a]", "none", "none");
+  TestingUtils.testGridTemplateColumnsRows("grid", "[a]", "[a]", "90px", "10px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[a b]", "[a b]", "none", "none");
+  TestingUtils.testGridTemplateColumnsRows("grid", "[a b]", "[a b]", "90px", "10px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[a] none [b]", "[a] none [b]", "none", "none");
+  TestingUtils.testGridTemplateColumnsRows("grid", "[a] none [b]", "[a] none [b]", "90px", "10px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[a] [b]", "[a] [b]", "none", "none");
+  TestingUtils.testGridTemplateColumnsRows("grid", "[a] [b]", "[a] [b]", "90px", "10px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "a auto b", "a auto b", "none", "none");
+  TestingUtils.testGridTemplateColumnsRows("grid", "a auto b", "a auto b", "90px", "10px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "(a) auto (b)", "(a) auto (b)", "none", "none");
+  TestingUtils.testGridTemplateColumnsRows("grid", "(a) auto (b)", "(a) auto (b)", "90px", "10px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "'a' auto 'b'", "'a' auto 'b'", "none", "none");
+  TestingUtils.testGridTemplateColumnsRows("grid", "'a' auto 'b'", "'a' auto 'b'", "90px", "10px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "\"a\" auto \"b\"", "\"a\" auto \"b\"", "none", "none");
+  TestingUtils.testGridTemplateColumnsRows("grid", "\"a\" auto \"b\"", "\"a\" auto \"b\"", "90px", "10px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[a, b] auto [a, b]", "[a, b] auto [a, b]", "none", "none");
+  TestingUtils.testGridTemplateColumnsRows("grid", "[a, b] auto [a, b]", "[a, b] auto [a, b]", "90px", "10px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[a] [b] auto [c d] [e]", "[a] [b] auto [c d] [e]", "none", "none");
+  TestingUtils.testGridTemplateColumnsRows("grid", "[a] [b] auto [c d] [e]", "[a] [b] auto [c d] [e]", "90px", "10px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[a [b]] auto [c]", "[a [b]] auto [c]", "none", "none");
+  TestingUtils.testGridTemplateColumnsRows("grid", "[a [b]] auto [c]", "[a [b]] auto [c]", "90px", "10px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[a] auto [[b]]", "[a] auto [[b]]", "none", "none");
+  TestingUtils.testGridTemplateColumnsRows("grid", "[a] auto [[b]]", "[a] auto [[b]]", "90px", "10px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[a auto [b]", "[a auto [b]", "none", "none");
+  TestingUtils.testGridTemplateColumnsRows("grid", "[a auto [b]", "[a auto [b]", "90px", "10px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[a 100px] auto [b]", "[a 100px] auto [b]", "none", "none");
+  TestingUtils.testGridTemplateColumnsRows("grid", "[a 100px] auto [b]", "[a 100px] auto [b]", "90px", "10px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[a 50%] auto [b]", "[a 50%] auto [b]", "none", "none");
+  TestingUtils.testGridTemplateColumnsRows("grid", "[a 50%] auto [b]", "[a 50%] auto [b]", "90px", "10px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[5] auto [10]", "[5] auto [10]", "none", "none");
+  TestingUtils.testGridTemplateColumnsRows("grid", "[5] auto [10]", "[5] auto [10]", "90px", "10px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[a.] auto [b*]", "[a.] auto [b*]", "none", "none");
+  TestingUtils.testGridTemplateColumnsRows("grid", "[a.] auto [b*]", "[a.] auto [b*]", "90px", "10px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[#a] auto [$b]", "[#a] auto [$b]", "none", "none");
+  TestingUtils.testGridTemplateColumnsRows("grid", "[#a] auto [$b]", "[#a] auto [$b]", "90px", "10px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[initial] auto", "[initial] auto", "none", "none");
+  TestingUtils.testGridTemplateColumnsRows("grid", "[initial] auto", "[initial] auto", "90px", "10px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[inherit] auto", "[inherit] auto", "none", "none");
+  TestingUtils.testGridTemplateColumnsRows("grid", "[inherit] auto", "[inherit] auto", "90px", "10px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[default] auto", "[default] auto", "none", "none");
+  TestingUtils.testGridTemplateColumnsRows("grid", "[default] auto", "[default] auto", "90px", "10px");
+</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-definition/grid-support-named-grid-lines-001.xht b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-definition/grid-support-named-grid-lines-001.xht
deleted file mode 100644
index fe99827..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-definition/grid-support-named-grid-lines-001.xht
+++ /dev/null
@@ -1,123 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-    <head>
-        <title>CSS Grid Layout Test: Support for named grid lines in 'grid-template-columns' and 'grid-template-rows' properties</title>
-        <link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com" />
-        <link rel="help" href="http://www.w3.org/TR/css-grid-1/#named-lines" title="5.1.1. Named Grid Lines: the '(&lt;custom-ident\&gt;*)' syntax" />
-        <meta name="flags" content="ahem dom" />
-        <meta name="assert" content="This test checks that grid lines can be explicitly named in 'grid-template-columns' and 'grid-template-rows' properties." />
-        <script src="/resources/testharness.js" type="text/javascript"></script>
-        <script src="/resources/testharnessreport.js" type="text/javascript"></script>
-        <script src="support/testing-utils.js" type="text/javascript"></script>
-        <style type="text/css"><![CDATA[
-            .grid {
-                display: grid;
-                width: 800px;
-                height: 600px;
-                font: 10px/1 Ahem;
-                justify-content: start;
-                align-content: start;
-            }
-        ]]></style>
-    </head>
-    <body>
-        <div id="log"></div>
-
-        <div id="emptyGrid" class="grid"></div>
-        <div id="grid" class="grid">
-            <div id="item">GRID ITEM</div>
-        </div>
-
-        <script type="text/javascript"><![CDATA[
-            // Valid values.
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[first] auto [last]", "[first] auto [last]", "[first] 0px [last]", "[first] 0px [last]");
-            TestingUtils.testGridTemplateColumnsRows("grid", "[first] auto [last]", "[first] auto [last]", "[first] 90px [last]", "[first] 10px [last]");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[F1rst-L1_n3] auto [L4st-L1_n3]", "[F1rst-L1_n3] auto [L4st-L1_n3]", "[F1rst-L1_n3] 0px [L4st-L1_n3]", "[F1rst-L1_n3] 0px [L4st-L1_n3]");
-            TestingUtils.testGridTemplateColumnsRows("grid", "[F1rst-L1_n3] auto [L4st-L1_n3]", "[F1rst-L1_n3] auto [L4st-L1_n3]", "[F1rst-L1_n3] 90px [L4st-L1_n3]", "[F1rst-L1_n3] 10px [L4st-L1_n3]");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[] auto [ ]", "[ ] auto []", "0px", "0px");
-            TestingUtils.testGridTemplateColumnsRows("grid", "[] auto [ ]", "[ ] auto []", "90px", "10px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[first] auto", "[first] auto", "[first] 0px", "[first] 0px");
-            TestingUtils.testGridTemplateColumnsRows("grid", "[first] auto", "[first] auto", "[first] 90px", "[first] 10px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "auto [last]", "auto [last]", "0px [last]", "0px [last]");
-            TestingUtils.testGridTemplateColumnsRows("grid", "auto [last]", "auto [last]", "90px [last]", "10px [last]");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[line] auto [line]", "[line] auto [line]", "[line] 0px [line]", "[line] 0px [line]");
-            TestingUtils.testGridTemplateColumnsRows("grid", "[line] auto [line]", "[line] auto [line]", "[line] 90px [line]", "[line] 10px [line]");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[first line] auto [last line]", "[first line] auto [last line]", "[first line] 0px [last line]", "[first line] 0px [last line]");
-            TestingUtils.testGridTemplateColumnsRows("grid", "[first line] auto [last line]", "[first line] auto [last line]", "[first line] 90px [last line]", "[first line] 10px [last line]");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[a] auto [b] auto [c]", "[a] auto [b] auto [c]", "[a] 0px [b] 0px [c]", "[a] 0px [b] 0px [c]");
-            TestingUtils.testGridTemplateColumnsRows("grid", "[a] auto [b] auto [c]", "[a] auto [b] auto [c]", "[a] 90px [b] 0px [c]", "[a] 10px [b] 0px [c]");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "auto [b] auto [c]", "auto [b] auto [c]", "0px [b] 0px [c]", "0px [b] 0px [c]");
-            TestingUtils.testGridTemplateColumnsRows("grid", "auto [b] auto [c]", "auto [b] auto [c]", "90px [b] 0px [c]", "10px [b] 0px [c]");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[a] auto auto [c]", "[a] auto auto [c]", ["[a] 0px 0px [c]", "[a] repeat(2, 0px) [c]"], ["[a] 0px 0px [c]", "[a] repeat(2, 0px) [c]"]);
-            TestingUtils.testGridTemplateColumnsRows("grid", "[a] auto auto [c]", "[a] auto auto [c]", "[a] 90px 0px [c]", "[a] 10px 0px [c]");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[a] auto [b] auto", "[a] auto [b] auto", "[a] 0px [b] 0px", "[a] 0px [b] 0px");
-            TestingUtils.testGridTemplateColumnsRows("grid", "[a] auto [b] auto", "[a] auto [b] auto", "[a] 90px [b] 0px", "[a] 10px [b] 0px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[a] auto auto", "[a] auto auto", ["[a] 0px 0px", "[a] repeat(2, 0px)"], ["[a] 0px 0px", "[a] repeat(2, 0px)"]);
-            TestingUtils.testGridTemplateColumnsRows("grid", "[a] auto auto", "[a] auto auto", "[a] 90px 0px", "[a] 10px 0px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "auto [b] auto", "auto [b] auto", "0px [b] 0px", "0px [b] 0px");
-            TestingUtils.testGridTemplateColumnsRows("grid", "auto [b] auto", "auto [b] auto", "90px [b] 0px", "10px [b] 0px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "auto auto [c]", "auto auto [c]", ["0px 0px [c]", "repeat(2, 0px) [c]"], ["0px 0px [c]", "repeat(2, 0px) [c]"]);
-            TestingUtils.testGridTemplateColumnsRows("grid", "auto auto [c]", "auto auto [c]", "90px 0px [c]", "10px 0px [c]");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[a] auto [a] auto [a]", "[a] auto [a] auto [a]", ["[a] 0px [a] 0px [a]", "repeat(2, [a] 0px) [a]"], ["[a] 0px [a] 0px [a]", "repeat(2, [a] 0px) [a]"]);
-            TestingUtils.testGridTemplateColumnsRows("grid", "[a] auto [a] auto [a]", "[a] auto [a] auto [a]", "[a] 90px [a] 0px [a]", "[a] 10px [a] 0px [a]");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[a b c] auto [a b c] auto [a b c]", "[a b c] auto [a b c] auto [a b c]", ["[a b c] 0px [a b c] 0px [a b c]", "repeat(2, [a b c] 0px) [a b c]"], "[a b c] 0px [a b c] 0px [a b c]");
-            TestingUtils.testGridTemplateColumnsRows("grid", "[a b c] auto [a b c] auto [a b c]", "[a b c] auto [a b c] auto [a b c]", "[a b c] 90px [a b c] 0px [a b c]", "[a b c] 10px [a b c] 0px [a b c]");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[a] 40em [b] 100px [c] 15% [d]", "[z] 50px [y] 20em [x] 10% [w]", "[a] 400px [b] 100px [c] 120px [d]", "[z] 50px [y] 200px [x] 60px [w]");
-            TestingUtils.testGridTemplateColumnsRows("grid", "[a] 40em [b] 100px [c] 15% [d]", "[z] 50px [y] 20em [x] 10% [w]", "[a] 400px [b] 100px [c] 120px [d]", "[z] 50px [y] 200px [x] 60px [w]");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[a] 200px [b] 1fr [c]", "[z] 1fr [y] 100px [x]", "[a] 200px [b] 600px [c]", "[z] 500px [y] 100px [x]");
-            TestingUtils.testGridTemplateColumnsRows("grid", "[a] 200px [b] 1fr [c]", "[z] 1fr [y] 100px [x]", "[a] 200px [b] 600px [c]", "[z] 500px [y] 100px [x]");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[a] min-content [b] 1fr [c] calc(20px + 10%) [d] minmax(30em, 50em) [e]", "[z] min-content [y] 1fr [x] calc(10% + 40px) [w] minmax(3em, 5em) [v]", "[a] 0px [b] 200px [c] 100px [d] 500px [e]", "[z] 0px [y] 450px [x] 100px [w] 50px [v]");
-            TestingUtils.testGridTemplateColumnsRows("grid", "[a] min-content [b] 1fr [c] calc(20px + 10%) [d] minmax(30em, 50em) [e]", "[z] min-content [y] 1fr [x] calc(10% + 40px) [w] minmax(3em, 5em) [v]", "[a] 40px [b] 160px [c] 100px [d] 500px [e]", "[z] 20px [y] 430px [x] 100px [w] 50px [v]");
-
-            // Reset values.
-            document.getElementById("emptyGrid").style.gridTemplateColumns = "";
-            document.getElementById("emptyGrid").style.gridTemplateRows = "";
-            document.getElementById("grid").style.gridTemplateColumns = "";
-            document.getElementById("grid").style.gridTemplateRows = "";
-
-            // Wrong values.
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[a]", "[a]", "none", "none");
-            TestingUtils.testGridTemplateColumnsRows("grid", "[a]", "[a]", "90px", "10px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[a b]", "[a b]", "none", "none");
-            TestingUtils.testGridTemplateColumnsRows("grid", "[a b]", "[a b]", "90px", "10px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[a] none [b]", "[a] none [b]", "none", "none");
-            TestingUtils.testGridTemplateColumnsRows("grid", "[a] none [b]", "[a] none [b]", "90px", "10px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[a] [b]", "[a] [b]", "none", "none");
-            TestingUtils.testGridTemplateColumnsRows("grid", "[a] [b]", "[a] [b]", "90px", "10px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "a auto b", "a auto b", "none", "none");
-            TestingUtils.testGridTemplateColumnsRows("grid", "a auto b", "a auto b", "90px", "10px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "(a) auto (b)", "(a) auto (b)", "none", "none");
-            TestingUtils.testGridTemplateColumnsRows("grid", "(a) auto (b)", "(a) auto (b)", "90px", "10px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "'a' auto 'b'", "'a' auto 'b'", "none", "none");
-            TestingUtils.testGridTemplateColumnsRows("grid", "'a' auto 'b'", "'a' auto 'b'", "90px", "10px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "\"a\" auto \"b\"", "\"a\" auto \"b\"", "none", "none");
-            TestingUtils.testGridTemplateColumnsRows("grid", "\"a\" auto \"b\"", "\"a\" auto \"b\"", "90px", "10px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[a, b] auto [a, b]", "[a, b] auto [a, b]", "none", "none");
-            TestingUtils.testGridTemplateColumnsRows("grid", "[a, b] auto [a, b]", "[a, b] auto [a, b]", "90px", "10px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[a] [b] auto [c d] [e]", "[a] [b] auto [c d] [e]", "none", "none");
-            TestingUtils.testGridTemplateColumnsRows("grid", "[a] [b] auto [c d] [e]", "[a] [b] auto [c d] [e]", "90px", "10px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[a [b]] auto [c]", "[a [b]] auto [c]", "none", "none");
-            TestingUtils.testGridTemplateColumnsRows("grid", "[a [b]] auto [c]", "[a [b]] auto [c]", "90px", "10px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[a] auto [[b]]", "[a] auto [[b]]", "none", "none");
-            TestingUtils.testGridTemplateColumnsRows("grid", "[a] auto [[b]]", "[a] auto [[b]]", "90px", "10px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[a auto [b]", "[a auto [b]", "none", "none");
-            TestingUtils.testGridTemplateColumnsRows("grid", "[a auto [b]", "[a auto [b]", "90px", "10px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[a 100px] auto [b]", "[a 100px] auto [b]", "none", "none");
-            TestingUtils.testGridTemplateColumnsRows("grid", "[a 100px] auto [b]", "[a 100px] auto [b]", "90px", "10px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[a 50%] auto [b]", "[a 50%] auto [b]", "none", "none");
-            TestingUtils.testGridTemplateColumnsRows("grid", "[a 50%] auto [b]", "[a 50%] auto [b]", "90px", "10px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[5] auto [10]", "[5] auto [10]", "none", "none");
-            TestingUtils.testGridTemplateColumnsRows("grid", "[5] auto [10]", "[5] auto [10]", "90px", "10px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[a.] auto [b*]", "[a.] auto [b*]", "none", "none");
-            TestingUtils.testGridTemplateColumnsRows("grid", "[a.] auto [b*]", "[a.] auto [b*]", "90px", "10px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[#a] auto [$b]", "[#a] auto [$b]", "none", "none");
-            TestingUtils.testGridTemplateColumnsRows("grid", "[#a] auto [$b]", "[#a] auto [$b]", "90px", "10px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[initial] auto", "[initial] auto", "none", "none");
-            TestingUtils.testGridTemplateColumnsRows("grid", "[initial] auto", "[initial] auto", "90px", "10px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[inherit] auto", "[inherit] auto", "none", "none");
-            TestingUtils.testGridTemplateColumnsRows("grid", "[inherit] auto", "[inherit] auto", "90px", "10px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[default] auto", "[default] auto", "none", "none");
-            TestingUtils.testGridTemplateColumnsRows("grid", "[default] auto", "[default] auto", "90px", "10px");
-        ]]></script>
-    </body>
-</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-definition/grid-support-repeat-001.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-definition/grid-support-repeat-001.html
new file mode 100644
index 0000000..28415ab
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-definition/grid-support-repeat-001.html
@@ -0,0 +1,78 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Grid Layout Test: Support 'repeat()' notation for 'grid-template-columns' and 'grid-template-rows' properties</title>
+<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
+<link rel="help" href="http://www.w3.org/TR/css-grid-1/#repeat-notation" title="5.1.2 Repeating Rows and Columns: the 'repeat()' notation">
+<meta name="flags" content="ahem dom">
+<meta name="assert" content="This test checks that 'grid-template-columns' and 'grid-template-rows' properties support 'repeat()' notation, so you can use it to represents a repeated fragment of the track list.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="support/testing-utils.js"></script>
+<style>
+  .grid {
+    display: grid;
+    width: 800px;
+    height: 600px;
+    font: 10px/1 Ahem;
+    justify-content: start;
+    align-content: start;
+  }
+</style>
+<div id="log"></div>
+
+<div id="emptyGrid" class="grid"></div>
+<div id="grid" class="grid">
+  <div id="item">GRID ITEM</div>
+</div>
+
+<script>
+  // Valid values.
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "repeat(1, auto)", "repeat(1, auto)", "0px", "0px");
+  TestingUtils.testGridTemplateColumnsRows("grid", "repeat(1, auto)", "repeat(1, auto)", "90px", "10px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "repeat(2, auto)", "repeat(2, auto)", ["0px 0px", "repeat(2, 0px)"], ["0px 0px", "repeat(2, 0px)"]);
+  TestingUtils.testGridTemplateColumnsRows("grid", "repeat(2, auto)", "repeat(2, auto)", "90px 0px", "10px 0px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "repeat(2, minmax(50px, calc(50px + 50%))", "repeat(2, minmax(50px, calc(50px + 50%))", ["400px 400px", "repeat(2, 400px)"], ["300px 300px", "repeat(2, 300px)"]);
+  TestingUtils.testGridTemplateColumnsRows("grid", "repeat(2, minmax(50px, calc(50px + 50%))", "repeat(2, minmax(50px, calc(50px + 50%))", ["400px 400px", "repeat(2, 400px)"], ["300px 300px", "repeat(2, 300px)"]);
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "repeat(5, 10%)", "repeat(5, 10%)", ["80px 80px 80px 80px 80px", "repeat(5, 80px)"], ["60px 60px 60px 60px 60px", "repeat(5, 60px)"]);
+  TestingUtils.testGridTemplateColumnsRows("grid", "repeat(5, 10%)", "repeat(5, 10%)", ["80px 80px 80px 80px 80px", "repeat(5, 80px)"], ["60px 60px 60px 60px 60px", "repeat(5, 60px)"]);
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "max-content repeat(2, 25%) 1fr", "100px repeat(2, 25%) 1fr", ["0px 200px 200px 400px", "0px repeat(2, 200px) 400px"], ["100px 150px 150px 200px", "100px repeat(2, 150px) 200px"]);
+  TestingUtils.testGridTemplateColumnsRows("grid", "max-content repeat(2, 25%) 1fr", "max-content repeat(2, 25%) 1fr", ["90px 200px 200px 310px", "90px repeat(2, 200px) 310px"], ["10px 150px 150px 290px", "10px repeat(2, 150px) 290px"]);
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "repeat(2, min-content 50px)", "repeat(2, min-content 50px)", ["0px 50px 0px 50px", "repeat(2, 0px 50px)"], ["0px 50px 0px 50px", "repeat(2, 0px 50px)"]);
+  TestingUtils.testGridTemplateColumnsRows("grid", "repeat(2, min-content 50px)", "repeat(2, min-content 50px)", "40px 50px 0px 50px", "20px 50px 0px 50px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "repeat(2, [a] minmax(50px, 100px) [b] 25em [c])", "repeat(2, [a] minmax(50px, 100px) [b] 25em [c])", "[a] 100px [b] 250px [c a] 100px [b] 250px [c]", "[a] 50px [b] 250px [c a] 50px [b] 250px [c]");
+  TestingUtils.testGridTemplateColumnsRows("grid", "repeat(2, [a] minmax(50px, 100px) [b] 25em [c])", "repeat(2, [a] minmax(50px, 100px) [b] 25em [c])", "[a] 100px [b] 250px [c a] 100px [b] 250px [c]", "[a] 50px [b] 250px [c a] 50px [b] 250px [c]");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[a] repeat(2, auto [b] 100px) [c]", "[a] repeat(2, auto [b] 100px) [c]", ["[a] 0px [b] 100px 0px [b] 100px [c]", "[a] repeat(2, 0px [b] 100px) [c]"], ["[a] 0px [b] 100px 0px [b] 100px [c]", "[a] repeat(2, 0px [b] 100px) [c]"]);
+  TestingUtils.testGridTemplateColumnsRows("grid", "[a] repeat(2, auto [b] 100px) [c]", "[a] repeat(2, auto [b] 100px) [c]", "[a] 90px [b] 100px 0px [b] 100px [c]", "[a] 10px [b] 100px 0px [b] 100px [c]");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[a] auto repeat(2, [b] 100px) [c]", "[a] auto repeat(2, [b] 100px) [c]", ["[a] 0px [b] 100px [b] 100px [c]", "[a] 0px repeat(2, [b] 100px) [c]"], ["[a] 0px [b] 100px [b] 100px [c]", "[a] 0px repeat(2, [b] 100px) [c]"]);
+  TestingUtils.testGridTemplateColumnsRows("grid", "[a] auto repeat(2, [b] 100px) [c]", "[a] auto repeat(2, [b] 100px) [c]", ["[a] 90px [b] 100px [b] 100px [c]", "[a] 90px repeat(2, [b] 100px) [c]"], ["[a] 10px [b] 100px [b] 100px [c]", "[a] 10px repeat(2, [b] 100px) [c]"]);
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[a] repeat(2, auto [b]) 100px [c]", "[a] repeat(2, auto [b]) 100px [c]", "[a] 0px [b] 0px [b] 100px [c]", "[a] 0px [b] 0px [b] 100px [c]");
+  TestingUtils.testGridTemplateColumnsRows("grid", "[a] repeat(2, auto [b]) 100px [c]", "[a] repeat(2, auto [b]) 100px [c]", "[a] 90px [b] 0px [b] 100px [c]", "[a] 10px [b] 0px [b] 100px [c]");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[a] repeat(2, [b] 100px)", "[a] repeat(2, [b] 100px)", ["[a b] 100px [b] 100px", "[a] repeat(2, [b] 100px)"], ["[a b] 100px [b] 100px", "[a] repeat(2, [b] 100px)"]);
+  TestingUtils.testGridTemplateColumnsRows("grid", "[a] repeat(2, [b] 100px)", "[a] repeat(2, [b] 100px)", ["[a b] 100px [b] 100px", "[a] repeat(2, [b] 100px)"], ["[a b] 100px [b] 100px", "[a] repeat(2, [b] 100px)"]);
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[a] repeat(2, [b] auto [c]) [d]", "[a] repeat(2, [b] auto [c]) [d]", ["[a b] 0px [c b] 0px [c d]", "[a] repeat(2, [b] 0px [c]) [d]"], ["[a b] 0px [c b] 0px [c d]", "[a] repeat(2, [b] 0px [c]) [d]"]);
+  TestingUtils.testGridTemplateColumnsRows("grid", "[a] repeat(2, [b] auto [c]) [d]", "[a] repeat(2, [b] auto [c]) [d]", "[a b] 90px [c b] 0px [c d]", "[a b] 10px [c b] 0px [c d]");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[a] min-content repeat(2, [b] 1fr [c] calc(20px + 10%)) [d] minmax(30em, 50em) [e]", "[z] min-content repeat(2, [y] 1fr [x] calc(10% + 40px)) [w] minmax(3em, 5em) [v]", ["[a] 0px [b] 50px [c] 100px [b] 50px [c] 100px [d] 500px [e]", "[a] 0px repeat(2, [b] 50px [c] 100px) [d] 500px [e]"], ["[z] 0px [y] 175px [x] 100px [y] 175px [x] 100px [w] 50px [v]", "[z] 0px repeat(2, [y] 175px [x] 100px) [w] 50px [v]"]);
+  TestingUtils.testGridTemplateColumnsRows("grid", "[a] min-content repeat(2, [b] 1fr [c] calc(20px + 10%)) [d] minmax(30em, 50em) [e]", "[z] min-content repeat(2, [y] 1fr [x] calc(10% + 40px)) [w] minmax(3em, 5em) [v]", ["[a] 40px [b] 30px [c] 100px [b] 30px [c] 100px [d] 500px [e]", "[a] 40px repeat(2, [b] 30px [c] 100px) [d] 500px [e]"], ["[z] 20px [y] 165px [x] 100px [y] 165px [x] 100px [w] 50px [v]", "[z] 20px repeat(2, [y] 165px [x] 100px) [w] 50px [v]"]);
+
+  // Reset values.
+  document.getElementById("emptyGrid").style.gridTemplateColumns = "";
+  document.getElementById("emptyGrid").style.gridTemplateRows = "";
+  document.getElementById("grid").style.gridTemplateColumns = "";
+  document.getElementById("grid").style.gridTemplateRows = "";
+
+  // Wrong values.
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "repeat(-1, auto)", "repeat(-1, auto)", "none", "none");
+  TestingUtils.testGridTemplateColumnsRows("grid", "repeat(-1, auto)", "repeat(-1, auto)", "90px", "10px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "repeat(auto, 2)", "repeat(auto, 2)", "none", "none");
+  TestingUtils.testGridTemplateColumnsRows("grid", "repeat(auto, 2)", "repeat(auto, 2)", "90px", "10px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "repeat 2, auto", "repeat 2, auto", "none", "none");
+  TestingUtils.testGridTemplateColumnsRows("grid", "repeat 2, auto", "repeat 2, auto", "90px", "10px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "repeat(2 auto)", "repeat(2 auto)", "none", "none");
+  TestingUtils.testGridTemplateColumnsRows("grid", "repeat(2 auto)", "repeat(2 auto)", "90px", "10px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "100px (repeat 2, auto)", "(repeat 2, auto)", "none", "none");
+  TestingUtils.testGridTemplateColumnsRows("grid", "100px (repeat 2, auto)", "(repeat 2, auto)", "90px", "10px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "repeat(2, 50px repeat(2, 100px))", "repeat(2, 50px repeat(2, 100px))", "none", "none");
+  TestingUtils.testGridTemplateColumnsRows("grid", "repeat(2, 50px repeat(2, 100px))", "repeat(2, 50px repeat(2, 100px))", "90px", "10px");
+  TestingUtils.testGridTemplateColumnsRows("emptyGrid", "100px repeat(2, [a])", "100px repeat(2, [a])", "none", "none");
+  TestingUtils.testGridTemplateColumnsRows("grid", "100px repeat(2, [a])", "100px repeat(2, [a])", "90px", "10px");
+</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-definition/grid-support-repeat-001.xht b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-definition/grid-support-repeat-001.xht
deleted file mode 100644
index 1ab2fa4..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-definition/grid-support-repeat-001.xht
+++ /dev/null
@@ -1,83 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-    <head>
-        <title>CSS Grid Layout Test: Support 'repeat()' notation for 'grid-template-columns' and 'grid-template-rows' properties</title>
-        <link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com" />
-        <link rel="help" href="http://www.w3.org/TR/css-grid-1/#repeat-notation" title="5.1.2 Repeating Rows and Columns: the 'repeat()' notation" />
-        <meta name="flags" content="ahem dom" />
-        <meta name="assert" content="This test checks that 'grid-template-columns' and 'grid-template-rows' properties support 'repeat()' notation, so you can use it to represents a repeated fragment of the track list." />
-        <script src="/resources/testharness.js" type="text/javascript"></script>
-        <script src="/resources/testharnessreport.js" type="text/javascript"></script>
-        <script src="support/testing-utils.js" type="text/javascript"></script>
-        <style type="text/css"><![CDATA[
-            .grid {
-                display: grid;
-                width: 800px;
-                height: 600px;
-                font: 10px/1 Ahem;
-                justify-content: start;
-                align-content: start;
-            }
-        ]]></style>
-    </head>
-    <body>
-        <div id="log"></div>
-
-        <div id="emptyGrid" class="grid"></div>
-        <div id="grid" class="grid">
-            <div id="item">GRID ITEM</div>
-        </div>
-
-        <script type="text/javascript"><![CDATA[
-            // Valid values.
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "repeat(1, auto)", "repeat(1, auto)", "0px", "0px");
-            TestingUtils.testGridTemplateColumnsRows("grid", "repeat(1, auto)", "repeat(1, auto)", "90px", "10px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "repeat(2, auto)", "repeat(2, auto)", ["0px 0px", "repeat(2, 0px)"], ["0px 0px", "repeat(2, 0px)"]);
-            TestingUtils.testGridTemplateColumnsRows("grid", "repeat(2, auto)", "repeat(2, auto)", "90px 0px", "10px 0px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "repeat(2, minmax(50px, calc(50px + 50%))", "repeat(2, minmax(50px, calc(50px + 50%))", ["400px 400px", "repeat(2, 400px)"], ["300px 300px", "repeat(2, 300px)"]);
-            TestingUtils.testGridTemplateColumnsRows("grid", "repeat(2, minmax(50px, calc(50px + 50%))", "repeat(2, minmax(50px, calc(50px + 50%))", ["400px 400px", "repeat(2, 400px)"], ["300px 300px", "repeat(2, 300px)"]);
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "repeat(5, 10%)", "repeat(5, 10%)", ["80px 80px 80px 80px 80px", "repeat(5, 80px)"], ["60px 60px 60px 60px 60px", "repeat(5, 60px)"]);
-            TestingUtils.testGridTemplateColumnsRows("grid", "repeat(5, 10%)", "repeat(5, 10%)", ["80px 80px 80px 80px 80px", "repeat(5, 80px)"], ["60px 60px 60px 60px 60px", "repeat(5, 60px)"]);
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "max-content repeat(2, 25%) 1fr", "100px repeat(2, 25%) 1fr", ["0px 200px 200px 400px", "0px repeat(2, 200px) 400px"], ["100px 150px 150px 200px", "100px repeat(2, 150px) 200px"]);
-            TestingUtils.testGridTemplateColumnsRows("grid", "max-content repeat(2, 25%) 1fr", "max-content repeat(2, 25%) 1fr", ["90px 200px 200px 310px", "90px repeat(2, 200px) 310px"], ["10px 150px 150px 290px", "10px repeat(2, 150px) 290px"]);
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "repeat(2, min-content 50px)", "repeat(2, min-content 50px)", ["0px 50px 0px 50px", "repeat(2, 0px 50px)"], ["0px 50px 0px 50px", "repeat(2, 0px 50px)"]);
-            TestingUtils.testGridTemplateColumnsRows("grid", "repeat(2, min-content 50px)", "repeat(2, min-content 50px)", "40px 50px 0px 50px", "20px 50px 0px 50px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "repeat(2, [a] minmax(50px, 100px) [b] 25em [c])", "repeat(2, [a] minmax(50px, 100px) [b] 25em [c])", "[a] 100px [b] 250px [c a] 100px [b] 250px [c]", "[a] 50px [b] 250px [c a] 50px [b] 250px [c]");
-            TestingUtils.testGridTemplateColumnsRows("grid", "repeat(2, [a] minmax(50px, 100px) [b] 25em [c])", "repeat(2, [a] minmax(50px, 100px) [b] 25em [c])", "[a] 100px [b] 250px [c a] 100px [b] 250px [c]", "[a] 50px [b] 250px [c a] 50px [b] 250px [c]");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[a] repeat(2, auto [b] 100px) [c]", "[a] repeat(2, auto [b] 100px) [c]", ["[a] 0px [b] 100px 0px [b] 100px [c]", "[a] repeat(2, 0px [b] 100px) [c]"], ["[a] 0px [b] 100px 0px [b] 100px [c]", "[a] repeat(2, 0px [b] 100px) [c]"]);
-            TestingUtils.testGridTemplateColumnsRows("grid", "[a] repeat(2, auto [b] 100px) [c]", "[a] repeat(2, auto [b] 100px) [c]", "[a] 90px [b] 100px 0px [b] 100px [c]", "[a] 10px [b] 100px 0px [b] 100px [c]");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[a] auto repeat(2, [b] 100px) [c]", "[a] auto repeat(2, [b] 100px) [c]", ["[a] 0px [b] 100px [b] 100px [c]", "[a] 0px repeat(2, [b] 100px) [c]"], ["[a] 0px [b] 100px [b] 100px [c]", "[a] 0px repeat(2, [b] 100px) [c]"]);
-            TestingUtils.testGridTemplateColumnsRows("grid", "[a] auto repeat(2, [b] 100px) [c]", "[a] auto repeat(2, [b] 100px) [c]", ["[a] 90px [b] 100px [b] 100px [c]", "[a] 90px repeat(2, [b] 100px) [c]"], ["[a] 10px [b] 100px [b] 100px [c]", "[a] 10px repeat(2, [b] 100px) [c]"]);
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[a] repeat(2, auto [b]) 100px [c]", "[a] repeat(2, auto [b]) 100px [c]", "[a] 0px [b] 0px [b] 100px [c]", "[a] 0px [b] 0px [b] 100px [c]");
-            TestingUtils.testGridTemplateColumnsRows("grid", "[a] repeat(2, auto [b]) 100px [c]", "[a] repeat(2, auto [b]) 100px [c]", "[a] 90px [b] 0px [b] 100px [c]", "[a] 10px [b] 0px [b] 100px [c]");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[a] repeat(2, [b] 100px)", "[a] repeat(2, [b] 100px)", ["[a b] 100px [b] 100px", "[a] repeat(2, [b] 100px)"], ["[a b] 100px [b] 100px", "[a] repeat(2, [b] 100px)"]);
-            TestingUtils.testGridTemplateColumnsRows("grid", "[a] repeat(2, [b] 100px)", "[a] repeat(2, [b] 100px)", ["[a b] 100px [b] 100px", "[a] repeat(2, [b] 100px)"], ["[a b] 100px [b] 100px", "[a] repeat(2, [b] 100px)"]);
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[a] repeat(2, [b] auto [c]) [d]", "[a] repeat(2, [b] auto [c]) [d]", ["[a b] 0px [c b] 0px [c d]", "[a] repeat(2, [b] 0px [c]) [d]"], ["[a b] 0px [c b] 0px [c d]", "[a] repeat(2, [b] 0px [c]) [d]"]);
-            TestingUtils.testGridTemplateColumnsRows("grid", "[a] repeat(2, [b] auto [c]) [d]", "[a] repeat(2, [b] auto [c]) [d]", "[a b] 90px [c b] 0px [c d]", "[a b] 10px [c b] 0px [c d]");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "[a] min-content repeat(2, [b] 1fr [c] calc(20px + 10%)) [d] minmax(30em, 50em) [e]", "[z] min-content repeat(2, [y] 1fr [x] calc(10% + 40px)) [w] minmax(3em, 5em) [v]", ["[a] 0px [b] 50px [c] 100px [b] 50px [c] 100px [d] 500px [e]", "[a] 0px repeat(2, [b] 50px [c] 100px) [d] 500px [e]"], ["[z] 0px [y] 175px [x] 100px [y] 175px [x] 100px [w] 50px [v]", "[z] 0px repeat(2, [y] 175px [x] 100px) [w] 50px [v]"]);
-            TestingUtils.testGridTemplateColumnsRows("grid", "[a] min-content repeat(2, [b] 1fr [c] calc(20px + 10%)) [d] minmax(30em, 50em) [e]", "[z] min-content repeat(2, [y] 1fr [x] calc(10% + 40px)) [w] minmax(3em, 5em) [v]", ["[a] 40px [b] 30px [c] 100px [b] 30px [c] 100px [d] 500px [e]", "[a] 40px repeat(2, [b] 30px [c] 100px) [d] 500px [e]"], ["[z] 20px [y] 165px [x] 100px [y] 165px [x] 100px [w] 50px [v]", "[z] 20px repeat(2, [y] 165px [x] 100px) [w] 50px [v]"]);
-
-            // Reset values.
-            document.getElementById("emptyGrid").style.gridTemplateColumns = "";
-            document.getElementById("emptyGrid").style.gridTemplateRows = "";
-            document.getElementById("grid").style.gridTemplateColumns = "";
-            document.getElementById("grid").style.gridTemplateRows = "";
-
-            // Wrong values.
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "repeat(-1, auto)", "repeat(-1, auto)", "none", "none");
-            TestingUtils.testGridTemplateColumnsRows("grid", "repeat(-1, auto)", "repeat(-1, auto)", "90px", "10px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "repeat(auto, 2)", "repeat(auto, 2)", "none", "none");
-            TestingUtils.testGridTemplateColumnsRows("grid", "repeat(auto, 2)", "repeat(auto, 2)", "90px", "10px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "repeat 2, auto", "repeat 2, auto", "none", "none");
-            TestingUtils.testGridTemplateColumnsRows("grid", "repeat 2, auto", "repeat 2, auto", "90px", "10px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "repeat(2 auto)", "repeat(2 auto)", "none", "none");
-            TestingUtils.testGridTemplateColumnsRows("grid", "repeat(2 auto)", "repeat(2 auto)", "90px", "10px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "100px (repeat 2, auto)", "(repeat 2, auto)", "none", "none");
-            TestingUtils.testGridTemplateColumnsRows("grid", "100px (repeat 2, auto)", "(repeat 2, auto)", "90px", "10px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "repeat(2, 50px repeat(2, 100px))", "repeat(2, 50px repeat(2, 100px))", "none", "none");
-            TestingUtils.testGridTemplateColumnsRows("grid", "repeat(2, 50px repeat(2, 100px))", "repeat(2, 50px repeat(2, 100px))", "90px", "10px");
-            TestingUtils.testGridTemplateColumnsRows("emptyGrid", "100px repeat(2, [a])", "100px repeat(2, [a])", "none", "none");
-            TestingUtils.testGridTemplateColumnsRows("grid", "100px repeat(2, [a])", "100px repeat(2, [a])", "90px", "10px");
-        ]]></script>
-    </body>
-</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-definition/grid-template-columns-rows-resolved-values-001.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-definition/grid-template-columns-rows-resolved-values-001.html
new file mode 100644
index 0000000..89bdce4
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-definition/grid-template-columns-rows-resolved-values-001.html
@@ -0,0 +1,102 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Grid Layout Test: 'grid-template-columns' and 'grid-template-rows' properties resolved values for implicit tracks</title>
+<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
+<link rel="help" href="http://www.w3.org/TR/css-grid-1/#resolved-track-list" title="5.1.5. Resolved Values">
+<meta name="flags" content="ahem dom">
+<meta name="assert" content="This test checks that resolved values for 'grid-template-columns' and 'grid-template-rows' list tracks implicitly created.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="support/testing-utils.js"></script>
+<style>
+  .grid {
+    display: grid;
+    width: 800px;
+    height: 600px;
+    font: 10px/1 Ahem;
+    justify-content: start;
+    align-content: start;
+  }
+
+  .fifthColumn {
+    grid-column: 5;
+  }
+
+  .fourthRow {
+    grid-row: 4;
+  }
+
+  .gridAutoFlowColumn {
+    grid-auto-flow: column;
+  }
+</style>
+<div id="log"></div>
+
+<div id="grid" class="grid">
+  <div>FIRST ITEM</div>
+  <div>SECOND ITEM</div>
+  <div>THIRD<br />ITEM</div>
+</div>
+
+<div id="gridItemsPositions" class="grid">
+  <div class="fifthColumn">FIRST ITEM</div>
+  <div class="fourthRow">SECOND ITEM</div>
+  <div>THIRD<br />ITEM</div>
+</div>
+
+<div id="gridAutoFlowColumn" class="grid gridAutoFlowColumn">
+  <div>FIRST ITEM</div>
+  <div>SECOND ITEM</div>
+  <div>THIRD<br />ITEM</div>
+</div>
+
+<div id="gridAutoFlowColumnItemsPositions" class="grid gridAutoFlowColumn">
+  <div class="fifthColumn">FIRST ITEM</div>
+  <div class="fourthRow">SECOND ITEM</div>
+  <div>THIRD<br />ITEM</div>
+</div>
+
+<script>
+  // Valid values.
+  TestingUtils.testGridTemplateColumnsRows("grid", "", "", "110px", ["10px 10px 20px", "repeat(2, 10px) 20px"]);
+  TestingUtils.testGridTemplateColumnsRows("grid", "auto auto", "", "100px 110px", "10px 20px");
+  TestingUtils.testGridTemplateColumnsRows("grid", "60px", "", "60px", ["20px 20px 20px", "repeat(3, 20px)"]);
+  TestingUtils.testGridTemplateColumnsRows("grid", "100px 60px", "", "100px 60px", ["20px 20px", "repeat(2, 20px)"]);
+  TestingUtils.testGridTemplateColumnsRows("grid", "", "50px", "110px", "50px 10px 20px");
+  TestingUtils.testGridTemplateColumnsRows("grid", "", "50px 30px", "110px", "50px 30px 20px");
+  TestingUtils.testGridTemplateColumnsRows("grid", "60px", "50px", "60px", ["50px 20px 20px", "50px repeat(2, 20px)"]);
+  TestingUtils.testGridTemplateColumnsRows("grid", "60px", "50px 30px", "60px", "50px 30px 20px");
+  TestingUtils.testGridTemplateColumnsRows("grid", "100px 60px", "50px", "100px 60px", "50px 20px");
+  TestingUtils.testGridTemplateColumnsRows("grid", "100px 60px", "50px 30px", "100px 60px", "50px 30px");
+
+  TestingUtils.testGridTemplateColumnsRows("gridItemsPositions", "", "", ["110px 0px 0px 0px 100px", "110px repeat(3, 0px) 100px"], "10px 20px 0px 10px");
+  TestingUtils.testGridTemplateColumnsRows("gridItemsPositions", "60px", "", ["60px 0px 0px 0px 100px", "60px repeat(3, 0px) 100px"], "10px 20px 0px 20px");
+  TestingUtils.testGridTemplateColumnsRows("gridItemsPositions", "60px 50px", "", ["60px 50px 0px 0px 100px", "60px 50px repeat(2, 0px) 100px"], "10px 20px 0px 20px");
+  TestingUtils.testGridTemplateColumnsRows("gridItemsPositions", "", "60px", ["110px 0px 0px 0px 100px", "110px repeat(3, 0px) 100px"], "60px 20px 0px 10px");
+  TestingUtils.testGridTemplateColumnsRows("gridItemsPositions", "", "60px 50px", ["110px 0px 0px 0px 100px", "110px repeat(3, 0px) 100px"], "60px 50px 0px 10px");
+  TestingUtils.testGridTemplateColumnsRows("gridItemsPositions", "60px", "60px", ["60px 0px 0px 0px 100px", "60px repeat(3, 0px) 100px"], "60px 20px 0px 20px");
+  TestingUtils.testGridTemplateColumnsRows("gridItemsPositions", "60px", "60px 50px", ["60px 0px 0px 0px 100px", "60px repeat(3, 0px) 100px"], "60px 50px 0px 20px");
+  TestingUtils.testGridTemplateColumnsRows("gridItemsPositions", "60px 50px", "60px", ["60px 50px 0px 0px 100px", "60px 50px repeat(2, 0px) 100px"], "60px 20px 0px 20px");
+  TestingUtils.testGridTemplateColumnsRows("gridItemsPositions", "60px 50px", "60px 50px", ["60px 50px 0px 0px 100px", "60px 50px repeat(2, 0px) 100px"], "60px 50px 0px 20px");
+
+  TestingUtils.testGridTemplateColumnsRows("gridAutoFlowColumn", "", "", "100px 110px 50px", "20px");
+  TestingUtils.testGridTemplateColumnsRows("gridAutoFlowColumn", "", "auto auto", "110px 50px", "20px 10px");
+  TestingUtils.testGridTemplateColumnsRows("gridAutoFlowColumn", "60px", "", "60px 110px 50px", "20px");
+  TestingUtils.testGridTemplateColumnsRows("gridAutoFlowColumn", "100px 60px", "", "100px 60px 50px", "20px");
+  TestingUtils.testGridTemplateColumnsRows("gridAutoFlowColumn", "", "50px", "100px 110px 50px", "50px");
+  TestingUtils.testGridTemplateColumnsRows("gridAutoFlowColumn", "", "50px 30px", "110px 50px", "50px 30px");
+  TestingUtils.testGridTemplateColumnsRows("gridAutoFlowColumn", "60px", "50px", "60px 110px 50px", "50px");
+  TestingUtils.testGridTemplateColumnsRows("gridAutoFlowColumn", "60px", "50px 30px", "60px 50px", "50px 30px");
+  TestingUtils.testGridTemplateColumnsRows("gridAutoFlowColumn", "100px 60px", "50px", "100px 60px 50px", "50px");
+  TestingUtils.testGridTemplateColumnsRows("gridAutoFlowColumn", "100px 60px", "50px 30px", "100px 60px", "50px 30px");
+
+  TestingUtils.testGridTemplateColumnsRows("gridAutoFlowColumnItemsPositions", "", "", ["110px 50px 0px 0px 100px", "110px 50px repeat(2, 0px) 100px"], ["20px 0px 0px 10px", "20px repeat(2, 0px) 10px"]);
+  TestingUtils.testGridTemplateColumnsRows("gridAutoFlowColumnItemsPositions", "60px", "", ["60px 50px 0px 0px 100px", "60px 50px repeat(2, 0px) 100px"], ["20px 0px 0px 20px", "20px repeat(2, 0px) 20px"]);
+  TestingUtils.testGridTemplateColumnsRows("gridAutoFlowColumnItemsPositions", "60px 70px", "", ["60px 70px 0px 0px 100px", "60px 70px repeat(2, 0px) 100px"], ["20px 0px 0px 20px", "20px repeat(2, 0px) 20px"]);
+  TestingUtils.testGridTemplateColumnsRows("gridAutoFlowColumnItemsPositions", "", "60px", ["110px 50px 0px 0px 100px", "110px 50px repeat(2, 0px) 100px"], ["60px 0px 0px 10px", "60px repeat(2, 0px) 10px"]);
+  TestingUtils.testGridTemplateColumnsRows("gridAutoFlowColumnItemsPositions", "", "60px 70px", ["110px 50px 0px 0px 100px", "110px 50px repeat(2, 0px) 100px"], "60px 70px 0px 10px");
+  TestingUtils.testGridTemplateColumnsRows("gridAutoFlowColumnItemsPositions", "60px", "60px", ["60px 50px 0px 0px 100px", "60px 50px repeat(2, 0px) 100px"], ["60px 0px 0px 20px", "60px repeat(2, 0px) 20px"]);
+  TestingUtils.testGridTemplateColumnsRows("gridAutoFlowColumnItemsPositions", "60px", "60px 70px", ["60px 50px 0px 0px 100px", "60px 50px repeat(2, 0px) 100px"], "60px 70px 0px 20px");
+  TestingUtils.testGridTemplateColumnsRows("gridAutoFlowColumnItemsPositions", "60px 70px", "60px", ["60px 70px 0px 0px 100px", "60px 70px repeat(2, 0px) 100px"], ["60px 0px 0px 20px", "60px repeat(2, 0px) 20px"]);
+  TestingUtils.testGridTemplateColumnsRows("gridAutoFlowColumnItemsPositions", "60px 70px", "60px 70px", ["60px 70px 0px 0px 100px", "60px 70px repeat(2, 0px) 100px"], "60px 70px 0px 20px");
+</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-definition/grid-template-columns-rows-resolved-values-001.xht b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-definition/grid-template-columns-rows-resolved-values-001.xht
deleted file mode 100644
index 176e93ab..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-definition/grid-template-columns-rows-resolved-values-001.xht
+++ /dev/null
@@ -1,107 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-    <head>
-        <title>CSS Grid Layout Test: 'grid-template-columns' and 'grid-template-rows' properties resolved values for implicit tracks</title>
-        <link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com" />
-        <link rel="help" href="http://www.w3.org/TR/css-grid-1/#resolved-track-list" title="5.1.5. Resolved Values" />
-        <meta name="flags" content="ahem dom" />
-        <meta name="assert" content="This test checks that resolved values for 'grid-template-columns' and 'grid-template-rows' list tracks implicitly created." />
-        <script src="/resources/testharness.js" type="text/javascript"></script>
-        <script src="/resources/testharnessreport.js" type="text/javascript"></script>
-        <script src="support/testing-utils.js" type="text/javascript"></script>
-        <style type="text/css"><![CDATA[
-            .grid {
-                display: grid;
-                width: 800px;
-                height: 600px;
-                font: 10px/1 Ahem;
-                justify-content: start;
-                align-content: start;
-            }
-
-            .fifthColumn {
-                grid-column: 5;
-            }
-
-            .fourthRow {
-                grid-row: 4;
-            }
-
-            .gridAutoFlowColumn {
-                grid-auto-flow: column;
-            }
-        ]]></style>
-    </head>
-    <body>
-        <div id="log"></div>
-
-        <div id="grid" class="grid">
-            <div>FIRST ITEM</div>
-            <div>SECOND ITEM</div>
-            <div>THIRD<br />ITEM</div>
-        </div>
-
-        <div id="gridItemsPositions" class="grid">
-            <div class="fifthColumn">FIRST ITEM</div>
-            <div class="fourthRow">SECOND ITEM</div>
-            <div>THIRD<br />ITEM</div>
-        </div>
-
-        <div id="gridAutoFlowColumn" class="grid gridAutoFlowColumn">
-            <div>FIRST ITEM</div>
-            <div>SECOND ITEM</div>
-            <div>THIRD<br />ITEM</div>
-        </div>
-
-        <div id="gridAutoFlowColumnItemsPositions" class="grid gridAutoFlowColumn">
-            <div class="fifthColumn">FIRST ITEM</div>
-            <div class="fourthRow">SECOND ITEM</div>
-            <div>THIRD<br />ITEM</div>
-        </div>
-
-        <script type="text/javascript"><![CDATA[
-            // Valid values.
-            TestingUtils.testGridTemplateColumnsRows("grid", "", "", "110px", ["10px 10px 20px", "repeat(2, 10px) 20px"]);
-            TestingUtils.testGridTemplateColumnsRows("grid", "auto auto", "", "100px 110px", "10px 20px");
-            TestingUtils.testGridTemplateColumnsRows("grid", "60px", "", "60px", ["20px 20px 20px", "repeat(3, 20px)"]);
-            TestingUtils.testGridTemplateColumnsRows("grid", "100px 60px", "", "100px 60px", ["20px 20px", "repeat(2, 20px)"]);
-            TestingUtils.testGridTemplateColumnsRows("grid", "", "50px", "110px", "50px 10px 20px");
-            TestingUtils.testGridTemplateColumnsRows("grid", "", "50px 30px", "110px", "50px 30px 20px");
-            TestingUtils.testGridTemplateColumnsRows("grid", "60px", "50px", "60px", ["50px 20px 20px", "50px repeat(2, 20px)"]);
-            TestingUtils.testGridTemplateColumnsRows("grid", "60px", "50px 30px", "60px", "50px 30px 20px");
-            TestingUtils.testGridTemplateColumnsRows("grid", "100px 60px", "50px", "100px 60px", "50px 20px");
-            TestingUtils.testGridTemplateColumnsRows("grid", "100px 60px", "50px 30px", "100px 60px", "50px 30px");
-
-            TestingUtils.testGridTemplateColumnsRows("gridItemsPositions", "", "", ["110px 0px 0px 0px 100px", "110px repeat(3, 0px) 100px"], "10px 20px 0px 10px");
-            TestingUtils.testGridTemplateColumnsRows("gridItemsPositions", "60px", "", ["60px 0px 0px 0px 100px", "60px repeat(3, 0px) 100px"], "10px 20px 0px 20px");
-            TestingUtils.testGridTemplateColumnsRows("gridItemsPositions", "60px 50px", "", ["60px 50px 0px 0px 100px", "60px 50px repeat(2, 0px) 100px"], "10px 20px 0px 20px");
-            TestingUtils.testGridTemplateColumnsRows("gridItemsPositions", "", "60px", ["110px 0px 0px 0px 100px", "110px repeat(3, 0px) 100px"], "60px 20px 0px 10px");
-            TestingUtils.testGridTemplateColumnsRows("gridItemsPositions", "", "60px 50px", ["110px 0px 0px 0px 100px", "110px repeat(3, 0px) 100px"], "60px 50px 0px 10px");
-            TestingUtils.testGridTemplateColumnsRows("gridItemsPositions", "60px", "60px", ["60px 0px 0px 0px 100px", "60px repeat(3, 0px) 100px"], "60px 20px 0px 20px");
-            TestingUtils.testGridTemplateColumnsRows("gridItemsPositions", "60px", "60px 50px", ["60px 0px 0px 0px 100px", "60px repeat(3, 0px) 100px"], "60px 50px 0px 20px");
-            TestingUtils.testGridTemplateColumnsRows("gridItemsPositions", "60px 50px", "60px", ["60px 50px 0px 0px 100px", "60px 50px repeat(2, 0px) 100px"], "60px 20px 0px 20px");
-            TestingUtils.testGridTemplateColumnsRows("gridItemsPositions", "60px 50px", "60px 50px", ["60px 50px 0px 0px 100px", "60px 50px repeat(2, 0px) 100px"], "60px 50px 0px 20px");
-
-            TestingUtils.testGridTemplateColumnsRows("gridAutoFlowColumn", "", "", "100px 110px 50px", "20px");
-            TestingUtils.testGridTemplateColumnsRows("gridAutoFlowColumn", "", "auto auto", "110px 50px", "20px 10px");
-            TestingUtils.testGridTemplateColumnsRows("gridAutoFlowColumn", "60px", "", "60px 110px 50px", "20px");
-            TestingUtils.testGridTemplateColumnsRows("gridAutoFlowColumn", "100px 60px", "", "100px 60px 50px", "20px");
-            TestingUtils.testGridTemplateColumnsRows("gridAutoFlowColumn", "", "50px", "100px 110px 50px", "50px");
-            TestingUtils.testGridTemplateColumnsRows("gridAutoFlowColumn", "", "50px 30px", "110px 50px", "50px 30px");
-            TestingUtils.testGridTemplateColumnsRows("gridAutoFlowColumn", "60px", "50px", "60px 110px 50px", "50px");
-            TestingUtils.testGridTemplateColumnsRows("gridAutoFlowColumn", "60px", "50px 30px", "60px 50px", "50px 30px");
-            TestingUtils.testGridTemplateColumnsRows("gridAutoFlowColumn", "100px 60px", "50px", "100px 60px 50px", "50px");
-            TestingUtils.testGridTemplateColumnsRows("gridAutoFlowColumn", "100px 60px", "50px 30px", "100px 60px", "50px 30px");
-
-            TestingUtils.testGridTemplateColumnsRows("gridAutoFlowColumnItemsPositions", "", "", ["110px 50px 0px 0px 100px", "110px 50px repeat(2, 0px) 100px"], ["20px 0px 0px 10px", "20px repeat(2, 0px) 10px"]);
-            TestingUtils.testGridTemplateColumnsRows("gridAutoFlowColumnItemsPositions", "60px", "", ["60px 50px 0px 0px 100px", "60px 50px repeat(2, 0px) 100px"], ["20px 0px 0px 20px", "20px repeat(2, 0px) 20px"]);
-            TestingUtils.testGridTemplateColumnsRows("gridAutoFlowColumnItemsPositions", "60px 70px", "", ["60px 70px 0px 0px 100px", "60px 70px repeat(2, 0px) 100px"], ["20px 0px 0px 20px", "20px repeat(2, 0px) 20px"]);
-            TestingUtils.testGridTemplateColumnsRows("gridAutoFlowColumnItemsPositions", "", "60px", ["110px 50px 0px 0px 100px", "110px 50px repeat(2, 0px) 100px"], ["60px 0px 0px 10px", "60px repeat(2, 0px) 10px"]);
-            TestingUtils.testGridTemplateColumnsRows("gridAutoFlowColumnItemsPositions", "", "60px 70px", ["110px 50px 0px 0px 100px", "110px 50px repeat(2, 0px) 100px"], "60px 70px 0px 10px");
-            TestingUtils.testGridTemplateColumnsRows("gridAutoFlowColumnItemsPositions", "60px", "60px", ["60px 50px 0px 0px 100px", "60px 50px repeat(2, 0px) 100px"], ["60px 0px 0px 20px", "60px repeat(2, 0px) 20px"]);
-            TestingUtils.testGridTemplateColumnsRows("gridAutoFlowColumnItemsPositions", "60px", "60px 70px", ["60px 50px 0px 0px 100px", "60px 50px repeat(2, 0px) 100px"], "60px 70px 0px 20px");
-            TestingUtils.testGridTemplateColumnsRows("gridAutoFlowColumnItemsPositions", "60px 70px", "60px", ["60px 70px 0px 0px 100px", "60px 70px repeat(2, 0px) 100px"], ["60px 0px 0px 20px", "60px repeat(2, 0px) 20px"]);
-            TestingUtils.testGridTemplateColumnsRows("gridAutoFlowColumnItemsPositions", "60px 70px", "60px 70px", ["60px 70px 0px 0px 100px", "60px 70px repeat(2, 0px) 100px"], "60px 70px 0px 20px");
-        ]]></script>
-    </body>
-</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-items-001.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-items-001.html
new file mode 100644
index 0000000..4be8783f
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-items-001.html
@@ -0,0 +1,38 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Grid Layout Test: Regular and anonymous grid items within an inline grid</title>
+<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
+<link rel="help" href="http://www.w3.org/TR/css-grid-1/#grid-items" title="4 Grid Items">
+<link rel="match" href="../../reference/ref-filled-green-100px-square.xht">
+<meta name="flags" content="ahem">
+<meta name="assert" content="Checks that inline grid container children become grid items, and text that is directly contained inside the inline grid is wrapped in an anonymous grid item.">
+<style>
+  #reference-overlapped-red {
+    position: absolute;
+    background-color: red;
+    width: 100px;
+    height: 100px;
+    z-index: -1;
+  }
+
+  .test-inline-grid-overlapping-green {
+    display: inline-grid;
+    font: 25px/1 Ahem;
+    color: green;
+  }
+</style>
+<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
+
+<div id="reference-overlapped-red"></div>
+<div class="test-inline-grid-overlapping-green">
+  <div>it</div>
+  em
+  <div>it</div>
+  em
+</div><div class="test-inline-grid-overlapping-green">
+  it
+  <span>em</span>
+  it
+  <span>em</span>
+</div>
+
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-items-001.xht b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-items-001.xht
deleted file mode 100644
index c6f165f7..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-items-001.xht
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-    <head>
-        <title>CSS Grid Layout Test: Regular and anonymous grid items within an inline grid</title>
-        <link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com" />
-        <link rel="help" href="http://www.w3.org/TR/css-grid-1/#grid-items" title="4 Grid Items" />
-        <link rel="match" href="../../reference/ref-filled-green-100px-square.xht" />
-        <meta name="flags" content="ahem" />
-        <meta name="assert" content="Checks that inline grid container children become grid items, and text that is directly contained inside the inline grid is wrapped in an anonymous grid item." />
-        <style type="text/css"><![CDATA[
-            #reference-overlapped-red {
-                position: absolute;
-                background-color: red;
-                width: 100px;
-                height: 100px;
-                z-index: -1;
-            }
-
-            .test-inline-grid-overlapping-green {
-                display: inline-grid;
-                font: 25px/1 Ahem;
-                color: green;
-            }
-        ]]></style>
-    </head>
-    <body>
-        <p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
-
-        <div id="reference-overlapped-red"></div>
-        <div class="test-inline-grid-overlapping-green">
-            <div>it</div>
-            em
-            <div>it</div>
-            em
-        </div><div class="test-inline-grid-overlapping-green">
-            it
-            <span>em</span>
-            it
-            <span>em</span>
-        </div>
-
-    </body>
-</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-items-002.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-items-002.html
new file mode 100644
index 0000000..0971433
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-items-002.html
@@ -0,0 +1,50 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Grid Layout Test: Children of grid items do not create new items within an inline grid</title>
+<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
+<link rel="help" href="http://www.w3.org/TR/css-grid-1/#grid-items" title="4 Grid Items">
+<link rel="match" href="../../reference/ref-filled-green-100px-square.xht">
+<meta name="flags" content="ahem">
+<meta name="assert" content="Checks that the grid items do not split around blocks creating extra items within an inline grid.">
+<style>
+  #reference-overlapped-red {
+    position: absolute;
+    background-color: red;
+    width: 100px;
+    height: 100px;
+    z-index: -1;
+  }
+
+  .test-inline-grid-overlapping-green {
+    display: inline-grid;
+    font: 25px/1 Ahem;
+    color: green;
+  }
+</style>
+<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
+
+<div id="reference-overlapped-red"></div>
+<div class="test-inline-grid-overlapping-green">
+  <div>
+    <div>it</div>
+    em
+  </div>
+  <div>
+    it
+    <div>em</div>
+  </div>
+</div><div class="test-inline-grid-overlapping-green">
+  <span>
+    <span>i</span>t
+  </span>
+  <span>
+    e<span>m</span>
+  </span>
+  <span>
+    <span>i</span>t
+  </span>
+  <span>
+    e<span>m</span>
+  </span>
+</div>
+
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-items-002.xht b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-items-002.xht
deleted file mode 100644
index 4403406..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-items-002.xht
+++ /dev/null
@@ -1,55 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-    <head>
-        <title>CSS Grid Layout Test: Children of grid items do not create new items within an inline grid</title>
-        <link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com" />
-        <link rel="help" href="http://www.w3.org/TR/css-grid-1/#grid-items" title="4 Grid Items" />
-        <link rel="match" href="../../reference/ref-filled-green-100px-square.xht" />
-        <meta name="flags" content="ahem" />
-        <meta name="assert" content="Checks that the grid items do not split around blocks creating extra items within an inline grid." />
-        <style type="text/css"><![CDATA[
-            #reference-overlapped-red {
-                position: absolute;
-                background-color: red;
-                width: 100px;
-                height: 100px;
-                z-index: -1;
-            }
-
-            .test-inline-grid-overlapping-green {
-                display: inline-grid;
-                font: 25px/1 Ahem;
-                color: green;
-            }
-        ]]></style>
-    </head>
-    <body>
-        <p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
-
-        <div id="reference-overlapped-red"></div>
-        <div class="test-inline-grid-overlapping-green">
-            <div>
-                <div>it</div>
-                em
-            </div>
-            <div>
-                it
-                <div>em</div>
-            </div>
-        </div><div class="test-inline-grid-overlapping-green">
-            <span>
-                <span>i</span>t
-            </span>
-            <span>
-                e<span>m</span>
-            </span>
-            <span>
-                <span>i</span>t
-            </span>
-            <span>
-                e<span>m</span>
-            </span>
-        </div>
-
-    </body>
-</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-items-003.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-items-003.html
new file mode 100644
index 0000000..ddbec62
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-items-003.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Grid Layout Test: Grid items with 'display:none' are not rendered within an inline grid</title>
+<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
+<link rel="help" href="http://www.w3.org/TR/css-grid-1/#grid-items" title="4 Grid Items">
+<link rel="match" href="../../reference/ref-filled-green-100px-square.xht">
+<meta name="flags" content="ahem">
+<style>
+  #reference-overlapped-red {
+    position: absolute;
+    background-color: red;
+    width: 100px;
+    height: 100px;
+    z-index: -1;
+  }
+
+  .test-inline-grid-overlapping-green {
+    display: inline-grid;
+    font: 50px/1 Ahem;
+    color: green;
+  }
+
+  .display-none-red {
+    display: none;
+    color: red;
+  }
+</style>
+<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
+
+<div id="reference-overlapped-red"></div>
+<div class="test-inline-grid-overlapping-green two-columns">
+  <span>it</span>
+  <span class="display-none-red">hidden</span>
+  <span>em</span>
+</div>
+
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-items-003.xht b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-items-003.xht
deleted file mode 100644
index 87eea10..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-items-003.xht
+++ /dev/null
@@ -1,41 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-    <head>
-        <title>CSS Grid Layout Test: Grid items with 'display:none' are not rendered within an inline grid</title>
-        <link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com" />
-        <link rel="help" href="http://www.w3.org/TR/css-grid-1/#grid-items" title="4 Grid Items" />
-        <link rel="match" href="../../reference/ref-filled-green-100px-square.xht" />
-        <meta name="flags" content="ahem" />
-        <style type="text/css"><![CDATA[
-            #reference-overlapped-red {
-                position: absolute;
-                background-color: red;
-                width: 100px;
-                height: 100px;
-                z-index: -1;
-            }
-
-            .test-inline-grid-overlapping-green {
-                display: inline-grid;
-                font: 50px/1 Ahem;
-                color: green;
-            }
-
-            .display-none-red {
-                display: none;
-                color: red;
-            }
-        ]]></style>
-    </head>
-    <body>
-        <p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
-
-        <div id="reference-overlapped-red"></div>
-        <div class="test-inline-grid-overlapping-green two-columns">
-            <span>it</span>
-            <span class="display-none-red">hidden</span>
-            <span>em</span>
-        </div>
-
-    </body>
-</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-items-inline-blocks-001.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-items-inline-blocks-001.html
new file mode 100644
index 0000000..5eef1ff
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-items-inline-blocks-001.html
@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Grid Layout Test: Paint order of grid items within an inline grid is the same as inline blocks</title>
+<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
+<link rel="help" href="http://www.w3.org/TR/css-grid-1/#z-order" title="9.5 Z-axis Ordering: the z-index property">
+<link rel="help" href="http://www.w3.org/TR/CSS2/zindex.html#painting-order" title="E.2 Painting order">
+<link rel="match" href="../../reference/ref-filled-green-100px-square.xht">
+<style>
+  #inline-grid {
+    display: inline-grid;
+  }
+
+  #reference-overlapped-red {
+    color: red;
+    font: 100px/1 Ahem;
+    grid-row: 1;
+    grid-column: 1;
+  }
+
+  #test-overlapping-green {
+    background-color: green;
+    width: 100px;
+    height: 100px;
+    grid-row: 1;
+    grid-column: 1;
+  }
+</style>
+<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
+
+<div id="inline-grid">
+  <div id="reference-overlapped-red">R</div>
+  <div id="test-overlapping-green"></div>
+</div>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-items-inline-blocks-001.xht b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-items-inline-blocks-001.xht
deleted file mode 100644
index c65115eb..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-items-inline-blocks-001.xht
+++ /dev/null
@@ -1,38 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-    <head>
-        <title>CSS Grid Layout Test: Paint order of grid items within an inline grid is the same as inline blocks</title>
-        <link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com" />
-        <link rel="help" href="http://www.w3.org/TR/css-grid-1/#z-order" title="9.5 Z-axis Ordering: the z-index property" />
-        <link rel="help" href="http://www.w3.org/TR/CSS2/zindex.html#painting-order" title="E.2 Painting order" />
-        <link rel="match" href="../../reference/ref-filled-green-100px-square.xht" />
-        <style type="text/css"><![CDATA[
-            #inline-grid {
-                display: inline-grid;
-            }
-
-            #reference-overlapped-red {
-                color: red;
-                font: 100px/1 Ahem;
-                grid-row: 1;
-                grid-column: 1;
-            }
-
-            #test-overlapping-green {
-                background-color: green;
-                width: 100px;
-                height: 100px;
-                grid-row: 1;
-                grid-column: 1;
-            }
-        ]]></style>
-    </head>
-    <body>
-        <p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
-
-        <div id="inline-grid">
-            <div id="reference-overlapped-red">R</div>
-            <div id="test-overlapping-green"></div>
-        </div>
-    </body>
-</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-order-property-auto-placement-001.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-order-property-auto-placement-001.html
new file mode 100644
index 0000000..86ec8c2
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-order-property-auto-placement-001.html
@@ -0,0 +1,52 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Grid Layout Test: 'order' property affects grid items auto-placement position within an inline grid</title>
+<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
+<link rel="help" href="http://www.w3.org/TR/css-grid-1/#order-property" title="4.2 Reordered Grid Items: the order property">
+<link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#order-property" title="5.4. Display Order: the order property">
+<link rel="match" href="../reference/grid-2x2-blue-yellow-lime-magenta.html">
+<meta name="flags" content="ahem">
+<style>
+  #reference-overlapped-red {
+    position: absolute;
+    background-color: red;
+    width: 100px;
+    height: 100px;
+    z-index: -1;
+  }
+
+  #inline-grid {
+    display: inline-grid;
+    font: 50px/1 Ahem;
+    grid-template-columns: auto auto;
+  }
+
+  #blue {
+    color: blue;
+  }
+
+  #yellow {
+    color: yellow;
+    order: 1;
+  }
+
+  #lime {
+    color: lime;
+    order: 5;
+  }
+
+  #magenta {
+    color: magenta;
+    order: 10;
+  }
+</style>
+<p>Test passes if there are four filled squares with the same size and <strong>no red</strong>.</p>
+<p>Blue and yellow squares in the first line; lime and magenta squares in the second line (exactly in this order).</p>
+
+<div id="reference-overlapped-red"></div>
+<div id="inline-grid">
+  <div id="magenta">M</div>
+  <div id="lime">L</div>
+  <div id="yellow">Y</div>
+  <div id="blue">B</div>
+</div>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-order-property-auto-placement-001.xht b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-order-property-auto-placement-001.xht
deleted file mode 100644
index a6b4844..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-order-property-auto-placement-001.xht
+++ /dev/null
@@ -1,57 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-    <head>
-        <title>CSS Grid Layout Test: 'order' property affects grid items auto-placement position within an inline grid</title>
-        <link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com" />
-        <link rel="help" href="http://www.w3.org/TR/css-grid-1/#order-property" title="4.2 Reordered Grid Items: the order property" />
-        <link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#order-property" title="5.4. Display Order: the order property" />
-        <link rel="match" href="../reference/grid-2x2-blue-yellow-lime-magenta.xht" />
-        <meta name="flags" content="ahem" />
-        <style type="text/css"><![CDATA[
-            #reference-overlapped-red {
-                position: absolute;
-                background-color: red;
-                width: 100px;
-                height: 100px;
-                z-index: -1;
-            }
-
-            #inline-grid {
-                display: inline-grid;
-                font: 50px/1 Ahem;
-                grid-template-columns: auto auto;
-            }
-
-            #blue {
-                color: blue;
-            }
-
-            #yellow {
-                color: yellow;
-                order: 1;
-            }
-
-            #lime {
-                color: lime;
-                order: 5;
-            }
-
-            #magenta {
-                color: magenta;
-                order: 10;
-            }
-        ]]></style>
-    </head>
-    <body>
-        <p>Test passes if there are four filled squares with the same size and <strong>no red</strong>.</p>
-        <p>Blue and yellow squares in the first line; lime and magenta squares in the second line (exactly in this order).</p>
-
-        <div id="reference-overlapped-red"></div>
-        <div id="inline-grid">
-            <div id="magenta">M</div>
-            <div id="lime">L</div>
-            <div id="yellow">Y</div>
-            <div id="blue">B</div>
-        </div>
-    </body>
-</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-order-property-auto-placement-002.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-order-property-auto-placement-002.html
new file mode 100644
index 0000000..cd5fb6a
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-order-property-auto-placement-002.html
@@ -0,0 +1,52 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Grid Layout Test: 'order' property affects grid items auto-placement position within an inline grid</title>
+<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
+<link rel="help" href="http://www.w3.org/TR/css-grid-1/#order-property" title="4.2 Reordered Grid Items: the order property">
+<link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#order-property" title="5.4. Display Order: the order property">
+<link rel="match" href="../reference/grid-2x2-blue-yellow-lime-magenta.html">
+<meta name="flags" content="ahem">
+<style>
+  #reference-overlapped-red {
+    position: absolute;
+    background-color: red;
+    width: 100px;
+    height: 100px;
+    z-index: -1;
+  }
+
+  #inline-grid {
+    display: inline-grid;
+    font: 50px/1 Ahem;
+    grid-template-columns: auto auto;
+  }
+
+  #blue {
+    color: blue;
+    order: -10;
+  }
+
+  #yellow {
+    color: yellow;
+    order: -5;
+  }
+
+  #lime {
+    color: lime;
+    order: -1;
+  }
+
+  #magenta {
+    color: magenta;
+  }
+</style>
+<p>Test passes if there are four filled squares with the same size and <strong>no red</strong>.</p>
+<p>Blue and yellow squares in the first line; lime and magenta squares in the second line (exactly in this order).</p>
+
+<div id="reference-overlapped-red"></div>
+<div id="inline-grid">
+  <div id="magenta">M</div>
+  <div id="lime">L</div>
+  <div id="yellow">Y</div>
+  <div id="blue">B</div>
+</div>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-order-property-auto-placement-002.xht b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-order-property-auto-placement-002.xht
deleted file mode 100644
index eaec647f..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-order-property-auto-placement-002.xht
+++ /dev/null
@@ -1,57 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-    <head>
-        <title>CSS Grid Layout Test: 'order' property affects grid items auto-placement position within an inline grid</title>
-        <link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com" />
-        <link rel="help" href="http://www.w3.org/TR/css-grid-1/#order-property" title="4.2 Reordered Grid Items: the order property" />
-        <link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#order-property" title="5.4. Display Order: the order property" />
-        <link rel="match" href="../reference/grid-2x2-blue-yellow-lime-magenta.xht" />
-        <meta name="flags" content="ahem" />
-        <style type="text/css"><![CDATA[
-            #reference-overlapped-red {
-                position: absolute;
-                background-color: red;
-                width: 100px;
-                height: 100px;
-                z-index: -1;
-            }
-
-            #inline-grid {
-                display: inline-grid;
-                font: 50px/1 Ahem;
-                grid-template-columns: auto auto;
-            }
-
-            #blue {
-                color: blue;
-                order: -10;
-            }
-
-            #yellow {
-                color: yellow;
-                order: -5;
-            }
-
-            #lime {
-                color: lime;
-                order: -1;
-            }
-
-            #magenta {
-                color: magenta;
-            }
-        ]]></style>
-    </head>
-    <body>
-        <p>Test passes if there are four filled squares with the same size and <strong>no red</strong>.</p>
-        <p>Blue and yellow squares in the first line; lime and magenta squares in the second line (exactly in this order).</p>
-
-        <div id="reference-overlapped-red"></div>
-        <div id="inline-grid">
-            <div id="magenta">M</div>
-            <div id="lime">L</div>
-            <div id="yellow">Y</div>
-            <div id="blue">B</div>
-        </div>
-    </body>
-</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-order-property-auto-placement-003.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-order-property-auto-placement-003.html
new file mode 100644
index 0000000..e2f3809
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-order-property-auto-placement-003.html
@@ -0,0 +1,52 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Grid Layout Test: 'order' property affects grid items auto-placement position within an inline grid</title>
+<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
+<link rel="help" href="http://www.w3.org/TR/css-grid-1/#order-property" title="4.2 Reordered Grid Items: the order property">
+<link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#order-property" title="5.4. Display Order: the order property">
+<link rel="match" href="../reference/grid-2x2-blue-yellow-lime-magenta.html">
+<meta name="flags" content="ahem">
+<style>
+  #reference-overlapped-red {
+    position: absolute;
+    background-color: red;
+    width: 100px;
+    height: 100px;
+    z-index: -1;
+  }
+
+  #inline-grid {
+    display: inline-grid;
+    font: 50px/1 Ahem;
+    grid-template-columns: auto auto;
+  }
+
+  #blue {
+    color: blue;
+    order: -5;
+  }
+
+  #yellow {
+    color: yellow;
+    order: -5;
+  }
+
+  #lime {
+    color: lime;
+  }
+
+  #magenta {
+    color: magenta;
+    order: 1;
+  }
+</style>
+<p>Test passes if there are four filled squares with the same size and <strong>no red</strong>.</p>
+<p>Blue and yellow squares in the first line; lime and magenta squares in the second line (exactly in this order).</p>
+
+<div id="reference-overlapped-red"></div>
+<div id="inline-grid">
+  <div id="lime">L</div>
+  <div id="magenta">M</div>
+  <div id="blue">B</div>
+  <div id="yellow">Y</div>
+</div>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-order-property-auto-placement-003.xht b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-order-property-auto-placement-003.xht
deleted file mode 100644
index ae85ee0..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-order-property-auto-placement-003.xht
+++ /dev/null
@@ -1,57 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-    <head>
-        <title>CSS Grid Layout Test: 'order' property affects grid items auto-placement position within an inline grid</title>
-        <link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com" />
-        <link rel="help" href="http://www.w3.org/TR/css-grid-1/#order-property" title="4.2 Reordered Grid Items: the order property" />
-        <link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#order-property" title="5.4. Display Order: the order property" />
-        <link rel="match" href="../reference/grid-2x2-blue-yellow-lime-magenta.xht" />
-        <meta name="flags" content="ahem" />
-        <style type="text/css"><![CDATA[
-            #reference-overlapped-red {
-                position: absolute;
-                background-color: red;
-                width: 100px;
-                height: 100px;
-                z-index: -1;
-            }
-
-            #inline-grid {
-                display: inline-grid;
-                font: 50px/1 Ahem;
-                grid-template-columns: auto auto;
-            }
-
-            #blue {
-                color: blue;
-                order: -5;
-            }
-
-            #yellow {
-                color: yellow;
-                order: -5;
-            }
-
-            #lime {
-                color: lime;
-            }
-
-            #magenta {
-                color: magenta;
-                order: 1;
-            }
-        ]]></style>
-    </head>
-    <body>
-        <p>Test passes if there are four filled squares with the same size and <strong>no red</strong>.</p>
-        <p>Blue and yellow squares in the first line; lime and magenta squares in the second line (exactly in this order).</p>
-
-        <div id="reference-overlapped-red"></div>
-        <div id="inline-grid">
-            <div id="lime">L</div>
-            <div id="magenta">M</div>
-            <div id="blue">B</div>
-            <div id="yellow">Y</div>
-        </div>
-    </body>
-</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-order-property-auto-placement-004.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-order-property-auto-placement-004.html
new file mode 100644
index 0000000..cb3e907
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-order-property-auto-placement-004.html
@@ -0,0 +1,53 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Grid Layout Test: 'order' property affects grid items auto-placement position within an inline grid</title>
+<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
+<link rel="help" href="http://www.w3.org/TR/css-grid-1/#order-property" title="4.2 Reordered Grid Items: the order property">
+<link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#order-property" title="5.4. Display Order: the order property">
+<link rel="match" href="../reference/grid-2x2-blue-yellow-lime-magenta.html">
+<meta name="flags" content="ahem">
+<style>
+  #reference-overlapped-red {
+    position: absolute;
+    background-color: red;
+    width: 100px;
+    height: 100px;
+    z-index: -1;
+  }
+
+  #inline-grid {
+    display: inline-grid;
+    font: 50px/1 Ahem;
+    grid-template-columns: auto auto;
+  }
+
+  #blue {
+    color: blue;
+    order: 1;
+  }
+
+  #yellow {
+    color: yellow;
+    order: 1;
+  }
+
+  #lime {
+    color: lime;
+    order: 5;
+  }
+
+  #magenta {
+    color: magenta;
+    order: 5;
+  }
+</style>
+<p>Test passes if there are four filled squares with the same size and <strong>no red</strong>.</p>
+<p>Blue and yellow squares in the first line; lime and magenta squares in the second line (exactly in this order).</p>
+
+<div id="reference-overlapped-red"></div>
+<div id="inline-grid">
+  <div id="blue">B</div>
+  <div id="lime">L</div>
+  <div id="magenta">M</div>
+  <div id="yellow">Y</div>
+</div>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-order-property-auto-placement-004.xht b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-order-property-auto-placement-004.xht
deleted file mode 100644
index f7469f56..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-order-property-auto-placement-004.xht
+++ /dev/null
@@ -1,58 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-    <head>
-        <title>CSS Grid Layout Test: 'order' property affects grid items auto-placement position within an inline grid</title>
-        <link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com" />
-        <link rel="help" href="http://www.w3.org/TR/css-grid-1/#order-property" title="4.2 Reordered Grid Items: the order property" />
-        <link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#order-property" title="5.4. Display Order: the order property" />
-        <link rel="match" href="../reference/grid-2x2-blue-yellow-lime-magenta.xht" />
-        <meta name="flags" content="ahem" />
-        <style type="text/css"><![CDATA[
-            #reference-overlapped-red {
-                position: absolute;
-                background-color: red;
-                width: 100px;
-                height: 100px;
-                z-index: -1;
-            }
-
-            #inline-grid {
-                display: inline-grid;
-                font: 50px/1 Ahem;
-                grid-template-columns: auto auto;
-            }
-
-            #blue {
-                color: blue;
-                order: 1;
-            }
-
-            #yellow {
-                color: yellow;
-                order: 1;
-            }
-
-            #lime {
-                color: lime;
-                order: 5;
-            }
-
-            #magenta {
-                color: magenta;
-                order: 5;
-            }
-        ]]></style>
-    </head>
-    <body>
-        <p>Test passes if there are four filled squares with the same size and <strong>no red</strong>.</p>
-        <p>Blue and yellow squares in the first line; lime and magenta squares in the second line (exactly in this order).</p>
-
-        <div id="reference-overlapped-red"></div>
-        <div id="inline-grid">
-            <div id="blue">B</div>
-            <div id="lime">L</div>
-            <div id="magenta">M</div>
-            <div id="yellow">Y</div>
-        </div>
-    </body>
-</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-order-property-auto-placement-005.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-order-property-auto-placement-005.html
new file mode 100644
index 0000000..56c9314
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-order-property-auto-placement-005.html
@@ -0,0 +1,53 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Grid Layout Test: 'order' property affects grid items auto-placement position within an inline grid</title>
+<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
+<link rel="help" href="http://www.w3.org/TR/css-grid-1/#order-property" title="4.2 Reordered Grid Items: the order property">
+<link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#order-property" title="5.4. Display Order: the order property">
+<link rel="match" href="../reference/grid-2x2-blue-yellow-lime-magenta.html">
+<meta name="flags" content="ahem">
+<style>
+  #reference-overlapped-red {
+    position: absolute;
+    background-color: red;
+    width: 100px;
+    height: 100px;
+    z-index: -1;
+  }
+
+  #inline-grid {
+    display: inline-grid;
+    font: 50px/1 Ahem;
+    grid-template-columns: auto auto;
+  }
+
+  #blue {
+    color: blue;
+    order: -5;
+  }
+
+  #yellow {
+    color: yellow;
+    order: -1;
+  }
+
+  #lime {
+    color: lime;
+    order: 1;
+  }
+
+  #magenta {
+    color: magenta;
+    order: 5;
+  }
+</style>
+<p>Test passes if there are four filled squares with the same size and <strong>no red</strong>.</p>
+<p>Blue and yellow squares in the first line; lime and magenta squares in the second line (exactly in this order).</p>
+
+<div id="reference-overlapped-red"></div>
+<div id="inline-grid">
+  <div id="yellow">Y</div>
+  <div id="magenta">M</div>
+  <div id="blue">B</div>
+  <div id="lime">L</div>
+</div>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-order-property-auto-placement-005.xht b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-order-property-auto-placement-005.xht
deleted file mode 100644
index ef19449..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-order-property-auto-placement-005.xht
+++ /dev/null
@@ -1,58 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-    <head>
-        <title>CSS Grid Layout Test: 'order' property affects grid items auto-placement position within an inline grid</title>
-        <link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com" />
-        <link rel="help" href="http://www.w3.org/TR/css-grid-1/#order-property" title="4.2 Reordered Grid Items: the order property" />
-        <link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#order-property" title="5.4. Display Order: the order property" />
-        <link rel="match" href="../reference/grid-2x2-blue-yellow-lime-magenta.xht" />
-        <meta name="flags" content="ahem" />
-        <style type="text/css"><![CDATA[
-            #reference-overlapped-red {
-                position: absolute;
-                background-color: red;
-                width: 100px;
-                height: 100px;
-                z-index: -1;
-            }
-
-            #inline-grid {
-                display: inline-grid;
-                font: 50px/1 Ahem;
-                grid-template-columns: auto auto;
-            }
-
-            #blue {
-                color: blue;
-                order: -5;
-            }
-
-            #yellow {
-                color: yellow;
-                order: -1;
-            }
-
-            #lime {
-                color: lime;
-                order: 1;
-            }
-
-            #magenta {
-                color: magenta;
-                order: 5;
-            }
-        ]]></style>
-    </head>
-    <body>
-        <p>Test passes if there are four filled squares with the same size and <strong>no red</strong>.</p>
-        <p>Blue and yellow squares in the first line; lime and magenta squares in the second line (exactly in this order).</p>
-
-        <div id="reference-overlapped-red"></div>
-        <div id="inline-grid">
-            <div id="yellow">Y</div>
-            <div id="magenta">M</div>
-            <div id="blue">B</div>
-            <div id="lime">L</div>
-        </div>
-    </body>
-</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-order-property-painting-001.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-order-property-painting-001.html
new file mode 100644
index 0000000..a15a418
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-order-property-painting-001.html
@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Grid Layout Test: 'order' property affects grid items painting order within an inline grid</title>
+<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
+<link rel="help" href="http://www.w3.org/TR/css-grid-1/#order-property" title="4.2 Reordered Grid Items: the order property">
+<link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#order-property" title="5.4. Display Order: the order property">
+<link rel="match" href="../../reference/ref-filled-green-100px-square.xht">
+<meta name="flags" content="ahem">
+<style>
+  #inline-grid {
+    display: inline-grid;
+    font: 100px/1 Ahem;
+  }
+
+  #test-item-overlapping-green {
+    color: green;
+    order: 1;
+  }
+
+  #reference-item-overlapped-red {
+    color: red;
+  }
+
+  .first-row-first-column {
+    grid-area: 1 / 1;
+  }
+</style>
+<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
+
+<div id="inline-grid">
+  <div id="test-item-overlapping-green" class="first-row-first-column">G</div>
+  <div id="reference-item-overlapped-red" class="first-row-first-column">R</div>
+</div>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-order-property-painting-001.xht b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-order-property-painting-001.xht
deleted file mode 100644
index c6e49963..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-order-property-painting-001.xht
+++ /dev/null
@@ -1,38 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-    <head>
-        <title>CSS Grid Layout Test: 'order' property affects grid items painting order within an inline grid</title>
-        <link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com" />
-        <link rel="help" href="http://www.w3.org/TR/css-grid-1/#order-property" title="4.2 Reordered Grid Items: the order property" />
-        <link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#order-property" title="5.4. Display Order: the order property" />
-        <link rel="match" href="../../reference/ref-filled-green-100px-square.xht" />
-        <meta name="flags" content="ahem" />
-        <style type="text/css"><![CDATA[
-            #inline-grid {
-                display: inline-grid;
-                font: 100px/1 Ahem;
-            }
-
-            #test-item-overlapping-green {
-                color: green;
-                order: 1;
-            }
-
-            #reference-item-overlapped-red {
-                color: red;
-            }
-
-            .first-row-first-column {
-                grid-area: 1 / 1;
-            }
-        ]]></style>
-    </head>
-    <body>
-        <p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
-
-        <div id="inline-grid">
-            <div id="test-item-overlapping-green" class="first-row-first-column">G</div>
-            <div id="reference-item-overlapped-red" class="first-row-first-column">R</div>
-        </div>
-    </body>
-</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-order-property-painting-002.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-order-property-painting-002.html
new file mode 100644
index 0000000..1e9845d
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-order-property-painting-002.html
@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Grid Layout Test: 'order' property affects grid items painting order within an inline grid</title>
+<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
+<link rel="help" href="http://www.w3.org/TR/css-grid-1/#order-property" title="4.2 Reordered Grid Items: the order property">
+<link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#order-property" title="5.4. Display Order: the order property">
+<link rel="match" href="../../reference/ref-filled-green-100px-square.xht">
+<meta name="flags" content="ahem">
+<style>
+  #inline-grid {
+    display: inline-grid;
+    font: 100px/1 Ahem;
+  }
+
+  #test-item-overlapping-green {
+    color: green;
+  }
+
+  #reference-item-overlapped-red {
+    color: red;
+    order: -1;
+  }
+
+  .first-row-first-column {
+    grid-area: 1 / 1;
+  }
+</style>
+<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
+
+<div id="inline-grid">
+  <div id="test-item-overlapping-green" class="first-row-first-column">G</div>
+  <div id="reference-item-overlapped-red" class="first-row-first-column">R</div>
+</div>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-order-property-painting-002.xht b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-order-property-painting-002.xht
deleted file mode 100644
index 1a03fb6..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-order-property-painting-002.xht
+++ /dev/null
@@ -1,38 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-    <head>
-        <title>CSS Grid Layout Test: 'order' property affects grid items painting order within an inline grid</title>
-        <link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com" />
-        <link rel="help" href="http://www.w3.org/TR/css-grid-1/#order-property" title="4.2 Reordered Grid Items: the order property" />
-        <link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#order-property" title="5.4. Display Order: the order property" />
-        <link rel="match" href="../../reference/ref-filled-green-100px-square.xht" />
-        <meta name="flags" content="ahem" />
-        <style type="text/css"><![CDATA[
-            #inline-grid {
-                display: inline-grid;
-                font: 100px/1 Ahem;
-            }
-
-            #test-item-overlapping-green {
-                color: green;
-            }
-
-            #reference-item-overlapped-red {
-                color: red;
-                order: -1;
-            }
-
-            .first-row-first-column {
-                grid-area: 1 / 1;
-            }
-        ]]></style>
-    </head>
-    <body>
-        <p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
-
-        <div id="inline-grid">
-            <div id="test-item-overlapping-green" class="first-row-first-column">G</div>
-            <div id="reference-item-overlapped-red" class="first-row-first-column">R</div>
-        </div>
-    </body>
-</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-order-property-painting-003.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-order-property-painting-003.html
new file mode 100644
index 0000000..5e10ba1
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-order-property-painting-003.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Grid Layout Test: 'order' property affects grid items painting order within an inline grid</title>
+<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
+<link rel="help" href="http://www.w3.org/TR/css-grid-1/#order-property" title="4.2 Reordered Grid Items: the order property">
+<link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#order-property" title="5.4. Display Order: the order property">
+<link rel="match" href="../../reference/ref-filled-green-100px-square.xht">
+<meta name="flags" content="ahem">
+<style>
+  #inline-grid {
+    display: inline-grid;
+    font: 100px/1 Ahem;
+  }
+
+  #test-item-overlapping-green {
+    color: green;
+    order: 10;
+  }
+
+  #reference-item-overlapped-red {
+    color: red;
+    order: 5;
+  }
+
+  .first-row-first-column {
+    grid-area: 1 / 1;
+  }
+</style>
+<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
+
+<div id="inline-grid">
+  <div id="test-item-overlapping-green" class="first-row-first-column">G</div>
+  <div id="reference-item-overlapped-red" class="first-row-first-column">R</div>
+</div>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-order-property-painting-003.xht b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-order-property-painting-003.xht
deleted file mode 100644
index b336e219..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-order-property-painting-003.xht
+++ /dev/null
@@ -1,39 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-    <head>
-        <title>CSS Grid Layout Test: 'order' property affects grid items painting order within an inline grid</title>
-        <link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com" />
-        <link rel="help" href="http://www.w3.org/TR/css-grid-1/#order-property" title="4.2 Reordered Grid Items: the order property" />
-        <link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#order-property" title="5.4. Display Order: the order property" />
-        <link rel="match" href="../../reference/ref-filled-green-100px-square.xht" />
-        <meta name="flags" content="ahem" />
-        <style type="text/css"><![CDATA[
-            #inline-grid {
-                display: inline-grid;
-                font: 100px/1 Ahem;
-            }
-
-            #test-item-overlapping-green {
-                color: green;
-                order: 10;
-            }
-
-            #reference-item-overlapped-red {
-                color: red;
-                order: 5;
-            }
-
-            .first-row-first-column {
-                grid-area: 1 / 1;
-            }
-        ]]></style>
-    </head>
-    <body>
-        <p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
-
-        <div id="inline-grid">
-            <div id="test-item-overlapping-green" class="first-row-first-column">G</div>
-            <div id="reference-item-overlapped-red" class="first-row-first-column">R</div>
-        </div>
-    </body>
-</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-order-property-painting-004.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-order-property-painting-004.html
new file mode 100644
index 0000000..57777cc9
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-order-property-painting-004.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Grid Layout Test: 'order' property affects grid items painting order within an inline grid</title>
+<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
+<link rel="help" href="http://www.w3.org/TR/css-grid-1/#order-property" title="4.2 Reordered Grid Items: the order property">
+<link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#order-property" title="5.4. Display Order: the order property">
+<link rel="match" href="../../reference/ref-filled-green-100px-square.xht">
+<meta name="flags" content="ahem">
+<style>
+  #inline-grid {
+    display: inline-grid;
+    font: 100px/1 Ahem;
+  }
+
+  #test-item-overlapping-green {
+    color: green;
+    order: -5;
+  }
+
+  #reference-item-overlapped-red {
+    color: red;
+    order: -10;
+  }
+
+  .first-row-first-column {
+    grid-area: 1 / 1;
+  }
+</style>
+<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
+
+<div id="inline-grid">
+  <div id="test-item-overlapping-green" class="first-row-first-column">G</div>
+  <div id="reference-item-overlapped-red" class="first-row-first-column">R</div>
+</div>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-order-property-painting-004.xht b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-order-property-painting-004.xht
deleted file mode 100644
index 187e150..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-order-property-painting-004.xht
+++ /dev/null
@@ -1,39 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-    <head>
-        <title>CSS Grid Layout Test: 'order' property affects grid items painting order within an inline grid</title>
-        <link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com" />
-        <link rel="help" href="http://www.w3.org/TR/css-grid-1/#order-property" title="4.2 Reordered Grid Items: the order property" />
-        <link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#order-property" title="5.4. Display Order: the order property" />
-        <link rel="match" href="../../reference/ref-filled-green-100px-square.xht" />
-        <meta name="flags" content="ahem" />
-        <style type="text/css"><![CDATA[
-            #inline-grid {
-                display: inline-grid;
-                font: 100px/1 Ahem;
-            }
-
-            #test-item-overlapping-green {
-                color: green;
-                order: -5;
-            }
-
-            #reference-item-overlapped-red {
-                color: red;
-                order: -10;
-            }
-
-            .first-row-first-column {
-                grid-area: 1 / 1;
-            }
-        ]]></style>
-    </head>
-    <body>
-        <p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
-
-        <div id="inline-grid">
-            <div id="test-item-overlapping-green" class="first-row-first-column">G</div>
-            <div id="reference-item-overlapped-red" class="first-row-first-column">R</div>
-        </div>
-    </body>
-</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-order-property-painting-005.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-order-property-painting-005.html
new file mode 100644
index 0000000..7819115d
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-order-property-painting-005.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Grid Layout Test: 'order' property affects grid items painting order within an inline grid</title>
+<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
+<link rel="help" href="http://www.w3.org/TR/css-grid-1/#order-property" title="4.2 Reordered Grid Items: the order property">
+<link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#order-property" title="5.4. Display Order: the order property">
+<link rel="match" href="../../reference/ref-filled-green-100px-square.xht">
+<meta name="flags" content="ahem">
+<style>
+  #inline-grid {
+    display: inline-grid;
+    font: 100px/1 Ahem;
+  }
+
+  #test-item-overlapping-green {
+    color: green;
+    order: 1;
+  }
+
+  #reference-item-overlapped-red {
+    color: red;
+    order: -1;
+  }
+
+  .first-row-first-column {
+    grid-area: 1 / 1;
+  }
+</style>
+<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
+
+<div id="inline-grid">
+  <div id="test-item-overlapping-green" class="first-row-first-column">G</div>
+  <div id="reference-item-overlapped-red" class="first-row-first-column">R</div>
+</div>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-order-property-painting-005.xht b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-order-property-painting-005.xht
deleted file mode 100644
index c49e388..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-order-property-painting-005.xht
+++ /dev/null
@@ -1,39 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-    <head>
-        <title>CSS Grid Layout Test: 'order' property affects grid items painting order within an inline grid</title>
-        <link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com" />
-        <link rel="help" href="http://www.w3.org/TR/css-grid-1/#order-property" title="4.2 Reordered Grid Items: the order property" />
-        <link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#order-property" title="5.4. Display Order: the order property" />
-        <link rel="match" href="../../reference/ref-filled-green-100px-square.xht" />
-        <meta name="flags" content="ahem" />
-        <style type="text/css"><![CDATA[
-            #inline-grid {
-                display: inline-grid;
-                font: 100px/1 Ahem;
-            }
-
-            #test-item-overlapping-green {
-                color: green;
-                order: 1;
-            }
-
-            #reference-item-overlapped-red {
-                color: red;
-                order: -1;
-            }
-
-            .first-row-first-column {
-                grid-area: 1 / 1;
-            }
-        ]]></style>
-    </head>
-    <body>
-        <p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
-
-        <div id="inline-grid">
-            <div id="test-item-overlapping-green" class="first-row-first-column">G</div>
-            <div id="reference-item-overlapped-red" class="first-row-first-column">R</div>
-        </div>
-    </body>
-</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-z-axis-ordering-001.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-z-axis-ordering-001.html
new file mode 100644
index 0000000..96c4166
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-z-axis-ordering-001.html
@@ -0,0 +1,32 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Grid Layout Test: 'z-index' property controls the z-axis order of grid items within an inline grid</title>
+<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
+<link rel="help" href="http://www.w3.org/TR/css-grid-1/#z-order" title="4.4. Z-axis Ordering: the z-index property">
+<link rel="match" href="../../reference/ref-filled-green-100px-square.xht">
+<meta name="flags" content="ahem">
+<style>
+  #inline-grid {
+    display: inline-grid;
+    font: 100px/1 Ahem;
+  }
+
+  #test-item-overlapping-green {
+    color: green;
+    z-index: 1;
+  }
+
+  #reference-item-overlapped-red {
+    color: red;
+  }
+
+  .first-row-first-column {
+    grid-area: 1 / 1;
+  }
+</style>
+<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
+
+<div id="inline-grid">
+  <div id="test-item-overlapping-green" class="first-row-first-column">G</div>
+  <div id="reference-item-overlapped-red" class="first-row-first-column">R</div>
+</div>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-z-axis-ordering-001.xht b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-z-axis-ordering-001.xht
deleted file mode 100644
index 03c343bb..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-z-axis-ordering-001.xht
+++ /dev/null
@@ -1,37 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-    <head>
-        <title>CSS Grid Layout Test: 'z-index' property controls the z-axis order of grid items within an inline grid</title>
-        <link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com" />
-        <link rel="help" href="http://www.w3.org/TR/css-grid-1/#z-order" title="4.4. Z-axis Ordering: the z-index property" />
-        <link rel="match" href="../../reference/ref-filled-green-100px-square.xht" />
-        <meta name="flags" content="ahem" />
-        <style type="text/css"><![CDATA[
-            #inline-grid {
-                display: inline-grid;
-                font: 100px/1 Ahem;
-            }
-
-            #test-item-overlapping-green {
-                color: green;
-                z-index: 1;
-            }
-
-            #reference-item-overlapped-red {
-                color: red;
-            }
-
-            .first-row-first-column {
-                grid-area: 1 / 1;
-            }
-        ]]></style>
-    </head>
-    <body>
-        <p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
-
-        <div id="inline-grid">
-            <div id="test-item-overlapping-green" class="first-row-first-column">G</div>
-            <div id="reference-item-overlapped-red" class="first-row-first-column">R</div>
-        </div>
-    </body>
-</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-z-axis-ordering-002.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-z-axis-ordering-002.html
new file mode 100644
index 0000000..c2d3a35
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-z-axis-ordering-002.html
@@ -0,0 +1,32 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Grid Layout Test: 'z-index' property controls the z-axis order of grid items within an inline grid</title>
+<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
+<link rel="help" href="http://www.w3.org/TR/css-grid-1/#z-order" title="4.4. Z-axis Ordering: the z-index property">
+<link rel="match" href="../../reference/ref-filled-green-100px-square.xht">
+<meta name="flags" content="ahem">
+<style>
+  #inline-grid {
+    display: inline-grid;
+    font: 100px/1 Ahem;
+  }
+
+  #test-item-overlapping-green {
+    color: green;
+  }
+
+  #reference-item-overlapped-red {
+    color: red;
+    z-index: -1;
+  }
+
+  .first-row-first-column {
+    grid-area: 1 / 1;
+  }
+</style>
+<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
+
+<div id="inline-grid">
+  <div id="test-item-overlapping-green" class="first-row-first-column">G</div>
+  <div id="reference-item-overlapped-red" class="first-row-first-column">R</div>
+</div>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-z-axis-ordering-002.xht b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-z-axis-ordering-002.xht
deleted file mode 100644
index cadc1a13..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-z-axis-ordering-002.xht
+++ /dev/null
@@ -1,37 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-    <head>
-        <title>CSS Grid Layout Test: 'z-index' property controls the z-axis order of grid items within an inline grid</title>
-        <link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com" />
-        <link rel="help" href="http://www.w3.org/TR/css-grid-1/#z-order" title="4.4. Z-axis Ordering: the z-index property" />
-        <link rel="match" href="../../reference/ref-filled-green-100px-square.xht" />
-        <meta name="flags" content="ahem" />
-        <style type="text/css"><![CDATA[
-            #inline-grid {
-                display: inline-grid;
-                font: 100px/1 Ahem;
-            }
-
-            #test-item-overlapping-green {
-                color: green;
-            }
-
-            #reference-item-overlapped-red {
-                color: red;
-                z-index: -1;
-            }
-
-            .first-row-first-column {
-                grid-area: 1 / 1;
-            }
-        ]]></style>
-    </head>
-    <body>
-        <p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
-
-        <div id="inline-grid">
-            <div id="test-item-overlapping-green" class="first-row-first-column">G</div>
-            <div id="reference-item-overlapped-red" class="first-row-first-column">R</div>
-        </div>
-    </body>
-</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-z-axis-ordering-003.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-z-axis-ordering-003.html
new file mode 100644
index 0000000..8c3ef546
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-z-axis-ordering-003.html
@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Grid Layout Test: 'z-index' property controls the z-axis order of grid items within an inline grid</title>
+<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
+<link rel="help" href="http://www.w3.org/TR/css-grid-1/#z-order" title="4.4. Z-axis Ordering: the z-index property">
+<link rel="match" href="../../reference/ref-filled-green-100px-square.xht">
+<meta name="flags" content="ahem">
+<style>
+  #inline-grid {
+    display: inline-grid;
+    font: 100px/1 Ahem;
+  }
+
+  #test-item-overlapping-green {
+    color: green;
+    z-index: 10;
+  }
+
+  #reference-item-overlapped-red {
+    color: red;
+    z-index: 5;
+  }
+
+  .first-row-first-column {
+    grid-area: 1 / 1;
+  }
+</style>
+<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
+
+<div id="inline-grid">
+  <div id="test-item-overlapping-green" class="first-row-first-column">G</div>
+  <div id="reference-item-overlapped-red" class="first-row-first-column">R</div>
+</div>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-z-axis-ordering-003.xht b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-z-axis-ordering-003.xht
deleted file mode 100644
index 84339d7..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-z-axis-ordering-003.xht
+++ /dev/null
@@ -1,38 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-    <head>
-        <title>CSS Grid Layout Test: 'z-index' property controls the z-axis order of grid items within an inline grid</title>
-        <link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com" />
-        <link rel="help" href="http://www.w3.org/TR/css-grid-1/#z-order" title="4.4. Z-axis Ordering: the z-index property" />
-        <link rel="match" href="../../reference/ref-filled-green-100px-square.xht" />
-        <meta name="flags" content="ahem" />
-        <style type="text/css"><![CDATA[
-            #inline-grid {
-                display: inline-grid;
-                font: 100px/1 Ahem;
-            }
-
-            #test-item-overlapping-green {
-                color: green;
-                z-index: 10;
-            }
-
-            #reference-item-overlapped-red {
-                color: red;
-                z-index: 5;
-            }
-
-            .first-row-first-column {
-                grid-area: 1 / 1;
-            }
-        ]]></style>
-    </head>
-    <body>
-        <p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
-
-        <div id="inline-grid">
-            <div id="test-item-overlapping-green" class="first-row-first-column">G</div>
-            <div id="reference-item-overlapped-red" class="first-row-first-column">R</div>
-        </div>
-    </body>
-</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-z-axis-ordering-004.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-z-axis-ordering-004.html
new file mode 100644
index 0000000..9771335
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-z-axis-ordering-004.html
@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Grid Layout Test: 'z-index' property controls the z-axis order of grid items within an inline grid</title>
+<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
+<link rel="help" href="http://www.w3.org/TR/css-grid-1/#z-order" title="4.4. Z-axis Ordering: the z-index property">
+<link rel="match" href="../../reference/ref-filled-green-100px-square.xht">
+<meta name="flags" content="ahem">
+<style>
+  #inline-grid {
+    display: inline-grid;
+    font: 100px/1 Ahem;
+  }
+
+  #test-item-overlapping-green {
+    color: green;
+    z-index: -5;
+  }
+
+  #reference-item-overlapped-red {
+    color: red;
+    z-index: -10;
+  }
+
+  .first-row-first-column {
+    grid-area: 1 / 1;
+  }
+</style>
+<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
+
+<div id="inline-grid">
+  <div id="test-item-overlapping-green" class="first-row-first-column">G</div>
+  <div id="reference-item-overlapped-red" class="first-row-first-column">R</div>
+</div>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-z-axis-ordering-004.xht b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-z-axis-ordering-004.xht
deleted file mode 100644
index a61bd8d5..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-z-axis-ordering-004.xht
+++ /dev/null
@@ -1,38 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-    <head>
-        <title>CSS Grid Layout Test: 'z-index' property controls the z-axis order of grid items within an inline grid</title>
-        <link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com" />
-        <link rel="help" href="http://www.w3.org/TR/css-grid-1/#z-order" title="4.4. Z-axis Ordering: the z-index property" />
-        <link rel="match" href="../../reference/ref-filled-green-100px-square.xht" />
-        <meta name="flags" content="ahem" />
-        <style type="text/css"><![CDATA[
-            #inline-grid {
-                display: inline-grid;
-                font: 100px/1 Ahem;
-            }
-
-            #test-item-overlapping-green {
-                color: green;
-                z-index: -5;
-            }
-
-            #reference-item-overlapped-red {
-                color: red;
-                z-index: -10;
-            }
-
-            .first-row-first-column {
-                grid-area: 1 / 1;
-            }
-        ]]></style>
-    </head>
-    <body>
-        <p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
-
-        <div id="inline-grid">
-            <div id="test-item-overlapping-green" class="first-row-first-column">G</div>
-            <div id="reference-item-overlapped-red" class="first-row-first-column">R</div>
-        </div>
-    </body>
-</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-z-axis-ordering-005.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-z-axis-ordering-005.html
new file mode 100644
index 0000000..2aaf6ced
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-z-axis-ordering-005.html
@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Grid Layout Test: 'z-index' property controls the z-axis order of grid items within an inline grid</title>
+<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
+<link rel="help" href="http://www.w3.org/TR/css-grid-1/#z-order" title="4.4. Z-axis Ordering: the z-index property">
+<link rel="match" href="../../reference/ref-filled-green-100px-square.xht">
+<meta name="flags" content="ahem">
+<style>
+  #inline-grid {
+    display: inline-grid;
+    font: 100px/1 Ahem;
+  }
+
+  #test-item-overlapping-green {
+    color: green;
+    z-index: 1;
+  }
+
+  #reference-item-overlapped-red {
+    color: red;
+    z-index: -1;
+  }
+
+  .first-row-first-column {
+    grid-area: 1 / 1;
+  }
+</style>
+<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
+
+<div id="inline-grid">
+  <div id="test-item-overlapping-green" class="first-row-first-column">G</div>
+  <div id="reference-item-overlapped-red" class="first-row-first-column">R</div>
+</div>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-z-axis-ordering-005.xht b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-z-axis-ordering-005.xht
deleted file mode 100644
index a859b791..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-z-axis-ordering-005.xht
+++ /dev/null
@@ -1,38 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-    <head>
-        <title>CSS Grid Layout Test: 'z-index' property controls the z-axis order of grid items within an inline grid</title>
-        <link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com" />
-        <link rel="help" href="http://www.w3.org/TR/css-grid-1/#z-order" title="4.4. Z-axis Ordering: the z-index property" />
-        <link rel="match" href="../../reference/ref-filled-green-100px-square.xht" />
-        <meta name="flags" content="ahem" />
-        <style type="text/css"><![CDATA[
-            #inline-grid {
-                display: inline-grid;
-                font: 100px/1 Ahem;
-            }
-
-            #test-item-overlapping-green {
-                color: green;
-                z-index: 1;
-            }
-
-            #reference-item-overlapped-red {
-                color: red;
-                z-index: -1;
-            }
-
-            .first-row-first-column {
-                grid-area: 1 / 1;
-            }
-        ]]></style>
-    </head>
-    <body>
-        <p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
-
-        <div id="inline-grid">
-            <div id="test-item-overlapping-green" class="first-row-first-column">G</div>
-            <div id="reference-item-overlapped-red" class="first-row-first-column">R</div>
-        </div>
-    </body>
-</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-z-axis-ordering-overlapped-items-001.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-z-axis-ordering-overlapped-items-001.html
new file mode 100644
index 0000000..eecdccdfd
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-z-axis-ordering-overlapped-items-001.html
@@ -0,0 +1,42 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Grid Layout Test: 'z-index' property controls the grid items stacking order within an inline grid</title>
+<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
+<link rel="help" href="http://www.w3.org/TR/css-grid-1/#z-order" title="4.4. Z-axis Ordering: the z-index property">
+<link rel="match" href="../reference/grid-filled-blue-yellow-green-overlapped-100px-squares.html">
+<meta name="flags" content="ahem">
+<style>
+  #inline-grid {
+    display: inline-grid;
+    font: 100px/1 Ahem;
+    grid-template-columns: 25px 25px 25px 25px;
+    grid-template-rows: 25px 25px 25px 25px;
+  }
+
+  #blue {
+    color: blue;
+    z-index: -1;
+    grid-column: 1;
+    grid-row: 1;
+  }
+
+  #yellow {
+    color: yellow;
+    grid-column: 2;
+    grid-row: 2;
+  }
+
+  #green {
+    color: green;
+    z-index: 1;
+    grid-column: 3;
+    grid-row: 3;
+  }
+</style>
+<p>Test passes if there are 3 filled squares with the same size, and <strong>green</strong> is overlapping <strong>yellow</strong> which is overlapping <strong>blue</strong>.</p>
+
+<div id="inline-grid">
+  <div id="green">G</div>
+  <div id="yellow">Y</div>
+  <div id="blue">B</div>
+</div>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-z-axis-ordering-overlapped-items-001.xht b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-z-axis-ordering-overlapped-items-001.xht
deleted file mode 100644
index 2b49808..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-z-axis-ordering-overlapped-items-001.xht
+++ /dev/null
@@ -1,47 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-    <head>
-        <title>CSS Grid Layout Test: 'z-index' property controls the grid items stacking order within an inline grid</title>
-        <link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com" />
-        <link rel="help" href="http://www.w3.org/TR/css-grid-1/#z-order" title="4.4. Z-axis Ordering: the z-index property" />
-        <link rel="match" href="../reference/grid-filled-blue-yellow-green-overlapped-100px-squares.xht" />
-        <meta name="flags" content="ahem" />
-        <style type="text/css"><![CDATA[
-            #inline-grid {
-                display: inline-grid;
-                font: 100px/1 Ahem;
-                grid-template-columns: 25px 25px 25px 25px;
-                grid-template-rows: 25px 25px 25px 25px;
-            }
-
-            #blue {
-                color: blue;
-                z-index: -1;
-                grid-column: 1;
-                grid-row: 1;
-            }
-
-            #yellow {
-                color: yellow;
-                grid-column: 2;
-                grid-row: 2;
-            }
-
-            #green {
-                color: green;
-                z-index: 1;
-                grid-column: 3;
-                grid-row: 3;
-            }
-        ]]></style>
-    </head>
-    <body>
-        <p>Test passes if there are 3 filled squares with the same size, and <strong>green</strong> is overlapping <strong>yellow</strong> which is overlapping <strong>blue</strong>.</p>
-
-        <div id="inline-grid">
-            <div id="green">G</div>
-            <div id="yellow">Y</div>
-            <div id="blue">B</div>
-        </div>
-    </body>
-</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-z-axis-ordering-overlapped-items-002.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-z-axis-ordering-overlapped-items-002.html
new file mode 100644
index 0000000..7d17b6d86
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-z-axis-ordering-overlapped-items-002.html
@@ -0,0 +1,43 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Grid Layout Test: 'z-index' property controls the grid items stacking order within an inline grid</title>
+<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
+<link rel="help" href="http://www.w3.org/TR/css-grid-1/#z-order" title="4.4. Z-axis Ordering: the z-index property">
+<link rel="match" href="../reference/grid-filled-blue-yellow-green-overlapped-100px-squares.html">
+<meta name="flags" content="ahem">
+<style>
+  #inline-grid {
+    display: inline-grid;
+    font: 100px/1 Ahem;
+    grid-template-columns: 25px 25px 25px 25px;
+    grid-template-rows: 25px 25px 25px 25px;
+  }
+
+  #blue {
+    color: blue;
+    z-index: 1;
+    grid-column: 1;
+    grid-row: 1;
+  }
+
+  #yellow {
+    color: yellow;
+    z-index: 5;
+    grid-column: 2;
+    grid-row: 2;
+  }
+
+  #green {
+    color: green;
+    z-index: 10;
+    grid-column: 3;
+    grid-row: 3;
+  }
+</style>
+<p>Test passes if there are 3 filled squares with the same size, and <strong>green</strong> is overlapping <strong>yellow</strong> which is overlapping <strong>blue</strong>.</p>
+
+<div id="inline-grid">
+  <div id="green">G</div>
+  <div id="yellow">Y</div>
+  <div id="blue">B</div>
+</div>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-z-axis-ordering-overlapped-items-002.xht b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-z-axis-ordering-overlapped-items-002.xht
deleted file mode 100644
index d71ca194..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-z-axis-ordering-overlapped-items-002.xht
+++ /dev/null
@@ -1,48 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-    <head>
-        <title>CSS Grid Layout Test: 'z-index' property controls the grid items stacking order within an inline grid</title>
-        <link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com" />
-        <link rel="help" href="http://www.w3.org/TR/css-grid-1/#z-order" title="4.4. Z-axis Ordering: the z-index property" />
-        <link rel="match" href="../reference/grid-filled-blue-yellow-green-overlapped-100px-squares.xht" />
-        <meta name="flags" content="ahem" />
-        <style type="text/css"><![CDATA[
-            #inline-grid {
-                display: inline-grid;
-                font: 100px/1 Ahem;
-                grid-template-columns: 25px 25px 25px 25px;
-                grid-template-rows: 25px 25px 25px 25px;
-            }
-
-            #blue {
-                color: blue;
-                z-index: 1;
-                grid-column: 1;
-                grid-row: 1;
-            }
-
-            #yellow {
-                color: yellow;
-                z-index: 5;
-                grid-column: 2;
-                grid-row: 2;
-            }
-
-            #green {
-                color: green;
-                z-index: 10;
-                grid-column: 3;
-                grid-row: 3;
-            }
-        ]]></style>
-    </head>
-    <body>
-        <p>Test passes if there are 3 filled squares with the same size, and <strong>green</strong> is overlapping <strong>yellow</strong> which is overlapping <strong>blue</strong>.</p>
-
-        <div id="inline-grid">
-            <div id="green">G</div>
-            <div id="yellow">Y</div>
-            <div id="blue">B</div>
-        </div>
-    </body>
-</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-z-axis-ordering-overlapped-items-003.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-z-axis-ordering-overlapped-items-003.html
new file mode 100644
index 0000000..ff3379b
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-z-axis-ordering-overlapped-items-003.html
@@ -0,0 +1,43 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Grid Layout Test: 'z-index' property controls the grid items stacking order within an inline grid</title>
+<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
+<link rel="help" href="http://www.w3.org/TR/css-grid-1/#z-order" title="4.4. Z-axis Ordering: the z-index property">
+<link rel="match" href="../reference/grid-filled-blue-yellow-green-overlapped-100px-squares.html">
+<meta name="flags" content="ahem">
+<style>
+  #inline-grid {
+    display: inline-grid;
+    font: 100px/1 Ahem;
+    grid-template-columns: 25px 25px 25px 25px;
+    grid-template-rows: 25px 25px 25px 25px;
+  }
+
+  #blue {
+    color: blue;
+    z-index: -10;
+    grid-column: 1;
+    grid-row: 1;
+  }
+
+  #yellow {
+    color: yellow;
+    z-index: -5;
+    grid-column: 2;
+    grid-row: 2;
+  }
+
+  #green {
+    color: green;
+    z-index: -1;
+    grid-column: 3;
+    grid-row: 3;
+  }
+</style>
+<p>Test passes if there are 3 filled squares with the same size, and <strong>green</strong> is overlapping <strong>yellow</strong> which is overlapping <strong>blue</strong>.</p>
+
+<div id="inline-grid">
+  <div id="green">G</div>
+  <div id="yellow">Y</div>
+  <div id="blue">B</div>
+</div>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-z-axis-ordering-overlapped-items-003.xht b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-z-axis-ordering-overlapped-items-003.xht
deleted file mode 100644
index 0847114..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-z-axis-ordering-overlapped-items-003.xht
+++ /dev/null
@@ -1,48 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-    <head>
-        <title>CSS Grid Layout Test: 'z-index' property controls the grid items stacking order within an inline grid</title>
-        <link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com" />
-        <link rel="help" href="http://www.w3.org/TR/css-grid-1/#z-order" title="4.4. Z-axis Ordering: the z-index property" />
-        <link rel="match" href="../reference/grid-filled-blue-yellow-green-overlapped-100px-squares.xht" />
-        <meta name="flags" content="ahem" />
-        <style type="text/css"><![CDATA[
-            #inline-grid {
-                display: inline-grid;
-                font: 100px/1 Ahem;
-                grid-template-columns: 25px 25px 25px 25px;
-                grid-template-rows: 25px 25px 25px 25px;
-            }
-
-            #blue {
-                color: blue;
-                z-index: -10;
-                grid-column: 1;
-                grid-row: 1;
-            }
-
-            #yellow {
-                color: yellow;
-                z-index: -5;
-                grid-column: 2;
-                grid-row: 2;
-            }
-
-            #green {
-                color: green;
-                z-index: -1;
-                grid-column: 3;
-                grid-row: 3;
-            }
-        ]]></style>
-    </head>
-    <body>
-        <p>Test passes if there are 3 filled squares with the same size, and <strong>green</strong> is overlapping <strong>yellow</strong> which is overlapping <strong>blue</strong>.</p>
-
-        <div id="inline-grid">
-            <div id="green">G</div>
-            <div id="yellow">Y</div>
-            <div id="blue">B</div>
-        </div>
-    </body>
-</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-z-axis-ordering-overlapped-items-004.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-z-axis-ordering-overlapped-items-004.html
new file mode 100644
index 0000000..72ef168
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-z-axis-ordering-overlapped-items-004.html
@@ -0,0 +1,42 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Grid Layout Test: 'z-index' property controls the grid items stacking order within an inline grid</title>
+<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
+<link rel="help" href="http://www.w3.org/TR/css-grid-1/#z-order" title="4.4. Z-axis Ordering: the z-index property">
+<link rel="match" href="../reference/grid-filled-blue-yellow-green-overlapped-100px-squares.html">
+<meta name="flags" content="ahem">
+<style>
+  #inline-grid {
+    display: inline-grid;
+    font: 100px/1 Ahem;
+    grid-template-columns: 25px 25px 25px 25px;
+    grid-template-rows: 25px 25px 25px 25px;
+  }
+
+  #blue {
+    color: blue;
+    grid-column: 1;
+    grid-row: 1;
+  }
+
+  #yellow {
+    color: yellow;
+    z-index: 1;
+    grid-column: 2;
+    grid-row: 2;
+  }
+
+  #green {
+    color: green;
+    z-index: 5;
+    grid-column: 3;
+    grid-row: 3;
+  }
+</style>
+<p>Test passes if there are 3 filled squares with the same size, and <strong>green</strong> is overlapping <strong>yellow</strong> which is overlapping <strong>blue</strong>.</p>
+
+<div id="inline-grid">
+  <div id="green">G</div>
+  <div id="yellow">Y</div>
+  <div id="blue">B</div>
+</div>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-z-axis-ordering-overlapped-items-004.xht b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-z-axis-ordering-overlapped-items-004.xht
deleted file mode 100644
index 56d5c18a..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-z-axis-ordering-overlapped-items-004.xht
+++ /dev/null
@@ -1,47 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-    <head>
-        <title>CSS Grid Layout Test: 'z-index' property controls the grid items stacking order within an inline grid</title>
-        <link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com" />
-        <link rel="help" href="http://www.w3.org/TR/css-grid-1/#z-order" title="4.4. Z-axis Ordering: the z-index property" />
-        <link rel="match" href="../reference/grid-filled-blue-yellow-green-overlapped-100px-squares.xht" />
-        <meta name="flags" content="ahem" />
-        <style type="text/css"><![CDATA[
-            #inline-grid {
-                display: inline-grid;
-                font: 100px/1 Ahem;
-                grid-template-columns: 25px 25px 25px 25px;
-                grid-template-rows: 25px 25px 25px 25px;
-            }
-
-            #blue {
-                color: blue;
-                grid-column: 1;
-                grid-row: 1;
-            }
-
-            #yellow {
-                color: yellow;
-                z-index: 1;
-                grid-column: 2;
-                grid-row: 2;
-            }
-
-            #green {
-                color: green;
-                z-index: 5;
-                grid-column: 3;
-                grid-row: 3;
-            }
-        ]]></style>
-    </head>
-    <body>
-        <p>Test passes if there are 3 filled squares with the same size, and <strong>green</strong> is overlapping <strong>yellow</strong> which is overlapping <strong>blue</strong>.</p>
-
-        <div id="inline-grid">
-            <div id="green">G</div>
-            <div id="yellow">Y</div>
-            <div id="blue">B</div>
-        </div>
-    </body>
-</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-z-axis-ordering-overlapped-items-005.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-z-axis-ordering-overlapped-items-005.html
new file mode 100644
index 0000000..3fd60ad
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-z-axis-ordering-overlapped-items-005.html
@@ -0,0 +1,42 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Grid Layout Test: 'z-index' property controls the grid items stacking order within an inline grid</title>
+<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
+<link rel="help" href="http://www.w3.org/TR/css-grid-1/#z-order" title="4.4. Z-axis Ordering: the z-index property">
+<link rel="match" href="../reference/grid-filled-blue-yellow-green-overlapped-100px-squares.html">
+<meta name="flags" content="ahem">
+<style>
+  #inline-grid {
+    display: inline-grid;
+    font: 100px/1 Ahem;
+    grid-template-columns: 25px 25px 25px 25px;
+    grid-template-rows: 25px 25px 25px 25px;
+  }
+
+  #blue {
+    color: blue;
+    z-index: -5;
+    grid-column: 1;
+    grid-row: 1;
+  }
+
+  #yellow {
+    color: yellow;
+    z-index: -1;
+    grid-column: 2;
+    grid-row: 2;
+  }
+
+  #green {
+    color: green;
+    grid-column: 3;
+    grid-row: 3;
+  }
+</style>
+<p>Test passes if there are 3 filled squares with the same size, and <strong>green</strong> is overlapping <strong>yellow</strong> which is overlapping <strong>blue</strong>.</p>
+
+<div id="inline-grid">
+  <div id="green">G</div>
+  <div id="yellow">Y</div>
+  <div id="blue">B</div>
+</div>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-z-axis-ordering-overlapped-items-005.xht b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-z-axis-ordering-overlapped-items-005.xht
deleted file mode 100644
index 724b738..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-z-axis-ordering-overlapped-items-005.xht
+++ /dev/null
@@ -1,47 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-    <head>
-        <title>CSS Grid Layout Test: 'z-index' property controls the grid items stacking order within an inline grid</title>
-        <link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com" />
-        <link rel="help" href="http://www.w3.org/TR/css-grid-1/#z-order" title="4.4. Z-axis Ordering: the z-index property" />
-        <link rel="match" href="../reference/grid-filled-blue-yellow-green-overlapped-100px-squares.xht" />
-        <meta name="flags" content="ahem" />
-        <style type="text/css"><![CDATA[
-            #inline-grid {
-                display: inline-grid;
-                font: 100px/1 Ahem;
-                grid-template-columns: 25px 25px 25px 25px;
-                grid-template-rows: 25px 25px 25px 25px;
-            }
-
-            #blue {
-                color: blue;
-                z-index: -5;
-                grid-column: 1;
-                grid-row: 1;
-            }
-
-            #yellow {
-                color: yellow;
-                z-index: -1;
-                grid-column: 2;
-                grid-row: 2;
-            }
-
-            #green {
-                color: green;
-                grid-column: 3;
-                grid-row: 3;
-            }
-        ]]></style>
-    </head>
-    <body>
-        <p>Test passes if there are 3 filled squares with the same size, and <strong>green</strong> is overlapping <strong>yellow</strong> which is overlapping <strong>blue</strong>.</p>
-
-        <div id="inline-grid">
-            <div id="green">G</div>
-            <div id="yellow">Y</div>
-            <div id="blue">B</div>
-        </div>
-    </body>
-</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-z-axis-ordering-overlapped-items-006.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-z-axis-ordering-overlapped-items-006.html
new file mode 100644
index 0000000..17a2e4e
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-z-axis-ordering-overlapped-items-006.html
@@ -0,0 +1,48 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Grid Layout Test: 'z-index' property controls the grid items stacking order within an inline grid</title>
+<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
+<link rel="help" href="http://www.w3.org/TR/css-grid-1/#z-order" title="4.4. Z-axis Ordering: the z-index property">
+<link rel="match" href="../reference/grid-filled-blue-yellow-green-overlapped-100px-squares.html">
+<meta name="flags" content="ahem">
+<style>
+  #inline-grid {
+    display: inline-grid;
+    font: 100px/1 Ahem;
+    grid-template-columns: 25px 25px 25px 25px;
+    grid-template-rows: 25px 25px 25px 25px;
+  }
+
+  #blue {
+    color: blue;
+    z-index: -1;
+    grid-column: 2;
+    grid-row: 2;
+    margin-top: -25px;
+    margin-left: -25px;
+  }
+
+  #yellow {
+    color: yellow;
+    grid-column: 4;
+    grid-row: 4;
+    margin-top: -50px;
+    margin-left: -50px;
+  }
+
+  #green {
+    color: green;
+    z-index: 1;
+    grid-column: 1;
+    grid-row: 1;
+    margin-top: 50px;
+    margin-left: 50px;
+  }
+</style>
+<p>Test passes if there are 3 filled squares with the same size, and <strong>green</strong> is overlapping <strong>yellow</strong> which is overlapping <strong>blue</strong>.</p>
+
+<div id="inline-grid">
+  <div id="green">G</div>
+  <div id="yellow">Y</div>
+  <div id="blue">B</div>
+</div>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-z-axis-ordering-overlapped-items-006.xht b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-z-axis-ordering-overlapped-items-006.xht
deleted file mode 100644
index 3d340dd..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-inline-z-axis-ordering-overlapped-items-006.xht
+++ /dev/null
@@ -1,53 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-    <head>
-        <title>CSS Grid Layout Test: 'z-index' property controls the grid items stacking order within an inline grid</title>
-        <link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com" />
-        <link rel="help" href="http://www.w3.org/TR/css-grid-1/#z-order" title="4.4. Z-axis Ordering: the z-index property" />
-        <link rel="match" href="../reference/grid-filled-blue-yellow-green-overlapped-100px-squares.xht" />
-        <meta name="flags" content="ahem" />
-        <style type="text/css"><![CDATA[
-            #inline-grid {
-                display: inline-grid;
-                font: 100px/1 Ahem;
-                grid-template-columns: 25px 25px 25px 25px;
-                grid-template-rows: 25px 25px 25px 25px;
-            }
-
-            #blue {
-                color: blue;
-                z-index: -1;
-                grid-column: 2;
-                grid-row: 2;
-                margin-top: -25px;
-                margin-left: -25px;
-            }
-
-            #yellow {
-                color: yellow;
-                grid-column: 4;
-                grid-row: 4;
-                margin-top: -50px;
-                margin-left: -50px;
-            }
-
-            #green {
-                color: green;
-                z-index: 1;
-                grid-column: 1;
-                grid-row: 1;
-                margin-top: 50px;
-                margin-left: 50px;
-            }
-        ]]></style>
-    </head>
-    <body>
-        <p>Test passes if there are 3 filled squares with the same size, and <strong>green</strong> is overlapping <strong>yellow</strong> which is overlapping <strong>blue</strong>.</p>
-
-        <div id="inline-grid">
-            <div id="green">G</div>
-            <div id="yellow">Y</div>
-            <div id="blue">B</div>
-        </div>
-    </body>
-</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-items-001.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-items-001.html
new file mode 100644
index 0000000..99701de8a
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-items-001.html
@@ -0,0 +1,42 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Grid Layout Test: Regular and anonymous grid items</title>
+<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
+<link rel="help" href="http://www.w3.org/TR/css-grid-1/#grid-items" title="4 Grid Items">
+<link rel="match" href="../../reference/ref-filled-green-100px-square.xht">
+<meta name="flags" content="ahem">
+<meta name="assert" content="Checks that grid container children become grid items, and text that is directly contained inside the grid is wrapped in an anonymous grid item.">
+<style>
+  #reference-overlapped-red {
+    position: absolute;
+    background-color: red;
+    width: 100px;
+    height: 100px;
+    z-index: -1;
+  }
+
+  .test-grid-overlapping-green {
+    display: grid;
+    font: 25px/1 Ahem;
+    color: green;
+    grid-template-columns: auto auto;
+    justify-content: start;
+    align-content: start;
+  }
+</style>
+<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
+
+<div id="reference-overlapped-red"></div>
+<div class="test-grid-overlapping-green">
+  <div>it</div>
+  em
+  <div>it</div>
+  em
+</div>
+<div class="test-grid-overlapping-green">
+  it
+  <span>em</span>
+  it
+  <span>em</span>
+</div>
+
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-items-001.xht b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-items-001.xht
deleted file mode 100644
index 7cacd22..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-items-001.xht
+++ /dev/null
@@ -1,47 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-    <head>
-        <title>CSS Grid Layout Test: Regular and anonymous grid items</title>
-        <link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com" />
-        <link rel="help" href="http://www.w3.org/TR/css-grid-1/#grid-items" title="4 Grid Items" />
-        <link rel="match" href="../../reference/ref-filled-green-100px-square.xht" />
-        <meta name="flags" content="ahem" />
-        <meta name="assert" content="Checks that grid container children become grid items, and text that is directly contained inside the grid is wrapped in an anonymous grid item." />
-        <style type="text/css"><![CDATA[
-            #reference-overlapped-red {
-                position: absolute;
-                background-color: red;
-                width: 100px;
-                height: 100px;
-                z-index: -1;
-            }
-
-            .test-grid-overlapping-green {
-                display: grid;
-                font: 25px/1 Ahem;
-                color: green;
-                grid-template-columns: auto auto;
-                justify-content: start;
-                align-content: start;
-            }
-        ]]></style>
-    </head>
-    <body>
-        <p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
-
-        <div id="reference-overlapped-red"></div>
-        <div class="test-grid-overlapping-green">
-            <div>it</div>
-            em
-            <div>it</div>
-            em
-        </div>
-        <div class="test-grid-overlapping-green">
-            it
-            <span>em</span>
-            it
-            <span>em</span>
-        </div>
-
-    </body>
-</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-items-002.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-items-002.html
new file mode 100644
index 0000000..23f5eff7
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-items-002.html
@@ -0,0 +1,51 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Grid Layout Test: Children of grid items do not create new items</title>
+<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
+<link rel="help" href="http://www.w3.org/TR/css-grid-1/#grid-items" title="4 Grid Items">
+<link rel="match" href="../../reference/ref-filled-green-100px-square.xht">
+<meta name="flags" content="ahem">
+<meta name="assert" content="Checks that the grid items do not split around blocks creating extra items.">
+<style>
+  #reference-overlapped-red {
+    position: absolute;
+    background-color: red;
+    width: 100px;
+    height: 100px;
+    z-index: -1;
+  }
+
+  .test-grid-overlapping-green {
+    display: grid;
+    font: 25px/1 Ahem;
+    color: green;
+    justify-content: start;
+    align-content: start;
+  }
+
+  .two-columns {
+    grid-template-columns: auto auto;
+  }
+</style>
+<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
+
+<div id="reference-overlapped-red"></div>
+<div class="test-grid-overlapping-green two-columns">
+  <div>
+    <div>it</div>
+    em
+  </div>
+  <div>
+    it
+    <div>em</div>
+  </div>
+</div>
+<div class="test-grid-overlapping-green">
+  <span>
+    <span>it</span>em
+  </span>
+  <span>
+    it<span>em</span>
+  </span>
+</div>
+
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-items-002.xht b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-items-002.xht
deleted file mode 100644
index 19e86b6..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-items-002.xht
+++ /dev/null
@@ -1,56 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-    <head>
-        <title>CSS Grid Layout Test: Children of grid items do not create new items</title>
-        <link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com" />
-        <link rel="help" href="http://www.w3.org/TR/css-grid-1/#grid-items" title="4 Grid Items" />
-        <link rel="match" href="../../reference/ref-filled-green-100px-square.xht" />
-        <meta name="flags" content="ahem" />
-        <meta name="assert" content="Checks that the grid items do not split around blocks creating extra items." />
-        <style type="text/css"><![CDATA[
-            #reference-overlapped-red {
-                position: absolute;
-                background-color: red;
-                width: 100px;
-                height: 100px;
-                z-index: -1;
-            }
-
-            .test-grid-overlapping-green {
-                display: grid;
-                font: 25px/1 Ahem;
-                color: green;
-                justify-content: start;
-                align-content: start;
-            }
-
-            .two-columns {
-                grid-template-columns: auto auto;
-            }
-        ]]></style>
-    </head>
-    <body>
-        <p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
-
-        <div id="reference-overlapped-red"></div>
-        <div class="test-grid-overlapping-green two-columns">
-            <div>
-                <div>it</div>
-                em
-            </div>
-            <div>
-                it
-                <div>em</div>
-            </div>
-        </div>
-        <div class="test-grid-overlapping-green">
-            <span>
-                <span>it</span>em
-            </span>
-            <span>
-                it<span>em</span>
-            </span>
-        </div>
-
-    </body>
-</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-items-003.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-items-003.html
new file mode 100644
index 0000000..247e2d9
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-items-003.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Grid Layout Test: Grid items with 'display:none' are not rendered</title>
+<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
+<link rel="help" href="http://www.w3.org/TR/css-grid-1/#grid-items" title="4 Grid Items">
+<link rel="match" href="../../reference/ref-filled-green-100px-square.xht">
+<meta name="flags" content="ahem">
+<style>
+  #reference-overlapped-red {
+    position: absolute;
+    background-color: red;
+    width: 100px;
+    height: 100px;
+    z-index: -1;
+  }
+
+  .test-grid-overlapping-green {
+    display: grid;
+    font: 50px/1 Ahem;
+    color: green;
+  }
+
+  .display-none-red {
+    display: none;
+    color: red;
+  }
+</style>
+<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
+
+<div id="reference-overlapped-red"></div>
+<div class="test-grid-overlapping-green two-columns">
+  <span>it</span>
+  <span class="display-none-red">hidden</span>
+  <span>em</span>
+</div>
+
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-items-003.xht b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-items-003.xht
deleted file mode 100644
index a9bdff25..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-items-003.xht
+++ /dev/null
@@ -1,41 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-    <head>
-        <title>CSS Grid Layout Test: Grid items with 'display:none' are not rendered</title>
-        <link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com" />
-        <link rel="help" href="http://www.w3.org/TR/css-grid-1/#grid-items" title="4 Grid Items" />
-        <link rel="match" href="../../reference/ref-filled-green-100px-square.xht" />
-        <meta name="flags" content="ahem" />
-        <style type="text/css"><![CDATA[
-            #reference-overlapped-red {
-                position: absolute;
-                background-color: red;
-                width: 100px;
-                height: 100px;
-                z-index: -1;
-            }
-
-            .test-grid-overlapping-green {
-                display: grid;
-                font: 50px/1 Ahem;
-                color: green;
-            }
-
-            .display-none-red {
-                display: none;
-                color: red;
-            }
-        ]]></style>
-    </head>
-    <body>
-        <p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
-
-        <div id="reference-overlapped-red"></div>
-        <div class="test-grid-overlapping-green two-columns">
-            <span>it</span>
-            <span class="display-none-red">hidden</span>
-            <span>em</span>
-        </div>
-
-    </body>
-</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-items-inline-blocks-001.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-items-inline-blocks-001.html
new file mode 100644
index 0000000..4b15d0b8
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-items-inline-blocks-001.html
@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Grid Layout Test: Paint order of grid items is the same as inline blocks</title>
+<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
+<link rel="help" href="http://www.w3.org/TR/css-grid-1/#z-order" title="9.5 Z-axis Ordering: the z-index property">
+<link rel="help" href="http://www.w3.org/TR/CSS2/zindex.html#painting-order" title="E.2 Painting order">
+<link rel="match" href="../../reference/ref-filled-green-100px-square.xht">
+<style>
+  #grid {
+    display: grid;
+  }
+
+  #reference-overlapped-red {
+    color: red;
+    font: 100px/1 Ahem;
+    grid-row: 1;
+    grid-column: 1;
+  }
+
+  #test-overlapping-green {
+    background-color: green;
+    width: 100px;
+    height: 100px;
+    grid-row: 1;
+    grid-column: 1;
+  }
+</style>
+<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
+
+<div id="grid">
+  <div id="reference-overlapped-red">R</div>
+  <div id="test-overlapping-green"></div>
+</div>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-items-inline-blocks-001.xht b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-items-inline-blocks-001.xht
deleted file mode 100644
index 90c7520..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-items-inline-blocks-001.xht
+++ /dev/null
@@ -1,38 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-    <head>
-        <title>CSS Grid Layout Test: Paint order of grid items is the same as inline blocks</title>
-        <link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com" />
-        <link rel="help" href="http://www.w3.org/TR/css-grid-1/#z-order" title="9.5 Z-axis Ordering: the z-index property" />
-        <link rel="help" href="http://www.w3.org/TR/CSS2/zindex.html#painting-order" title="E.2 Painting order" />
-        <link rel="match" href="../../reference/ref-filled-green-100px-square.xht" />
-        <style type="text/css"><![CDATA[
-            #grid {
-                display: grid;
-            }
-
-            #reference-overlapped-red {
-                color: red;
-                font: 100px/1 Ahem;
-                grid-row: 1;
-                grid-column: 1;
-            }
-
-            #test-overlapping-green {
-                background-color: green;
-                width: 100px;
-                height: 100px;
-                grid-row: 1;
-                grid-column: 1;
-            }
-        ]]></style>
-    </head>
-    <body>
-        <p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
-
-        <div id="grid">
-            <div id="reference-overlapped-red">R</div>
-            <div id="test-overlapping-green"></div>
-        </div>
-    </body>
-</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-minimum-size-grid-items-001.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-minimum-size-grid-items-001.html
new file mode 100644
index 0000000..46abffd
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-minimum-size-grid-items-001.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Grid Layout Test: Minimum size of grid items</title>
+<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
+<link rel="help" href="http://www.w3.org/TR/css-grid-1/#min-size-auto" title="6.6. Implied Minimum Size of Grid Items">
+<link rel="match" href="../../reference/ref-filled-green-100px-square.xht">
+<meta name="flags" content="ahem">
+<meta name="assert" content="Checks that minimum size for grid items is the content size.">
+<style>
+  #reference-overlapped-red {
+    position: absolute;
+    background-color: red;
+    width: 100px;
+    height: 100px;
+    z-index: -1;
+  }
+
+  #constrained-grid {
+    display: grid;
+    width: 10px;
+    height: 10px;
+  }
+
+  #test-grid-item-overlapping-green {
+    color: green;
+    background-color: green;
+    font: 50px/1 Ahem;
+  }
+</style>
+<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
+
+<div id="reference-overlapped-red"></div>
+<div id="constrained-grid">
+  <div id="test-grid-item-overlapping-green">IT E</div>
+</div>
+
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-minimum-size-grid-items-001.xht b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-minimum-size-grid-items-001.xht
deleted file mode 100644
index b625c9f..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-minimum-size-grid-items-001.xht
+++ /dev/null
@@ -1,41 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-    <head>
-        <title>CSS Grid Layout Test: Minimum size of grid items</title>
-        <link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com" />
-        <link rel="help" href="http://www.w3.org/TR/css-grid-1/#min-size-auto" title="6.6. Implied Minimum Size of Grid Items" />
-        <link rel="match" href="../../reference/ref-filled-green-100px-square.xht" />
-        <meta name="flags" content="ahem" />
-        <meta name="assert" content="Checks that minimum size for grid items is the content size." />
-        <style type="text/css"><![CDATA[
-            #reference-overlapped-red {
-                position: absolute;
-                background-color: red;
-                width: 100px;
-                height: 100px;
-                z-index: -1;
-            }
-
-            #constrained-grid {
-                display: grid;
-                width: 10px;
-                height: 10px;
-            }
-
-            #test-grid-item-overlapping-green {
-                color: green;
-                background-color: green;
-                font: 50px/1 Ahem;
-            }
-        ]]></style>
-    </head>
-    <body>
-        <p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
-
-        <div id="reference-overlapped-red"></div>
-        <div id="constrained-grid">
-            <div id="test-grid-item-overlapping-green">IT E</div>
-        </div>
-
-    </body>
-</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-minimum-size-grid-items-002.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-minimum-size-grid-items-002.html
new file mode 100644
index 0000000..39b9d03
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-minimum-size-grid-items-002.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Grid Layout Test: Minimum size of grid items</title>
+<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
+<link rel="help" href="http://www.w3.org/TR/css-grid-1/#min-size-auto" title="6.6. Implied Minimum Size of Grid Items">
+<link rel="match" href="../../reference/ref-filled-green-100px-square.xht">
+<meta name="assert" content="Checks that minimum size for grid items is the content size.">
+<style>
+  #reference-overlapped-red {
+    position: absolute;
+    background-color: red;
+    width: 100px;
+    height: 100px;
+    z-index: -1;
+  }
+
+  #constrained-grid {
+    display: grid;
+    width: 10px;
+    height: 10px;
+  }
+
+  #test-grid-item-overlapping-green {
+    background-color: green;
+  }
+
+  #content-100x100 {
+    width: 100px;
+    height: 100px;
+  }
+</style>
+<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
+
+<div id="reference-overlapped-red"></div>
+<div id="constrained-grid">
+  <div id="test-grid-item-overlapping-green">
+    <div id="content-100x100"></div>
+  </div>
+</div>
+
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-minimum-size-grid-items-002.xht b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-minimum-size-grid-items-002.xht
deleted file mode 100644
index 1adb1a60..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-minimum-size-grid-items-002.xht
+++ /dev/null
@@ -1,45 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-    <head>
-        <title>CSS Grid Layout Test: Minimum size of grid items</title>
-        <link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com" />
-        <link rel="help" href="http://www.w3.org/TR/css-grid-1/#min-size-auto" title="6.6. Implied Minimum Size of Grid Items" />
-        <link rel="match" href="../../reference/ref-filled-green-100px-square.xht" />
-        <meta name="assert" content="Checks that minimum size for grid items is the content size." />
-        <style type="text/css"><![CDATA[
-            #reference-overlapped-red {
-                position: absolute;
-                background-color: red;
-                width: 100px;
-                height: 100px;
-                z-index: -1;
-            }
-
-            #constrained-grid {
-                display: grid;
-                width: 10px;
-                height: 10px;
-            }
-
-            #test-grid-item-overlapping-green {
-                background-color: green;
-            }
-
-            #content-100x100 {
-                width: 100px;
-                height: 100px;
-            }
-        ]]></style>
-    </head>
-    <body>
-        <p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
-
-        <div id="reference-overlapped-red"></div>
-        <div id="constrained-grid">
-            <div id="test-grid-item-overlapping-green">
-                <div id="content-100x100"></div>
-            </div>
-        </div>
-
-    </body>
-</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-minimum-size-grid-items-003.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-minimum-size-grid-items-003.html
new file mode 100644
index 0000000..19ea84c5
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-minimum-size-grid-items-003.html
@@ -0,0 +1,42 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Grid Layout Test: Minimum size of grid items</title>
+<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
+<link rel="help" href="http://www.w3.org/TR/css-grid-1/#min-size-auto" title="6.6. Implied Minimum Size of Grid Items">
+<link rel="match" href="../../reference/ref-filled-green-100px-square.xht">
+<meta name="assert" content="Checks that minimum size for grid items is the specified size regardless of the content size.">
+<style>
+  #reference-overlapped-red {
+    position: absolute;
+    background-color: red;
+    width: 100px;
+    height: 100px;
+    z-index: -1;
+  }
+
+  #constrained-grid {
+    display: grid;
+    width: 10px;
+    height: 10px;
+  }
+
+  #test-grid-item-overlapping-green {
+    background-color: green;
+    width: 100px;
+    height: 100px;
+  }
+
+  #content-500x500 {
+    width: 500px;
+    height: 500px;
+  }
+</style>
+<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
+
+<div id="reference-overlapped-red"></div>
+<div id="constrained-grid">
+  <div id="test-grid-item-overlapping-green">
+    <div id="content-500x500"></div>
+  </div>
+</div>
+
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-minimum-size-grid-items-003.xht b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-minimum-size-grid-items-003.xht
deleted file mode 100644
index 0e198e0e..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-minimum-size-grid-items-003.xht
+++ /dev/null
@@ -1,47 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-    <head>
-        <title>CSS Grid Layout Test: Minimum size of grid items</title>
-        <link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com" />
-        <link rel="help" href="http://www.w3.org/TR/css-grid-1/#min-size-auto" title="6.6. Implied Minimum Size of Grid Items" />
-        <link rel="match" href="../../reference/ref-filled-green-100px-square.xht" />
-        <meta name="assert" content="Checks that minimum size for grid items is the specified size regardless of the content size." />
-        <style type="text/css"><![CDATA[
-            #reference-overlapped-red {
-                position: absolute;
-                background-color: red;
-                width: 100px;
-                height: 100px;
-                z-index: -1;
-            }
-
-            #constrained-grid {
-                display: grid;
-                width: 10px;
-                height: 10px;
-            }
-
-            #test-grid-item-overlapping-green {
-                background-color: green;
-                width: 100px;
-                height: 100px;
-            }
-
-            #content-500x500 {
-                width: 500px;
-                height: 500px;
-            }
-        ]]></style>
-    </head>
-    <body>
-        <p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
-
-        <div id="reference-overlapped-red"></div>
-        <div id="constrained-grid">
-            <div id="test-grid-item-overlapping-green">
-                <div id="content-500x500"></div>
-            </div>
-        </div>
-
-    </body>
-</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-minimum-size-grid-items-004.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-minimum-size-grid-items-004.html
new file mode 100644
index 0000000..3476465
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-minimum-size-grid-items-004.html
@@ -0,0 +1,42 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Grid Layout Test: Minimum size of grid items</title>
+<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
+<link rel="help" href="http://www.w3.org/TR/css-grid-1/#min-size-auto" title="6.6. Implied Minimum Size of Grid Items">
+<link rel="match" href="../../reference/ref-filled-green-100px-square.xht">
+<meta name="assert" content="Checks that minimum size for grid items is the specified size regardless of the content size.">
+<style>
+  #reference-overlapped-red {
+    position: absolute;
+    background-color: red;
+    width: 100px;
+    height: 100px;
+    z-index: -1;
+  }
+
+  #constrained-grid {
+    display: grid;
+    width: 10px;
+    height: 10px;
+  }
+
+  #test-grid-item-overlapping-green {
+    background-color: green;
+    width: 100px;
+    height: 100px;
+  }
+
+  #content-50x50 {
+    width: 50px;
+    height: 50px;
+  }
+</style>
+<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
+
+<div id="reference-overlapped-red"></div>
+<div id="constrained-grid">
+  <div id="test-grid-item-overlapping-green">
+    <div id="content-50x50"></div>
+  </div>
+</div>
+
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-minimum-size-grid-items-004.xht b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-minimum-size-grid-items-004.xht
deleted file mode 100644
index 683dd64..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-minimum-size-grid-items-004.xht
+++ /dev/null
@@ -1,47 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-    <head>
-        <title>CSS Grid Layout Test: Minimum size of grid items</title>
-        <link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com" />
-        <link rel="help" href="http://www.w3.org/TR/css-grid-1/#min-size-auto" title="6.6. Implied Minimum Size of Grid Items" />
-        <link rel="match" href="../../reference/ref-filled-green-100px-square.xht" />
-        <meta name="assert" content="Checks that minimum size for grid items is the specified size regardless of the content size." />
-        <style type="text/css"><![CDATA[
-            #reference-overlapped-red {
-                position: absolute;
-                background-color: red;
-                width: 100px;
-                height: 100px;
-                z-index: -1;
-            }
-
-            #constrained-grid {
-                display: grid;
-                width: 10px;
-                height: 10px;
-            }
-
-            #test-grid-item-overlapping-green {
-                background-color: green;
-                width: 100px;
-                height: 100px;
-            }
-
-            #content-50x50 {
-                width: 50px;
-                height: 50px;
-            }
-        ]]></style>
-    </head>
-    <body>
-        <p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
-
-        <div id="reference-overlapped-red"></div>
-        <div id="constrained-grid">
-            <div id="test-grid-item-overlapping-green">
-                <div id="content-50x50"></div>
-            </div>
-        </div>
-
-    </body>
-</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-minimum-size-grid-items-005.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-minimum-size-grid-items-005.html
new file mode 100644
index 0000000..d7ac67a
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-minimum-size-grid-items-005.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Grid Layout Test: Minimum size of grid items</title>
+<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
+<link rel="help" href="http://www.w3.org/TR/css-grid-1/#min-size-auto" title="6.6. Implied Minimum Size of Grid Items">
+<link rel="match" href="ref-filled-green-100px-square-image.html">
+<meta name="flags" content="image">
+<meta name="assert" content="Checks that minimum size for grid items is the content size.">
+<style>
+  #reference-overlapped-red {
+    position: absolute;
+    background-color: red;
+    width: 100px;
+    height: 100px;
+    z-index: -1;
+  }
+
+  #constrained-grid {
+    display: grid;
+    width: 10px;
+    height: 10px;
+  }
+</style>
+<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
+
+<div id="reference-overlapped-red"></div>
+<div id="constrained-grid">
+  <img src="support/100x100-green.png" alt="Image download support must be enabled" />
+</div>
+
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-minimum-size-grid-items-005.xht b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-minimum-size-grid-items-005.xht
deleted file mode 100644
index d9b0bf8..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-minimum-size-grid-items-005.xht
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-    <head>
-        <title>CSS Grid Layout Test: Minimum size of grid items</title>
-        <link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com" />
-        <link rel="help" href="http://www.w3.org/TR/css-grid-1/#min-size-auto" title="6.6. Implied Minimum Size of Grid Items" />
-        <link rel="match" href="ref-filled-green-100px-square-image.html" />
-        <meta name="flags" content="image" />
-        <meta name="assert" content="Checks that minimum size for grid items is the content size." />
-        <style type="text/css"><![CDATA[
-            #reference-overlapped-red {
-                position: absolute;
-                background-color: red;
-                width: 100px;
-                height: 100px;
-                z-index: -1;
-            }
-
-            #constrained-grid {
-                display: grid;
-                width: 10px;
-                height: 10px;
-            }
-        ]]></style>
-    </head>
-    <body>
-        <p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
-
-        <div id="reference-overlapped-red"></div>
-        <div id="constrained-grid">
-            <img src="support/100x100-green.png" alt="Image download support must be enabled" />
-        </div>
-
-    </body>
-</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-minimum-size-grid-items-006.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-minimum-size-grid-items-006.html
new file mode 100644
index 0000000..1f0086e
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-minimum-size-grid-items-006.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Grid Layout Test: Minimum size of grid items</title>
+<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
+<link rel="help" href="http://www.w3.org/TR/css-grid-1/#min-size-auto" title="6.6. Implied Minimum Size of Grid Items">
+<link rel="match" href="ref-filled-green-100px-square-image.html">
+<meta name="flags" content="image">
+<meta name="assert" content="Checks that minimum size for grid items is the specified size for width (regardless the content size) and the transferred size for height (as it's smaller than the content size of the image).">
+<style>
+  #reference-overlapped-red {
+    position: absolute;
+    background-color: red;
+    width: 100px;
+    height: 100px;
+    z-index: -1;
+  }
+
+  #constrained-grid {
+    display: grid;
+    width: 10px;
+    height: 10px;
+  }
+
+  #test-grid-item-overlapping-green {
+    width: 100px;
+  }
+</style>
+<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
+
+<div id="reference-overlapped-red"></div>
+<div id="constrained-grid">
+  <img id="test-grid-item-overlapping-green" src="support/200x200-green.png" alt="Image download support must be enabled" />
+</div>
+
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-minimum-size-grid-items-006.xht b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-minimum-size-grid-items-006.xht
deleted file mode 100644
index 2aa8582..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-minimum-size-grid-items-006.xht
+++ /dev/null
@@ -1,39 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-    <head>
-        <title>CSS Grid Layout Test: Minimum size of grid items</title>
-        <link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com" />
-        <link rel="help" href="http://www.w3.org/TR/css-grid-1/#min-size-auto" title="6.6. Implied Minimum Size of Grid Items" />
-        <link rel="match" href="ref-filled-green-100px-square-image.html" />
-        <meta name="flags" content="image" />
-        <meta name="assert" content="Checks that minimum size for grid items is the specified size for width (regardless the content size) and the transferred size for height (as it's smaller than the content size of the image)." />
-        <style type="text/css"><![CDATA[
-            #reference-overlapped-red {
-                position: absolute;
-                background-color: red;
-                width: 100px;
-                height: 100px;
-                z-index: -1;
-            }
-
-            #constrained-grid {
-                display: grid;
-                width: 10px;
-                height: 10px;
-            }
-
-            #test-grid-item-overlapping-green {
-                width: 100px;
-            }
-        ]]></style>
-    </head>
-    <body>
-        <p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
-
-        <div id="reference-overlapped-red"></div>
-        <div id="constrained-grid">
-            <img id="test-grid-item-overlapping-green" src="support/200x200-green.png" alt="Image download support must be enabled" />
-        </div>
-
-    </body>
-</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-minimum-size-grid-items-007.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-minimum-size-grid-items-007.html
new file mode 100644
index 0000000..6f13d8b
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-minimum-size-grid-items-007.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Grid Layout Test: Minimum size of grid items</title>
+<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
+<link rel="help" href="http://www.w3.org/TR/css-grid-1/#min-size-auto" title="6.6. Implied Minimum Size of Grid Items">
+<link rel="match" href="ref-filled-green-100px-square-image.html">
+<meta name="flags" content="image">
+<meta name="assert" content="Checks that minimum size for grid items is the specified size for width (regardless the content size) and the content size for height (as it's smaller than the transferred size of the image).">
+<style>
+  #reference-overlapped-red {
+    position: absolute;
+    background-color: red;
+    width: 100px;
+    height: 100px;
+    z-index: -1;
+  }
+
+  #constrained-grid {
+    display: grid;
+    width: 10px;
+    height: 10px;
+  }
+
+  #test-grid-item-overlapping-green {
+    width: 100px;
+    justify-self: stretch;
+    align-self: stretch;
+  }
+</style>
+<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
+
+<div id="reference-overlapped-red"></div>
+<div id="constrained-grid">
+  <img id="test-grid-item-overlapping-green" src="support/50x100-green.png" alt="Image download support must be enabled" />
+</div>
+
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-minimum-size-grid-items-007.xht b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-minimum-size-grid-items-007.xht
deleted file mode 100644
index e5376d52..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-minimum-size-grid-items-007.xht
+++ /dev/null
@@ -1,41 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-    <head>
-        <title>CSS Grid Layout Test: Minimum size of grid items</title>
-        <link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com" />
-        <link rel="help" href="http://www.w3.org/TR/css-grid-1/#min-size-auto" title="6.6. Implied Minimum Size of Grid Items" />
-        <link rel="match" href="ref-filled-green-100px-square-image.html" />
-        <meta name="flags" content="image" />
-        <meta name="assert" content="Checks that minimum size for grid items is the specified size for width (regardless the content size) and the content size for height (as it's smaller than the transferred size of the image)." />
-        <style type="text/css"><![CDATA[
-            #reference-overlapped-red {
-                position: absolute;
-                background-color: red;
-                width: 100px;
-                height: 100px;
-                z-index: -1;
-            }
-
-            #constrained-grid {
-                display: grid;
-                width: 10px;
-                height: 10px;
-            }
-
-            #test-grid-item-overlapping-green {
-                width: 100px;
-                justify-self: stretch;
-                align-self: stretch;
-            }
-        ]]></style>
-    </head>
-    <body>
-        <p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
-
-        <div id="reference-overlapped-red"></div>
-        <div id="constrained-grid">
-            <img id="test-grid-item-overlapping-green" src="support/50x100-green.png" alt="Image download support must be enabled" />
-        </div>
-
-    </body>
-</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-minimum-size-grid-items-008.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-minimum-size-grid-items-008.html
new file mode 100644
index 0000000..b69070c
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-minimum-size-grid-items-008.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Grid Layout Test: Minimum size of grid items</title>
+<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
+<link rel="help" href="http://www.w3.org/TR/css-grid-1/#min-size-auto" title="6.6. Implied Minimum Size of Grid Items">
+<link rel="match" href="ref-filled-green-100px-square-image.html">
+<meta name="flags" content="image">
+<meta name="assert" content="Checks that minimum size for grid items is the specified size for height (regardless the content size) and the transferred size for width (as it's smaller than the content size of the image).">
+<style>
+  #reference-overlapped-red {
+    position: absolute;
+    background-color: red;
+    width: 100px;
+    height: 100px;
+    z-index: -1;
+  }
+
+  #constrained-grid {
+    display: grid;
+    width: 10px;
+    height: 10px;
+  }
+
+  #test-grid-item-overlapping-green {
+    height: 100px;
+  }
+</style>
+<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
+
+<div id="reference-overlapped-red"></div>
+<div id="constrained-grid">
+  <img id="test-grid-item-overlapping-green" src="support/200x200-green.png" alt="Image download support must be enabled" />
+</div>
+
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-minimum-size-grid-items-008.xht b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-minimum-size-grid-items-008.xht
deleted file mode 100644
index 304ba2e..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-minimum-size-grid-items-008.xht
+++ /dev/null
@@ -1,39 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-    <head>
-        <title>CSS Grid Layout Test: Minimum size of grid items</title>
-        <link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com" />
-        <link rel="help" href="http://www.w3.org/TR/css-grid-1/#min-size-auto" title="6.6. Implied Minimum Size of Grid Items" />
-        <link rel="match" href="ref-filled-green-100px-square-image.html" />
-        <meta name="flags" content="image" />
-        <meta name="assert" content="Checks that minimum size for grid items is the specified size for height (regardless the content size) and the transferred size for width (as it's smaller than the content size of the image)." />
-        <style type="text/css"><![CDATA[
-            #reference-overlapped-red {
-                position: absolute;
-                background-color: red;
-                width: 100px;
-                height: 100px;
-                z-index: -1;
-            }
-
-            #constrained-grid {
-                display: grid;
-                width: 10px;
-                height: 10px;
-            }
-
-            #test-grid-item-overlapping-green {
-                height: 100px;
-            }
-        ]]></style>
-    </head>
-    <body>
-        <p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
-
-        <div id="reference-overlapped-red"></div>
-        <div id="constrained-grid">
-            <img id="test-grid-item-overlapping-green" src="support/200x200-green.png" alt="Image download support must be enabled" />
-        </div>
-
-    </body>
-</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-minimum-size-grid-items-009.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-minimum-size-grid-items-009.html
new file mode 100644
index 0000000..e0239cf
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-minimum-size-grid-items-009.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Grid Layout Test: Minimum size of grid items</title>
+<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
+<link rel="help" href="http://www.w3.org/TR/css-grid-1/#min-size-auto" title="6.6. Implied Minimum Size of Grid Items">
+<link rel="match" href="ref-filled-green-100px-square-image.html">
+<meta name="flags" content="image">
+<meta name="assert" content="Checks that minimum size for grid items is the specified size for height (regardless the content size) and the content size for width (as it's smaller than the transferred size of the image).">
+<style>
+  #reference-overlapped-red {
+    position: absolute;
+    background-color: red;
+    width: 100px;
+    height: 100px;
+    z-index: -1;
+  }
+
+  #constrained-grid {
+    display: grid;
+    width: 10px;
+    height: 10px;
+  }
+
+  #test-grid-item-overlapping-green {
+    height: 100px;
+    justify-self: stretch;
+    align-self: stretch;
+  }
+</style>
+<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
+
+<div id="reference-overlapped-red"></div>
+<div id="constrained-grid">
+  <img id="test-grid-item-overlapping-green" src="support/100x50-green.png" alt="Image download support must be enabled" />
+</div>
+
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-minimum-size-grid-items-009.xht b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-minimum-size-grid-items-009.xht
deleted file mode 100644
index 2e20304..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-minimum-size-grid-items-009.xht
+++ /dev/null
@@ -1,41 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-    <head>
-        <title>CSS Grid Layout Test: Minimum size of grid items</title>
-        <link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com" />
-        <link rel="help" href="http://www.w3.org/TR/css-grid-1/#min-size-auto" title="6.6. Implied Minimum Size of Grid Items" />
-        <link rel="match" href="ref-filled-green-100px-square-image.html" />
-        <meta name="flags" content="image" />
-        <meta name="assert" content="Checks that minimum size for grid items is the specified size for height (regardless the content size) and the content size for width (as it's smaller than the transferred size of the image)." />
-        <style type="text/css"><![CDATA[
-            #reference-overlapped-red {
-                position: absolute;
-                background-color: red;
-                width: 100px;
-                height: 100px;
-                z-index: -1;
-            }
-
-            #constrained-grid {
-                display: grid;
-                width: 10px;
-                height: 10px;
-            }
-
-            #test-grid-item-overlapping-green {
-                height: 100px;
-                justify-self: stretch;
-                align-self: stretch;
-            }
-        ]]></style>
-    </head>
-    <body>
-        <p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
-
-        <div id="reference-overlapped-red"></div>
-        <div id="constrained-grid">
-            <img id="test-grid-item-overlapping-green" src="support/100x50-green.png" alt="Image download support must be enabled" />
-        </div>
-
-    </body>
-</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-order-property-auto-placement-001.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-order-property-auto-placement-001.html
new file mode 100644
index 0000000..8928fa1a
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-order-property-auto-placement-001.html
@@ -0,0 +1,54 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Grid Layout Test: 'order' property affects grid items auto-placement position</title>
+<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
+<link rel="help" href="http://www.w3.org/TR/css-grid-1/#order-property" title="4.2 Reordered Grid Items: the order property">
+<link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#order-property" title="5.4. Display Order: the order property">
+<link rel="match" href="../reference/grid-2x2-blue-yellow-lime-magenta.html">
+<meta name="flags" content="ahem">
+<style>
+  #reference-overlapped-red {
+    position: absolute;
+    background-color: red;
+    width: 100px;
+    height: 100px;
+    z-index: -1;
+  }
+
+  #grid {
+    display: grid;
+    font: 50px/1 Ahem;
+    grid-template-columns: auto auto;
+    justify-content: start;
+    align-content: start;
+  }
+
+  #blue {
+    color: blue;
+  }
+
+  #yellow {
+    color: yellow;
+    order: 1;
+  }
+
+  #lime {
+    color: lime;
+    order: 5;
+  }
+
+  #magenta {
+    color: magenta;
+    order: 10;
+  }
+</style>
+<p>Test passes if there are four filled squares with the same size and <strong>no red</strong>.</p>
+<p>Blue and yellow squares in the first line; lime and magenta squares in the second line (exactly in this order).</p>
+
+<div id="reference-overlapped-red"></div>
+<div id="grid">
+  <div id="magenta">M</div>
+  <div id="lime">L</div>
+  <div id="yellow">Y</div>
+  <div id="blue">B</div>
+</div>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-order-property-auto-placement-001.xht b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-order-property-auto-placement-001.xht
deleted file mode 100644
index 138668f..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-order-property-auto-placement-001.xht
+++ /dev/null
@@ -1,59 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-    <head>
-        <title>CSS Grid Layout Test: 'order' property affects grid items auto-placement position</title>
-        <link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com" />
-        <link rel="help" href="http://www.w3.org/TR/css-grid-1/#order-property" title="4.2 Reordered Grid Items: the order property" />
-        <link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#order-property" title="5.4. Display Order: the order property" />
-        <link rel="match" href="../reference/grid-2x2-blue-yellow-lime-magenta.xht" />
-        <meta name="flags" content="ahem" />
-        <style type="text/css"><![CDATA[
-            #reference-overlapped-red {
-                position: absolute;
-                background-color: red;
-                width: 100px;
-                height: 100px;
-                z-index: -1;
-            }
-
-            #grid {
-                display: grid;
-                font: 50px/1 Ahem;
-                grid-template-columns: auto auto;
-                justify-content: start;
-                align-content: start;
-            }
-
-            #blue {
-                color: blue;
-            }
-
-            #yellow {
-                color: yellow;
-                order: 1;
-            }
-
-            #lime {
-                color: lime;
-                order: 5;
-            }
-
-            #magenta {
-                color: magenta;
-                order: 10;
-            }
-        ]]></style>
-    </head>
-    <body>
-        <p>Test passes if there are four filled squares with the same size and <strong>no red</strong>.</p>
-        <p>Blue and yellow squares in the first line; lime and magenta squares in the second line (exactly in this order).</p>
-
-        <div id="reference-overlapped-red"></div>
-        <div id="grid">
-            <div id="magenta">M</div>
-            <div id="lime">L</div>
-            <div id="yellow">Y</div>
-            <div id="blue">B</div>
-        </div>
-    </body>
-</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-order-property-auto-placement-002.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-order-property-auto-placement-002.html
new file mode 100644
index 0000000..3482592
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-order-property-auto-placement-002.html
@@ -0,0 +1,54 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Grid Layout Test: 'order' property affects grid items auto-placement position</title>
+<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
+<link rel="help" href="http://www.w3.org/TR/css-grid-1/#order-property" title="4.2 Reordered Grid Items: the order property">
+<link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#order-property" title="5.4. Display Order: the order property">
+<link rel="match" href="../reference/grid-2x2-blue-yellow-lime-magenta.html">
+<meta name="flags" content="ahem">
+<style>
+  #reference-overlapped-red {
+    position: absolute;
+    background-color: red;
+    width: 100px;
+    height: 100px;
+    z-index: -1;
+  }
+
+  #grid {
+    display: grid;
+    font: 50px/1 Ahem;
+    grid-template-columns: auto auto;
+    justify-content: start;
+    align-content: start;
+  }
+
+  #blue {
+    color: blue;
+    order: -10;
+  }
+
+  #yellow {
+    color: yellow;
+    order: -5;
+  }
+
+  #lime {
+    color: lime;
+    order: -1;
+  }
+
+  #magenta {
+    color: magenta;
+  }
+</style>
+<p>Test passes if there are four filled squares with the same size and <strong>no red</strong>.</p>
+<p>Blue and yellow squares in the first line; lime and magenta squares in the second line (exactly in this order).</p>
+
+<div id="reference-overlapped-red"></div>
+<div id="grid">
+  <div id="magenta">M</div>
+  <div id="lime">L</div>
+  <div id="yellow">Y</div>
+  <div id="blue">B</div>
+</div>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-order-property-auto-placement-002.xht b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-order-property-auto-placement-002.xht
deleted file mode 100644
index a3948fa..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-order-property-auto-placement-002.xht
+++ /dev/null
@@ -1,59 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-    <head>
-        <title>CSS Grid Layout Test: 'order' property affects grid items auto-placement position</title>
-        <link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com" />
-        <link rel="help" href="http://www.w3.org/TR/css-grid-1/#order-property" title="4.2 Reordered Grid Items: the order property" />
-        <link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#order-property" title="5.4. Display Order: the order property" />
-        <link rel="match" href="../reference/grid-2x2-blue-yellow-lime-magenta.xht" />
-        <meta name="flags" content="ahem" />
-        <style type="text/css"><![CDATA[
-            #reference-overlapped-red {
-                position: absolute;
-                background-color: red;
-                width: 100px;
-                height: 100px;
-                z-index: -1;
-            }
-
-            #grid {
-                display: grid;
-                font: 50px/1 Ahem;
-                grid-template-columns: auto auto;
-                justify-content: start;
-                align-content: start;
-            }
-
-            #blue {
-                color: blue;
-                order: -10;
-            }
-
-            #yellow {
-                color: yellow;
-                order: -5;
-            }
-
-            #lime {
-                color: lime;
-                order: -1;
-            }
-
-            #magenta {
-                color: magenta;
-            }
-        ]]></style>
-    </head>
-    <body>
-        <p>Test passes if there are four filled squares with the same size and <strong>no red</strong>.</p>
-        <p>Blue and yellow squares in the first line; lime and magenta squares in the second line (exactly in this order).</p>
-
-        <div id="reference-overlapped-red"></div>
-        <div id="grid">
-            <div id="magenta">M</div>
-            <div id="lime">L</div>
-            <div id="yellow">Y</div>
-            <div id="blue">B</div>
-        </div>
-    </body>
-</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-order-property-auto-placement-003.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-order-property-auto-placement-003.html
new file mode 100644
index 0000000..811b1d9
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-order-property-auto-placement-003.html
@@ -0,0 +1,54 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Grid Layout Test: 'order' property affects grid items auto-placement position</title>
+<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
+<link rel="help" href="http://www.w3.org/TR/css-grid-1/#order-property" title="4.2 Reordered Grid Items: the order property">
+<link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#order-property" title="5.4. Display Order: the order property">
+<link rel="match" href="../reference/grid-2x2-blue-yellow-lime-magenta.html">
+<meta name="flags" content="ahem">
+<style>
+  #reference-overlapped-red {
+    position: absolute;
+    background-color: red;
+    width: 100px;
+    height: 100px;
+    z-index: -1;
+  }
+
+  #grid {
+    display: grid;
+    font: 50px/1 Ahem;
+    grid-template-columns: auto auto;
+    justify-content: start;
+    align-content: start;
+  }
+
+  #blue {
+    color: blue;
+    order: -5;
+  }
+
+  #yellow {
+    color: yellow;
+    order: -5;
+  }
+
+  #lime {
+    color: lime;
+  }
+
+  #magenta {
+    color: magenta;
+    order: 1;
+  }
+</style>
+<p>Test passes if there are four filled squares with the same size and <strong>no red</strong>.</p>
+<p>Blue and yellow squares in the first line; lime and magenta squares in the second line (exactly in this order).</p>
+
+<div id="reference-overlapped-red"></div>
+<div id="grid">
+  <div id="lime">L</div>
+  <div id="magenta">M</div>
+  <div id="blue">B</div>
+  <div id="yellow">Y</div>
+</div>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-order-property-auto-placement-003.xht b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-order-property-auto-placement-003.xht
deleted file mode 100644
index 20adcda..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-order-property-auto-placement-003.xht
+++ /dev/null
@@ -1,59 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-    <head>
-        <title>CSS Grid Layout Test: 'order' property affects grid items auto-placement position</title>
-        <link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com" />
-        <link rel="help" href="http://www.w3.org/TR/css-grid-1/#order-property" title="4.2 Reordered Grid Items: the order property" />
-        <link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#order-property" title="5.4. Display Order: the order property" />
-        <link rel="match" href="../reference/grid-2x2-blue-yellow-lime-magenta.xht" />
-        <meta name="flags" content="ahem" />
-        <style type="text/css"><![CDATA[
-            #reference-overlapped-red {
-                position: absolute;
-                background-color: red;
-                width: 100px;
-                height: 100px;
-                z-index: -1;
-            }
-
-            #grid {
-                display: grid;
-                font: 50px/1 Ahem;
-                grid-template-columns: auto auto;
-                justify-content: start;
-                align-content: start;
-            }
-
-            #blue {
-                color: blue;
-                order: -5;
-            }
-
-            #yellow {
-                color: yellow;
-                order: -5;
-            }
-
-            #lime {
-                color: lime;
-            }
-
-            #magenta {
-                color: magenta;
-                order: 1;
-            }
-        ]]></style>
-    </head>
-    <body>
-        <p>Test passes if there are four filled squares with the same size and <strong>no red</strong>.</p>
-        <p>Blue and yellow squares in the first line; lime and magenta squares in the second line (exactly in this order).</p>
-
-        <div id="reference-overlapped-red"></div>
-        <div id="grid">
-            <div id="lime">L</div>
-            <div id="magenta">M</div>
-            <div id="blue">B</div>
-            <div id="yellow">Y</div>
-        </div>
-    </body>
-</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-order-property-auto-placement-004.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-order-property-auto-placement-004.html
new file mode 100644
index 0000000..83e62fd
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-order-property-auto-placement-004.html
@@ -0,0 +1,55 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Grid Layout Test: 'order' property affects grid items auto-placement position</title>
+<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
+<link rel="help" href="http://www.w3.org/TR/css-grid-1/#order-property" title="4.2 Reordered Grid Items: the order property">
+<link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#order-property" title="5.4. Display Order: the order property">
+<link rel="match" href="../reference/grid-2x2-blue-yellow-lime-magenta.html">
+<meta name="flags" content="ahem">
+<style>
+  #reference-overlapped-red {
+    position: absolute;
+    background-color: red;
+    width: 100px;
+    height: 100px;
+    z-index: -1;
+  }
+
+  #grid {
+    display: grid;
+    font: 50px/1 Ahem;
+    grid-template-columns: auto auto;
+    justify-content: start;
+    align-content: start;
+  }
+
+  #blue {
+    color: blue;
+    order: 1;
+  }
+
+  #yellow {
+    color: yellow;
+    order: 1;
+  }
+
+  #lime {
+    color: lime;
+    order: 5;
+  }
+
+  #magenta {
+    color: magenta;
+    order: 5;
+  }
+</style>
+<p>Test passes if there are four filled squares with the same size and <strong>no red</strong>.</p>
+<p>Blue and yellow squares in the first line; lime and magenta squares in the second line (exactly in this order).</p>
+
+<div id="reference-overlapped-red"></div>
+<div id="grid">
+  <div id="blue">B</div>
+  <div id="lime">L</div>
+  <div id="magenta">M</div>
+  <div id="yellow">Y</div>
+</div>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-order-property-auto-placement-004.xht b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-order-property-auto-placement-004.xht
deleted file mode 100644
index 283e5d72..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-order-property-auto-placement-004.xht
+++ /dev/null
@@ -1,60 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-    <head>
-        <title>CSS Grid Layout Test: 'order' property affects grid items auto-placement position</title>
-        <link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com" />
-        <link rel="help" href="http://www.w3.org/TR/css-grid-1/#order-property" title="4.2 Reordered Grid Items: the order property" />
-        <link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#order-property" title="5.4. Display Order: the order property" />
-        <link rel="match" href="../reference/grid-2x2-blue-yellow-lime-magenta.xht" />
-        <meta name="flags" content="ahem" />
-        <style type="text/css"><![CDATA[
-            #reference-overlapped-red {
-                position: absolute;
-                background-color: red;
-                width: 100px;
-                height: 100px;
-                z-index: -1;
-            }
-
-            #grid {
-                display: grid;
-                font: 50px/1 Ahem;
-                grid-template-columns: auto auto;
-                justify-content: start;
-                align-content: start;
-            }
-
-            #blue {
-                color: blue;
-                order: 1;
-            }
-
-            #yellow {
-                color: yellow;
-                order: 1;
-            }
-
-            #lime {
-                color: lime;
-                order: 5;
-            }
-
-            #magenta {
-                color: magenta;
-                order: 5;
-            }
-        ]]></style>
-    </head>
-    <body>
-        <p>Test passes if there are four filled squares with the same size and <strong>no red</strong>.</p>
-        <p>Blue and yellow squares in the first line; lime and magenta squares in the second line (exactly in this order).</p>
-
-        <div id="reference-overlapped-red"></div>
-        <div id="grid">
-            <div id="blue">B</div>
-            <div id="lime">L</div>
-            <div id="magenta">M</div>
-            <div id="yellow">Y</div>
-        </div>
-    </body>
-</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-order-property-auto-placement-005.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-order-property-auto-placement-005.html
new file mode 100644
index 0000000..cf99412
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-order-property-auto-placement-005.html
@@ -0,0 +1,55 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Grid Layout Test: 'order' property affects grid items auto-placement position</title>
+<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
+<link rel="help" href="http://www.w3.org/TR/css-grid-1/#order-property" title="4.2 Reordered Grid Items: the order property">
+<link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#order-property" title="5.4. Display Order: the order property">
+<link rel="match" href="../reference/grid-2x2-blue-yellow-lime-magenta.html">
+<meta name="flags" content="ahem">
+<style>
+  #reference-overlapped-red {
+    position: absolute;
+    background-color: red;
+    width: 100px;
+    height: 100px;
+    z-index: -1;
+  }
+
+  #grid {
+    display: grid;
+    font: 50px/1 Ahem;
+    grid-template-columns: auto auto;
+    justify-content: start;
+    align-content: start;
+  }
+
+  #blue {
+    color: blue;
+    order: -5;
+  }
+
+  #yellow {
+    color: yellow;
+    order: -1;
+  }
+
+  #lime {
+    color: lime;
+    order: 1;
+  }
+
+  #magenta {
+    color: magenta;
+    order: 5;
+  }
+</style>
+<p>Test passes if there are four filled squares with the same size and <strong>no red</strong>.</p>
+<p>Blue and yellow squares in the first line; lime and magenta squares in the second line (exactly in this order).</p>
+
+<div id="reference-overlapped-red"></div>
+<div id="grid">
+  <div id="yellow">Y</div>
+  <div id="magenta">M</div>
+  <div id="blue">B</div>
+  <div id="lime">L</div>
+</div>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-order-property-auto-placement-005.xht b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-order-property-auto-placement-005.xht
deleted file mode 100644
index 9b624b3ec..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-order-property-auto-placement-005.xht
+++ /dev/null
@@ -1,60 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-    <head>
-        <title>CSS Grid Layout Test: 'order' property affects grid items auto-placement position</title>
-        <link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com" />
-        <link rel="help" href="http://www.w3.org/TR/css-grid-1/#order-property" title="4.2 Reordered Grid Items: the order property" />
-        <link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#order-property" title="5.4. Display Order: the order property" />
-        <link rel="match" href="../reference/grid-2x2-blue-yellow-lime-magenta.xht" />
-        <meta name="flags" content="ahem" />
-        <style type="text/css"><![CDATA[
-            #reference-overlapped-red {
-                position: absolute;
-                background-color: red;
-                width: 100px;
-                height: 100px;
-                z-index: -1;
-            }
-
-            #grid {
-                display: grid;
-                font: 50px/1 Ahem;
-                grid-template-columns: auto auto;
-                justify-content: start;
-                align-content: start;
-            }
-
-            #blue {
-                color: blue;
-                order: -5;
-            }
-
-            #yellow {
-                color: yellow;
-                order: -1;
-            }
-
-            #lime {
-                color: lime;
-                order: 1;
-            }
-
-            #magenta {
-                color: magenta;
-                order: 5;
-            }
-        ]]></style>
-    </head>
-    <body>
-        <p>Test passes if there are four filled squares with the same size and <strong>no red</strong>.</p>
-        <p>Blue and yellow squares in the first line; lime and magenta squares in the second line (exactly in this order).</p>
-
-        <div id="reference-overlapped-red"></div>
-        <div id="grid">
-            <div id="yellow">Y</div>
-            <div id="magenta">M</div>
-            <div id="blue">B</div>
-            <div id="lime">L</div>
-        </div>
-    </body>
-</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-order-property-painting-001.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-order-property-painting-001.html
new file mode 100644
index 0000000..df6a0f5
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-order-property-painting-001.html
@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Grid Layout Test: 'order' property affects grid items painting order</title>
+<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
+<link rel="help" href="http://www.w3.org/TR/css-grid-1/#order-property" title="4.2 Reordered Grid Items: the order property">
+<link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#order-property" title="5.4. Display Order: the order property">
+<link rel="match" href="../../reference/ref-filled-green-100px-square.xht">
+<meta name="flags" content="ahem">
+<style>
+  #grid {
+    display: grid;
+    font: 100px/1 Ahem;
+  }
+
+  #test-item-overlapping-green {
+    color: green;
+    order: 1;
+  }
+
+  #reference-item-overlapped-red {
+    color: red;
+  }
+
+  .first-row-first-column {
+    grid-area: 1 / 1;
+  }
+</style>
+<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
+
+<div id="grid">
+  <div id="test-item-overlapping-green" class="first-row-first-column">G</div>
+  <div id="reference-item-overlapped-red" class="first-row-first-column">R</div>
+</div>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-order-property-painting-001.xht b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-order-property-painting-001.xht
deleted file mode 100644
index 0764753..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-order-property-painting-001.xht
+++ /dev/null
@@ -1,38 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-    <head>
-        <title>CSS Grid Layout Test: 'order' property affects grid items painting order</title>
-        <link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com" />
-        <link rel="help" href="http://www.w3.org/TR/css-grid-1/#order-property" title="4.2 Reordered Grid Items: the order property" />
-        <link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#order-property" title="5.4. Display Order: the order property" />
-        <link rel="match" href="../../reference/ref-filled-green-100px-square.xht" />
-        <meta name="flags" content="ahem" />
-        <style type="text/css"><![CDATA[
-            #grid {
-                display: grid;
-                font: 100px/1 Ahem;
-            }
-
-            #test-item-overlapping-green {
-                color: green;
-                order: 1;
-            }
-
-            #reference-item-overlapped-red {
-                color: red;
-            }
-
-            .first-row-first-column {
-                grid-area: 1 / 1;
-            }
-        ]]></style>
-    </head>
-    <body>
-        <p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
-
-        <div id="grid">
-            <div id="test-item-overlapping-green" class="first-row-first-column">G</div>
-            <div id="reference-item-overlapped-red" class="first-row-first-column">R</div>
-        </div>
-    </body>
-</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-order-property-painting-002.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-order-property-painting-002.html
new file mode 100644
index 0000000..0429c6f
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-order-property-painting-002.html
@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Grid Layout Test: 'order' property affects grid items painting order</title>
+<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
+<link rel="help" href="http://www.w3.org/TR/css-grid-1/#order-property" title="4.2 Reordered Grid Items: the order property">
+<link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#order-property" title="5.4. Display Order: the order property">
+<link rel="match" href="../../reference/ref-filled-green-100px-square.xht">
+<meta name="flags" content="ahem">
+<style>
+  #grid {
+    display: grid;
+    font: 100px/1 Ahem;
+  }
+
+  #test-item-overlapping-green {
+    color: green;
+  }
+
+  #reference-item-overlapped-red {
+    color: red;
+    order: -1;
+  }
+
+  .first-row-first-column {
+    grid-area: 1 / 1;
+  }
+</style>
+<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
+
+<div id="grid">
+  <div id="test-item-overlapping-green" class="first-row-first-column">G</div>
+  <div id="reference-item-overlapped-red" class="first-row-first-column">R</div>
+</div>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-order-property-painting-002.xht b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-order-property-painting-002.xht
deleted file mode 100644
index 634274a..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-order-property-painting-002.xht
+++ /dev/null
@@ -1,38 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-    <head>
-        <title>CSS Grid Layout Test: 'order' property affects grid items painting order</title>
-        <link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com" />
-        <link rel="help" href="http://www.w3.org/TR/css-grid-1/#order-property" title="4.2 Reordered Grid Items: the order property" />
-        <link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#order-property" title="5.4. Display Order: the order property" />
-        <link rel="match" href="../../reference/ref-filled-green-100px-square.xht" />
-        <meta name="flags" content="ahem" />
-        <style type="text/css"><![CDATA[
-            #grid {
-                display: grid;
-                font: 100px/1 Ahem;
-            }
-
-            #test-item-overlapping-green {
-                color: green;
-            }
-
-            #reference-item-overlapped-red {
-                color: red;
-                order: -1;
-            }
-
-            .first-row-first-column {
-                grid-area: 1 / 1;
-            }
-        ]]></style>
-    </head>
-    <body>
-        <p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
-
-        <div id="grid">
-            <div id="test-item-overlapping-green" class="first-row-first-column">G</div>
-            <div id="reference-item-overlapped-red" class="first-row-first-column">R</div>
-        </div>
-    </body>
-</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-order-property-painting-003.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-order-property-painting-003.html
new file mode 100644
index 0000000..8dc22cf
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-order-property-painting-003.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Grid Layout Test: 'order' property affects grid items painting order</title>
+<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
+<link rel="help" href="http://www.w3.org/TR/css-grid-1/#order-property" title="4.2 Reordered Grid Items: the order property">
+<link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#order-property" title="5.4. Display Order: the order property">
+<link rel="match" href="../../reference/ref-filled-green-100px-square.xht">
+<meta name="flags" content="ahem">
+<style>
+  #grid {
+    display: grid;
+    font: 100px/1 Ahem;
+  }
+
+  #test-item-overlapping-green {
+    color: green;
+    order: 10;
+  }
+
+  #reference-item-overlapped-red {
+    color: red;
+    order: 5;
+  }
+
+  .first-row-first-column {
+    grid-area: 1 / 1;
+  }
+</style>
+<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
+
+<div id="grid">
+  <div id="test-item-overlapping-green" class="first-row-first-column">G</div>
+  <div id="reference-item-overlapped-red" class="first-row-first-column">R</div>
+</div>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-order-property-painting-003.xht b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-order-property-painting-003.xht
deleted file mode 100644
index 3655849..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-order-property-painting-003.xht
+++ /dev/null
@@ -1,39 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-    <head>
-        <title>CSS Grid Layout Test: 'order' property affects grid items painting order</title>
-        <link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com" />
-        <link rel="help" href="http://www.w3.org/TR/css-grid-1/#order-property" title="4.2 Reordered Grid Items: the order property" />
-        <link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#order-property" title="5.4. Display Order: the order property" />
-        <link rel="match" href="../../reference/ref-filled-green-100px-square.xht" />
-        <meta name="flags" content="ahem" />
-        <style type="text/css"><![CDATA[
-            #grid {
-                display: grid;
-                font: 100px/1 Ahem;
-            }
-
-            #test-item-overlapping-green {
-                color: green;
-                order: 10;
-            }
-
-            #reference-item-overlapped-red {
-                color: red;
-                order: 5;
-            }
-
-            .first-row-first-column {
-                grid-area: 1 / 1;
-            }
-        ]]></style>
-    </head>
-    <body>
-        <p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
-
-        <div id="grid">
-            <div id="test-item-overlapping-green" class="first-row-first-column">G</div>
-            <div id="reference-item-overlapped-red" class="first-row-first-column">R</div>
-        </div>
-    </body>
-</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-order-property-painting-004.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-order-property-painting-004.html
new file mode 100644
index 0000000..209b8fbc
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-order-property-painting-004.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Grid Layout Test: 'order' property affects grid items painting order</title>
+<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
+<link rel="help" href="http://www.w3.org/TR/css-grid-1/#order-property" title="4.2 Reordered Grid Items: the order property">
+<link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#order-property" title="5.4. Display Order: the order property">
+<link rel="match" href="../../reference/ref-filled-green-100px-square.xht">
+<meta name="flags" content="ahem">
+<style>
+  #grid {
+    display: grid;
+    font: 100px/1 Ahem;
+  }
+
+  #test-item-overlapping-green {
+    color: green;
+    order: -5;
+  }
+
+  #reference-item-overlapped-red {
+    color: red;
+    order: -10;
+  }
+
+  .first-row-first-column {
+    grid-area: 1 / 1;
+  }
+</style>
+<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
+
+<div id="grid">
+  <div id="test-item-overlapping-green" class="first-row-first-column">G</div>
+  <div id="reference-item-overlapped-red" class="first-row-first-column">R</div>
+</div>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-order-property-painting-004.xht b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-order-property-painting-004.xht
deleted file mode 100644
index 0831f1fc..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-order-property-painting-004.xht
+++ /dev/null
@@ -1,39 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-    <head>
-        <title>CSS Grid Layout Test: 'order' property affects grid items painting order</title>
-        <link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com" />
-        <link rel="help" href="http://www.w3.org/TR/css-grid-1/#order-property" title="4.2 Reordered Grid Items: the order property" />
-        <link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#order-property" title="5.4. Display Order: the order property" />
-        <link rel="match" href="../../reference/ref-filled-green-100px-square.xht" />
-        <meta name="flags" content="ahem" />
-        <style type="text/css"><![CDATA[
-            #grid {
-                display: grid;
-                font: 100px/1 Ahem;
-            }
-
-            #test-item-overlapping-green {
-                color: green;
-                order: -5;
-            }
-
-            #reference-item-overlapped-red {
-                color: red;
-                order: -10;
-            }
-
-            .first-row-first-column {
-                grid-area: 1 / 1;
-            }
-        ]]></style>
-    </head>
-    <body>
-        <p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
-
-        <div id="grid">
-            <div id="test-item-overlapping-green" class="first-row-first-column">G</div>
-            <div id="reference-item-overlapped-red" class="first-row-first-column">R</div>
-        </div>
-    </body>
-</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-order-property-painting-005.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-order-property-painting-005.html
new file mode 100644
index 0000000..3262ce1
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-order-property-painting-005.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Grid Layout Test: 'order' property affects grid items painting order</title>
+<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
+<link rel="help" href="http://www.w3.org/TR/css-grid-1/#order-property" title="4.2 Reordered Grid Items: the order property">
+<link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#order-property" title="5.4. Display Order: the order property">
+<link rel="match" href="../../reference/ref-filled-green-100px-square.xht">
+<meta name="flags" content="ahem">
+<style>
+  #grid {
+    display: grid;
+    font: 100px/1 Ahem;
+  }
+
+  #test-item-overlapping-green {
+    color: green;
+    order: 1;
+  }
+
+  #reference-item-overlapped-red {
+    color: red;
+    order: -1;
+  }
+
+  .first-row-first-column {
+    grid-area: 1 / 1;
+  }
+</style>
+<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
+
+<div id="grid">
+  <div id="test-item-overlapping-green" class="first-row-first-column">G</div>
+  <div id="reference-item-overlapped-red" class="first-row-first-column">R</div>
+</div>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-order-property-painting-005.xht b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-order-property-painting-005.xht
deleted file mode 100644
index 75941e6..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-order-property-painting-005.xht
+++ /dev/null
@@ -1,39 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-    <head>
-        <title>CSS Grid Layout Test: 'order' property affects grid items painting order</title>
-        <link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com" />
-        <link rel="help" href="http://www.w3.org/TR/css-grid-1/#order-property" title="4.2 Reordered Grid Items: the order property" />
-        <link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#order-property" title="5.4. Display Order: the order property" />
-        <link rel="match" href="../../reference/ref-filled-green-100px-square.xht" />
-        <meta name="flags" content="ahem" />
-        <style type="text/css"><![CDATA[
-            #grid {
-                display: grid;
-                font: 100px/1 Ahem;
-            }
-
-            #test-item-overlapping-green {
-                color: green;
-                order: 1;
-            }
-
-            #reference-item-overlapped-red {
-                color: red;
-                order: -1;
-            }
-
-            .first-row-first-column {
-                grid-area: 1 / 1;
-            }
-        ]]></style>
-    </head>
-    <body>
-        <p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
-
-        <div id="grid">
-            <div id="test-item-overlapping-green" class="first-row-first-column">G</div>
-            <div id="reference-item-overlapped-red" class="first-row-first-column">R</div>
-        </div>
-    </body>
-</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-z-axis-ordering-001.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-z-axis-ordering-001.html
new file mode 100644
index 0000000..767b9e1
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-z-axis-ordering-001.html
@@ -0,0 +1,32 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Grid Layout Test: 'z-index' property controls the z-axis order of grid items</title>
+<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
+<link rel="help" href="http://www.w3.org/TR/css-grid-1/#z-order" title="4.4. Z-axis Ordering: the z-index property">
+<link rel="match" href="../../reference/ref-filled-green-100px-square.xht">
+<meta name="flags" content="ahem">
+<style>
+  #grid {
+    display: grid;
+    font: 100px/1 Ahem;
+  }
+
+  #test-item-overlapping-green {
+    color: green;
+    z-index: 1;
+  }
+
+  #reference-item-overlapped-red {
+    color: red;
+  }
+
+  .first-row-first-column {
+    grid-area: 1 / 1;
+  }
+</style>
+<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
+
+<div id="grid">
+  <div id="test-item-overlapping-green" class="first-row-first-column">G</div>
+  <div id="reference-item-overlapped-red" class="first-row-first-column">R</div>
+</div>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-z-axis-ordering-001.xht b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-z-axis-ordering-001.xht
deleted file mode 100644
index cbabf8ef..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-z-axis-ordering-001.xht
+++ /dev/null
@@ -1,37 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-    <head>
-        <title>CSS Grid Layout Test: 'z-index' property controls the z-axis order of grid items</title>
-        <link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com" />
-        <link rel="help" href="http://www.w3.org/TR/css-grid-1/#z-order" title="4.4. Z-axis Ordering: the z-index property" />
-        <link rel="match" href="../../reference/ref-filled-green-100px-square.xht" />
-        <meta name="flags" content="ahem" />
-        <style type="text/css"><![CDATA[
-            #grid {
-                display: grid;
-                font: 100px/1 Ahem;
-            }
-
-            #test-item-overlapping-green {
-                color: green;
-                z-index: 1;
-            }
-
-            #reference-item-overlapped-red {
-                color: red;
-            }
-
-            .first-row-first-column {
-                grid-area: 1 / 1;
-            }
-        ]]></style>
-    </head>
-    <body>
-        <p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
-
-        <div id="grid">
-            <div id="test-item-overlapping-green" class="first-row-first-column">G</div>
-            <div id="reference-item-overlapped-red" class="first-row-first-column">R</div>
-        </div>
-    </body>
-</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-z-axis-ordering-002.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-z-axis-ordering-002.html
new file mode 100644
index 0000000..95fa744
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-z-axis-ordering-002.html
@@ -0,0 +1,32 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Grid Layout Test: 'z-index' property controls the z-axis order of grid items</title>
+<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
+<link rel="help" href="http://www.w3.org/TR/css-grid-1/#z-order" title="4.4. Z-axis Ordering: the z-index property">
+<link rel="match" href="../../reference/ref-filled-green-100px-square.xht">
+<meta name="flags" content="ahem">
+<style>
+  #grid {
+    display: grid;
+    font: 100px/1 Ahem;
+  }
+
+  #test-item-overlapping-green {
+    color: green;
+  }
+
+  #reference-item-overlapped-red {
+    color: red;
+    z-index: -1;
+  }
+
+  .first-row-first-column {
+    grid-area: 1 / 1;
+  }
+</style>
+<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
+
+<div id="grid">
+  <div id="test-item-overlapping-green" class="first-row-first-column">G</div>
+  <div id="reference-item-overlapped-red" class="first-row-first-column">R</div>
+</div>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-z-axis-ordering-002.xht b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-z-axis-ordering-002.xht
deleted file mode 100644
index 00d3c02..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-z-axis-ordering-002.xht
+++ /dev/null
@@ -1,37 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-    <head>
-        <title>CSS Grid Layout Test: 'z-index' property controls the z-axis order of grid items</title>
-        <link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com" />
-        <link rel="help" href="http://www.w3.org/TR/css-grid-1/#z-order" title="4.4. Z-axis Ordering: the z-index property" />
-        <link rel="match" href="../../reference/ref-filled-green-100px-square.xht" />
-        <meta name="flags" content="ahem" />
-        <style type="text/css"><![CDATA[
-            #grid {
-                display: grid;
-                font: 100px/1 Ahem;
-            }
-
-            #test-item-overlapping-green {
-                color: green;
-            }
-
-            #reference-item-overlapped-red {
-                color: red;
-                z-index: -1;
-            }
-
-            .first-row-first-column {
-                grid-area: 1 / 1;
-            }
-        ]]></style>
-    </head>
-    <body>
-        <p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
-
-        <div id="grid">
-            <div id="test-item-overlapping-green" class="first-row-first-column">G</div>
-            <div id="reference-item-overlapped-red" class="first-row-first-column">R</div>
-        </div>
-    </body>
-</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-z-axis-ordering-003.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-z-axis-ordering-003.html
new file mode 100644
index 0000000..853b5f5
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-z-axis-ordering-003.html
@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Grid Layout Test: 'z-index' property controls the z-axis order of grid items</title>
+<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
+<link rel="help" href="http://www.w3.org/TR/css-grid-1/#z-order" title="4.4. Z-axis Ordering: the z-index property">
+<link rel="match" href="../../reference/ref-filled-green-100px-square.xht">
+<meta name="flags" content="ahem">
+<style>
+  #grid {
+    display: grid;
+    font: 100px/1 Ahem;
+  }
+
+  #test-item-overlapping-green {
+    color: green;
+    z-index: 10;
+  }
+
+  #reference-item-overlapped-red {
+    color: red;
+    z-index: 5;
+  }
+
+  .first-row-first-column {
+    grid-area: 1 / 1;
+  }
+</style>
+<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
+
+<div id="grid">
+  <div id="test-item-overlapping-green" class="first-row-first-column">G</div>
+  <div id="reference-item-overlapped-red" class="first-row-first-column">R</div>
+</div>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-z-axis-ordering-003.xht b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-z-axis-ordering-003.xht
deleted file mode 100644
index 12eae135..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-z-axis-ordering-003.xht
+++ /dev/null
@@ -1,38 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-    <head>
-        <title>CSS Grid Layout Test: 'z-index' property controls the z-axis order of grid items</title>
-        <link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com" />
-        <link rel="help" href="http://www.w3.org/TR/css-grid-1/#z-order" title="4.4. Z-axis Ordering: the z-index property" />
-        <link rel="match" href="../../reference/ref-filled-green-100px-square.xht" />
-        <meta name="flags" content="ahem" />
-        <style type="text/css"><![CDATA[
-            #grid {
-                display: grid;
-                font: 100px/1 Ahem;
-            }
-
-            #test-item-overlapping-green {
-                color: green;
-                z-index: 10;
-            }
-
-            #reference-item-overlapped-red {
-                color: red;
-                z-index: 5;
-            }
-
-            .first-row-first-column {
-                grid-area: 1 / 1;
-            }
-        ]]></style>
-    </head>
-    <body>
-        <p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
-
-        <div id="grid">
-            <div id="test-item-overlapping-green" class="first-row-first-column">G</div>
-            <div id="reference-item-overlapped-red" class="first-row-first-column">R</div>
-        </div>
-    </body>
-</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-z-axis-ordering-004.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-z-axis-ordering-004.html
new file mode 100644
index 0000000..25447a4
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-z-axis-ordering-004.html
@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Grid Layout Test: 'z-index' property controls the z-axis order of grid items</title>
+<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
+<link rel="help" href="http://www.w3.org/TR/css-grid-1/#z-order" title="4.4. Z-axis Ordering: the z-index property">
+<link rel="match" href="../../reference/ref-filled-green-100px-square.xht">
+<meta name="flags" content="ahem">
+<style>
+  #grid {
+    display: grid;
+    font: 100px/1 Ahem;
+  }
+
+  #test-item-overlapping-green {
+    color: green;
+    z-index: -5;
+  }
+
+  #reference-item-overlapped-red {
+    color: red;
+    z-index: -10;
+  }
+
+  .first-row-first-column {
+    grid-area: 1 / 1;
+  }
+</style>
+<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
+
+<div id="grid">
+  <div id="test-item-overlapping-green" class="first-row-first-column">G</div>
+  <div id="reference-item-overlapped-red" class="first-row-first-column">R</div>
+</div>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-z-axis-ordering-004.xht b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-z-axis-ordering-004.xht
deleted file mode 100644
index 04e3f06..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-z-axis-ordering-004.xht
+++ /dev/null
@@ -1,38 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-    <head>
-        <title>CSS Grid Layout Test: 'z-index' property controls the z-axis order of grid items</title>
-        <link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com" />
-        <link rel="help" href="http://www.w3.org/TR/css-grid-1/#z-order" title="4.4. Z-axis Ordering: the z-index property" />
-        <link rel="match" href="../../reference/ref-filled-green-100px-square.xht" />
-        <meta name="flags" content="ahem" />
-        <style type="text/css"><![CDATA[
-            #grid {
-                display: grid;
-                font: 100px/1 Ahem;
-            }
-
-            #test-item-overlapping-green {
-                color: green;
-                z-index: -5;
-            }
-
-            #reference-item-overlapped-red {
-                color: red;
-                z-index: -10;
-            }
-
-            .first-row-first-column {
-                grid-area: 1 / 1;
-            }
-        ]]></style>
-    </head>
-    <body>
-        <p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
-
-        <div id="grid">
-            <div id="test-item-overlapping-green" class="first-row-first-column">G</div>
-            <div id="reference-item-overlapped-red" class="first-row-first-column">R</div>
-        </div>
-    </body>
-</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-z-axis-ordering-005.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-z-axis-ordering-005.html
new file mode 100644
index 0000000..2a08020
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-z-axis-ordering-005.html
@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Grid Layout Test: 'z-index' property controls the z-axis order of grid items</title>
+<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
+<link rel="help" href="http://www.w3.org/TR/css-grid-1/#z-order" title="4.4. Z-axis Ordering: the z-index property">
+<link rel="match" href="../../reference/ref-filled-green-100px-square.xht">
+<meta name="flags" content="ahem">
+<style>
+  #grid {
+    display: grid;
+    font: 100px/1 Ahem;
+  }
+
+  #test-item-overlapping-green {
+    color: green;
+    z-index: 1;
+  }
+
+  #reference-item-overlapped-red {
+    color: red;
+    z-index: -1;
+  }
+
+  .first-row-first-column {
+    grid-area: 1 / 1;
+  }
+</style>
+<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
+
+<div id="grid">
+  <div id="test-item-overlapping-green" class="first-row-first-column">G</div>
+  <div id="reference-item-overlapped-red" class="first-row-first-column">R</div>
+</div>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-z-axis-ordering-005.xht b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-z-axis-ordering-005.xht
deleted file mode 100644
index 31c6756..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-z-axis-ordering-005.xht
+++ /dev/null
@@ -1,38 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-    <head>
-        <title>CSS Grid Layout Test: 'z-index' property controls the z-axis order of grid items</title>
-        <link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com" />
-        <link rel="help" href="http://www.w3.org/TR/css-grid-1/#z-order" title="4.4. Z-axis Ordering: the z-index property" />
-        <link rel="match" href="../../reference/ref-filled-green-100px-square.xht" />
-        <meta name="flags" content="ahem" />
-        <style type="text/css"><![CDATA[
-            #grid {
-                display: grid;
-                font: 100px/1 Ahem;
-            }
-
-            #test-item-overlapping-green {
-                color: green;
-                z-index: 1;
-            }
-
-            #reference-item-overlapped-red {
-                color: red;
-                z-index: -1;
-            }
-
-            .first-row-first-column {
-                grid-area: 1 / 1;
-            }
-        ]]></style>
-    </head>
-    <body>
-        <p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
-
-        <div id="grid">
-            <div id="test-item-overlapping-green" class="first-row-first-column">G</div>
-            <div id="reference-item-overlapped-red" class="first-row-first-column">R</div>
-        </div>
-    </body>
-</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-z-axis-ordering-overlapped-items-001.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-z-axis-ordering-overlapped-items-001.html
new file mode 100644
index 0000000..54a0854
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-z-axis-ordering-overlapped-items-001.html
@@ -0,0 +1,42 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Grid Layout Test: 'z-index' property controls the grid items stacking order</title>
+<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
+<link rel="help" href="http://www.w3.org/TR/css-grid-1/#z-order" title="4.4. Z-axis Ordering: the z-index property">
+<link rel="match" href="../reference/grid-filled-blue-yellow-green-overlapped-100px-squares.html">
+<meta name="flags" content="ahem">
+<style>
+  #grid {
+    display: grid;
+    font: 100px/1 Ahem;
+    grid-template-columns: 25px 25px 25px 25px;
+    grid-template-rows: 25px 25px 25px 25px;
+  }
+
+  #blue {
+    color: blue;
+    z-index: -1;
+    grid-column: 1;
+    grid-row: 1;
+  }
+
+  #yellow {
+    color: yellow;
+    grid-column: 2;
+    grid-row: 2;
+  }
+
+  #green {
+    color: green;
+    z-index: 1;
+    grid-column: 3;
+    grid-row: 3;
+  }
+</style>
+<p>Test passes if there are 3 filled squares with the same size, and <strong>green</strong> is overlapping <strong>yellow</strong> which is overlapping <strong>blue</strong>.</p>
+
+<div id="grid">
+  <div id="green">G</div>
+  <div id="yellow">Y</div>
+  <div id="blue">B</div>
+</div>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-z-axis-ordering-overlapped-items-001.xht b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-z-axis-ordering-overlapped-items-001.xht
deleted file mode 100644
index c44dda4..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-z-axis-ordering-overlapped-items-001.xht
+++ /dev/null
@@ -1,47 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-    <head>
-        <title>CSS Grid Layout Test: 'z-index' property controls the grid items stacking order</title>
-        <link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com" />
-        <link rel="help" href="http://www.w3.org/TR/css-grid-1/#z-order" title="4.4. Z-axis Ordering: the z-index property" />
-        <link rel="match" href="../reference/grid-filled-blue-yellow-green-overlapped-100px-squares.xht" />
-        <meta name="flags" content="ahem" />
-        <style type="text/css"><![CDATA[
-            #grid {
-                display: grid;
-                font: 100px/1 Ahem;
-                grid-template-columns: 25px 25px 25px 25px;
-                grid-template-rows: 25px 25px 25px 25px;
-            }
-
-            #blue {
-                color: blue;
-                z-index: -1;
-                grid-column: 1;
-                grid-row: 1;
-            }
-
-            #yellow {
-                color: yellow;
-                grid-column: 2;
-                grid-row: 2;
-            }
-
-            #green {
-                color: green;
-                z-index: 1;
-                grid-column: 3;
-                grid-row: 3;
-            }
-        ]]></style>
-    </head>
-    <body>
-        <p>Test passes if there are 3 filled squares with the same size, and <strong>green</strong> is overlapping <strong>yellow</strong> which is overlapping <strong>blue</strong>.</p>
-
-        <div id="grid">
-            <div id="green">G</div>
-            <div id="yellow">Y</div>
-            <div id="blue">B</div>
-        </div>
-    </body>
-</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-z-axis-ordering-overlapped-items-002.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-z-axis-ordering-overlapped-items-002.html
new file mode 100644
index 0000000..c112088
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-z-axis-ordering-overlapped-items-002.html
@@ -0,0 +1,43 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Grid Layout Test: 'z-index' property controls the grid items stacking order</title>
+<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
+<link rel="help" href="http://www.w3.org/TR/css-grid-1/#z-order" title="4.4. Z-axis Ordering: the z-index property">
+<link rel="match" href="../reference/grid-filled-blue-yellow-green-overlapped-100px-squares.html">
+<meta name="flags" content="ahem">
+<style>
+  #grid {
+    display: grid;
+    font: 100px/1 Ahem;
+    grid-template-columns: 25px 25px 25px 25px;
+    grid-template-rows: 25px 25px 25px 25px;
+  }
+
+  #blue {
+    color: blue;
+    z-index: 1;
+    grid-column: 1;
+    grid-row: 1;
+  }
+
+  #yellow {
+    color: yellow;
+    z-index: 5;
+    grid-column: 2;
+    grid-row: 2;
+  }
+
+  #green {
+    color: green;
+    z-index: 10;
+    grid-column: 3;
+    grid-row: 3;
+  }
+</style>
+<p>Test passes if there are 3 filled squares with the same size, and <strong>green</strong> is overlapping <strong>yellow</strong> which is overlapping <strong>blue</strong>.</p>
+
+<div id="grid">
+  <div id="green">G</div>
+  <div id="yellow">Y</div>
+  <div id="blue">B</div>
+</div>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-z-axis-ordering-overlapped-items-002.xht b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-z-axis-ordering-overlapped-items-002.xht
deleted file mode 100644
index f630f7f..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-z-axis-ordering-overlapped-items-002.xht
+++ /dev/null
@@ -1,48 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-    <head>
-        <title>CSS Grid Layout Test: 'z-index' property controls the grid items stacking order</title>
-        <link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com" />
-        <link rel="help" href="http://www.w3.org/TR/css-grid-1/#z-order" title="4.4. Z-axis Ordering: the z-index property" />
-        <link rel="match" href="../reference/grid-filled-blue-yellow-green-overlapped-100px-squares.xht" />
-        <meta name="flags" content="ahem" />
-        <style type="text/css"><![CDATA[
-            #grid {
-                display: grid;
-                font: 100px/1 Ahem;
-                grid-template-columns: 25px 25px 25px 25px;
-                grid-template-rows: 25px 25px 25px 25px;
-            }
-
-            #blue {
-                color: blue;
-                z-index: 1;
-                grid-column: 1;
-                grid-row: 1;
-            }
-
-            #yellow {
-                color: yellow;
-                z-index: 5;
-                grid-column: 2;
-                grid-row: 2;
-            }
-
-            #green {
-                color: green;
-                z-index: 10;
-                grid-column: 3;
-                grid-row: 3;
-            }
-        ]]></style>
-    </head>
-    <body>
-        <p>Test passes if there are 3 filled squares with the same size, and <strong>green</strong> is overlapping <strong>yellow</strong> which is overlapping <strong>blue</strong>.</p>
-
-        <div id="grid">
-            <div id="green">G</div>
-            <div id="yellow">Y</div>
-            <div id="blue">B</div>
-        </div>
-    </body>
-</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-z-axis-ordering-overlapped-items-003.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-z-axis-ordering-overlapped-items-003.html
new file mode 100644
index 0000000..c604b2ba
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-z-axis-ordering-overlapped-items-003.html
@@ -0,0 +1,43 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Grid Layout Test: 'z-index' property controls the grid items stacking order</title>
+<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
+<link rel="help" href="http://www.w3.org/TR/css-grid-1/#z-order" title="4.4. Z-axis Ordering: the z-index property">
+<link rel="match" href="../reference/grid-filled-blue-yellow-green-overlapped-100px-squares.html">
+<meta name="flags" content="ahem">
+<style>
+  #grid {
+    display: grid;
+    font: 100px/1 Ahem;
+    grid-template-columns: 25px 25px 25px 25px;
+    grid-template-rows: 25px 25px 25px 25px;
+  }
+
+  #blue {
+    color: blue;
+    z-index: -10;
+    grid-column: 1;
+    grid-row: 1;
+  }
+
+  #yellow {
+    color: yellow;
+    z-index: -5;
+    grid-column: 2;
+    grid-row: 2;
+  }
+
+  #green {
+    color: green;
+    z-index: -1;
+    grid-column: 3;
+    grid-row: 3;
+  }
+</style>
+<p>Test passes if there are 3 filled squares with the same size, and <strong>green</strong> is overlapping <strong>yellow</strong> which is overlapping <strong>blue</strong>.</p>
+
+<div id="grid">
+  <div id="green">G</div>
+  <div id="yellow">Y</div>
+  <div id="blue">B</div>
+</div>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-z-axis-ordering-overlapped-items-003.xht b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-z-axis-ordering-overlapped-items-003.xht
deleted file mode 100644
index 357945a..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-z-axis-ordering-overlapped-items-003.xht
+++ /dev/null
@@ -1,48 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-    <head>
-        <title>CSS Grid Layout Test: 'z-index' property controls the grid items stacking order</title>
-        <link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com" />
-        <link rel="help" href="http://www.w3.org/TR/css-grid-1/#z-order" title="4.4. Z-axis Ordering: the z-index property" />
-        <link rel="match" href="../reference/grid-filled-blue-yellow-green-overlapped-100px-squares.xht" />
-        <meta name="flags" content="ahem" />
-        <style type="text/css"><![CDATA[
-            #grid {
-                display: grid;
-                font: 100px/1 Ahem;
-                grid-template-columns: 25px 25px 25px 25px;
-                grid-template-rows: 25px 25px 25px 25px;
-            }
-
-            #blue {
-                color: blue;
-                z-index: -10;
-                grid-column: 1;
-                grid-row: 1;
-            }
-
-            #yellow {
-                color: yellow;
-                z-index: -5;
-                grid-column: 2;
-                grid-row: 2;
-            }
-
-            #green {
-                color: green;
-                z-index: -1;
-                grid-column: 3;
-                grid-row: 3;
-            }
-        ]]></style>
-    </head>
-    <body>
-        <p>Test passes if there are 3 filled squares with the same size, and <strong>green</strong> is overlapping <strong>yellow</strong> which is overlapping <strong>blue</strong>.</p>
-
-        <div id="grid">
-            <div id="green">G</div>
-            <div id="yellow">Y</div>
-            <div id="blue">B</div>
-        </div>
-    </body>
-</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-z-axis-ordering-overlapped-items-004.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-z-axis-ordering-overlapped-items-004.html
new file mode 100644
index 0000000..1abf2ca0
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-z-axis-ordering-overlapped-items-004.html
@@ -0,0 +1,42 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Grid Layout Test: 'z-index' property controls the grid items stacking order</title>
+<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
+<link rel="help" href="http://www.w3.org/TR/css-grid-1/#z-order" title="4.4. Z-axis Ordering: the z-index property">
+<link rel="match" href="../reference/grid-filled-blue-yellow-green-overlapped-100px-squares.html">
+<meta name="flags" content="ahem">
+<style>
+  #grid {
+    display: grid;
+    font: 100px/1 Ahem;
+    grid-template-columns: 25px 25px 25px 25px;
+    grid-template-rows: 25px 25px 25px 25px;
+  }
+
+  #blue {
+    color: blue;
+    grid-column: 1;
+    grid-row: 1;
+  }
+
+  #yellow {
+    color: yellow;
+    z-index: 1;
+    grid-column: 2;
+    grid-row: 2;
+  }
+
+  #green {
+    color: green;
+    z-index: 5;
+    grid-column: 3;
+    grid-row: 3;
+  }
+</style>
+<p>Test passes if there are 3 filled squares with the same size, and <strong>green</strong> is overlapping <strong>yellow</strong> which is overlapping <strong>blue</strong>.</p>
+
+<div id="grid">
+  <div id="green">G</div>
+  <div id="yellow">Y</div>
+  <div id="blue">B</div>
+</div>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-z-axis-ordering-overlapped-items-004.xht b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-z-axis-ordering-overlapped-items-004.xht
deleted file mode 100644
index 1186d26..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-z-axis-ordering-overlapped-items-004.xht
+++ /dev/null
@@ -1,47 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-    <head>
-        <title>CSS Grid Layout Test: 'z-index' property controls the grid items stacking order</title>
-        <link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com" />
-        <link rel="help" href="http://www.w3.org/TR/css-grid-1/#z-order" title="4.4. Z-axis Ordering: the z-index property" />
-        <link rel="match" href="../reference/grid-filled-blue-yellow-green-overlapped-100px-squares.xht" />
-        <meta name="flags" content="ahem" />
-        <style type="text/css"><![CDATA[
-            #grid {
-                display: grid;
-                font: 100px/1 Ahem;
-                grid-template-columns: 25px 25px 25px 25px;
-                grid-template-rows: 25px 25px 25px 25px;
-            }
-
-            #blue {
-                color: blue;
-                grid-column: 1;
-                grid-row: 1;
-            }
-
-            #yellow {
-                color: yellow;
-                z-index: 1;
-                grid-column: 2;
-                grid-row: 2;
-            }
-
-            #green {
-                color: green;
-                z-index: 5;
-                grid-column: 3;
-                grid-row: 3;
-            }
-        ]]></style>
-    </head>
-    <body>
-        <p>Test passes if there are 3 filled squares with the same size, and <strong>green</strong> is overlapping <strong>yellow</strong> which is overlapping <strong>blue</strong>.</p>
-
-        <div id="grid">
-            <div id="green">G</div>
-            <div id="yellow">Y</div>
-            <div id="blue">B</div>
-        </div>
-    </body>
-</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-z-axis-ordering-overlapped-items-005.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-z-axis-ordering-overlapped-items-005.html
new file mode 100644
index 0000000..359831d
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-z-axis-ordering-overlapped-items-005.html
@@ -0,0 +1,42 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Grid Layout Test: 'z-index' property controls the grid items stacking order</title>
+<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
+<link rel="help" href="http://www.w3.org/TR/css-grid-1/#z-order" title="4.4. Z-axis Ordering: the z-index property">
+<link rel="match" href="../reference/grid-filled-blue-yellow-green-overlapped-100px-squares.html">
+<meta name="flags" content="ahem">
+<style>
+  #grid {
+    display: grid;
+    font: 100px/1 Ahem;
+    grid-template-columns: 25px 25px 25px 25px;
+    grid-template-rows: 25px 25px 25px 25px;
+  }
+
+  #blue {
+    color: blue;
+    z-index: -5;
+    grid-column: 1;
+    grid-row: 1;
+  }
+
+  #yellow {
+    color: yellow;
+    z-index: -1;
+    grid-column: 2;
+    grid-row: 2;
+  }
+
+  #green {
+    color: green;
+    grid-column: 3;
+    grid-row: 3;
+  }
+</style>
+<p>Test passes if there are 3 filled squares with the same size, and <strong>green</strong> is overlapping <strong>yellow</strong> which is overlapping <strong>blue</strong>.</p>
+
+<div id="grid">
+  <div id="green">G</div>
+  <div id="yellow">Y</div>
+  <div id="blue">B</div>
+</div>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-z-axis-ordering-overlapped-items-005.xht b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-z-axis-ordering-overlapped-items-005.xht
deleted file mode 100644
index 4873c05..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-z-axis-ordering-overlapped-items-005.xht
+++ /dev/null
@@ -1,47 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-    <head>
-        <title>CSS Grid Layout Test: 'z-index' property controls the grid items stacking order</title>
-        <link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com" />
-        <link rel="help" href="http://www.w3.org/TR/css-grid-1/#z-order" title="4.4. Z-axis Ordering: the z-index property" />
-        <link rel="match" href="../reference/grid-filled-blue-yellow-green-overlapped-100px-squares.xht" />
-        <meta name="flags" content="ahem" />
-        <style type="text/css"><![CDATA[
-            #grid {
-                display: grid;
-                font: 100px/1 Ahem;
-                grid-template-columns: 25px 25px 25px 25px;
-                grid-template-rows: 25px 25px 25px 25px;
-            }
-
-            #blue {
-                color: blue;
-                z-index: -5;
-                grid-column: 1;
-                grid-row: 1;
-            }
-
-            #yellow {
-                color: yellow;
-                z-index: -1;
-                grid-column: 2;
-                grid-row: 2;
-            }
-
-            #green {
-                color: green;
-                grid-column: 3;
-                grid-row: 3;
-            }
-        ]]></style>
-    </head>
-    <body>
-        <p>Test passes if there are 3 filled squares with the same size, and <strong>green</strong> is overlapping <strong>yellow</strong> which is overlapping <strong>blue</strong>.</p>
-
-        <div id="grid">
-            <div id="green">G</div>
-            <div id="yellow">Y</div>
-            <div id="blue">B</div>
-        </div>
-    </body>
-</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-z-axis-ordering-overlapped-items-006.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-z-axis-ordering-overlapped-items-006.html
new file mode 100644
index 0000000..1a7afa8
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-z-axis-ordering-overlapped-items-006.html
@@ -0,0 +1,48 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Grid Layout Test: 'z-index' property controls the grid items stacking order</title>
+<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
+<link rel="help" href="http://www.w3.org/TR/css-grid-1/#z-order" title="4.4. Z-axis Ordering: the z-index property">
+<link rel="match" href="../reference/grid-filled-blue-yellow-green-overlapped-100px-squares.html">
+<meta name="flags" content="ahem">
+<style>
+  #grid {
+    display: grid;
+    font: 100px/1 Ahem;
+    grid-template-columns: 25px 25px 25px 25px;
+    grid-template-rows: 25px 25px 25px 25px;
+  }
+
+  #blue {
+    color: blue;
+    z-index: -1;
+    grid-column: 2;
+    grid-row: 2;
+    margin-top: -25px;
+    margin-left: -25px;
+  }
+
+  #yellow {
+    color: yellow;
+    grid-column: 4;
+    grid-row: 4;
+    margin-top: -50px;
+    margin-left: -50px;
+  }
+
+  #green {
+    color: green;
+    z-index: 1;
+    grid-column: 1;
+    grid-row: 1;
+    margin-top: 50px;
+    margin-left: 50px;
+  }
+</style>
+<p>Test passes if there are 3 filled squares with the same size, and <strong>green</strong> is overlapping <strong>yellow</strong> which is overlapping <strong>blue</strong>.</p>
+
+<div id="grid">
+  <div id="green">G</div>
+  <div id="yellow">Y</div>
+  <div id="blue">B</div>
+</div>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-z-axis-ordering-overlapped-items-006.xht b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-z-axis-ordering-overlapped-items-006.xht
deleted file mode 100644
index 6f69f102..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-items/grid-z-axis-ordering-overlapped-items-006.xht
+++ /dev/null
@@ -1,53 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-    <head>
-        <title>CSS Grid Layout Test: 'z-index' property controls the grid items stacking order</title>
-        <link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com" />
-        <link rel="help" href="http://www.w3.org/TR/css-grid-1/#z-order" title="4.4. Z-axis Ordering: the z-index property" />
-        <link rel="match" href="../reference/grid-filled-blue-yellow-green-overlapped-100px-squares.xht" />
-        <meta name="flags" content="ahem" />
-        <style type="text/css"><![CDATA[
-            #grid {
-                display: grid;
-                font: 100px/1 Ahem;
-                grid-template-columns: 25px 25px 25px 25px;
-                grid-template-rows: 25px 25px 25px 25px;
-            }
-
-            #blue {
-                color: blue;
-                z-index: -1;
-                grid-column: 2;
-                grid-row: 2;
-                margin-top: -25px;
-                margin-left: -25px;
-            }
-
-            #yellow {
-                color: yellow;
-                grid-column: 4;
-                grid-row: 4;
-                margin-top: -50px;
-                margin-left: -50px;
-            }
-
-            #green {
-                color: green;
-                z-index: 1;
-                grid-column: 1;
-                grid-row: 1;
-                margin-top: 50px;
-                margin-left: 50px;
-            }
-        ]]></style>
-    </head>
-    <body>
-        <p>Test passes if there are 3 filled squares with the same size, and <strong>green</strong> is overlapping <strong>yellow</strong> which is overlapping <strong>blue</strong>.</p>
-
-        <div id="grid">
-            <div id="green">G</div>
-            <div id="yellow">Y</div>
-            <div id="blue">B</div>
-        </div>
-    </body>
-</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-computed-value-display-floated-items-001.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-computed-value-display-floated-items-001.html
new file mode 100644
index 0000000..17c0fbd1
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-computed-value-display-floated-items-001.html
@@ -0,0 +1,82 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Grid Layout Test: 'float' affects to the computed value of 'display' on grid items</title>
+<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
+<link rel="help" href="http://www.w3.org/TR/css-grid-1/#grid-containers" title="3.1 Establishing Grid Containers">
+<link rel="help" href="http://www.w3.org/TR/CSS2/visuren.html#dis-pos-flo" title="9.7 Relationships between 'display', 'position', and 'float'">
+<meta name="flags" content="dom">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<style>
+  #grid {
+    display: grid;
+  }
+
+  #inline-grid {
+    display: inline-grid;
+  }
+
+  .inline-table {
+    display: inline-table;
+  }
+
+  .inline {
+    display: inline;
+  }
+
+  .flex {
+    display: flex;
+  }
+
+  .float {
+    float: left;
+  }
+</style>
+<div id="log"></div>
+
+<div id="grid">
+  <div id="grid-inline-table" class="float inline-table"></div>
+  <div id="grid-inline" class="float inline"></div>
+  <div id="grid-flex" class="float flex"></div>
+</div>
+<div id="inline-grid">
+  <div id="inline-grid-inline-table" class="float inline-table"></div>
+  <div id="inline-grid-inline" class="float inline"></div>
+  <div id="inline-grid-flex" class="float flex"></div>
+</div>
+
+<script>
+  function testComputedStyleDisplay(element, value) {
+    assert_equals(getComputedStyle(element).getPropertyValue("display"), value, "getComputedStyle() display should be '" + value + "'");
+  }
+
+  var gridInlineTable = document.getElementById("grid-inline-table");
+  test(function() {
+      testComputedStyleDisplay(gridInlineTable, "table");
+    }, "Test display floated 'inline-table' grid item");
+
+  var gridInline = document.getElementById("grid-inline");
+  test(function() {
+      testComputedStyleDisplay(gridInline, "block");
+    }, "Test display floated 'inline' grid item");
+
+  var gridFlex = document.getElementById("grid-flex");
+  test(function() {
+      testComputedStyleDisplay(gridFlex, "flex");
+    }, "Test display floated 'flex' grid item");
+
+  var inlineGridInlineTable = document.getElementById("inline-grid-inline-table");
+  test(function() {
+      testComputedStyleDisplay(inlineGridInlineTable, "table");
+    }, "Test display floated 'inline-table' grid item within an inline grid");
+
+  var inlineGridInline = document.getElementById("inline-grid-inline");
+  test(function() {
+      testComputedStyleDisplay(inlineGridInline, "block");
+    }, "Test display floated 'inline' grid item within an inline grid");
+
+  var inlineGridFlex = document.getElementById("inline-grid-flex");
+  test(function() {
+      testComputedStyleDisplay(inlineGridFlex, "flex");
+    }, "Test display floated 'flex' grid item within an inline grid");
+</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-computed-value-display-floated-items-001.xht b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-computed-value-display-floated-items-001.xht
deleted file mode 100644
index 861a15f..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-computed-value-display-floated-items-001.xht
+++ /dev/null
@@ -1,87 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-    <head>
-        <title>CSS Grid Layout Test: 'float' affects to the computed value of 'display' on grid items</title>
-        <link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com" />
-        <link rel="help" href="http://www.w3.org/TR/css-grid-1/#grid-containers" title="3.1 Establishing Grid Containers" />
-        <link rel="help" href="http://www.w3.org/TR/CSS2/visuren.html#dis-pos-flo" title="9.7 Relationships between 'display', 'position', and 'float'" />
-        <meta name="flags" content="dom" />
-        <script src="/resources/testharness.js" type="text/javascript"></script>
-        <script src="/resources/testharnessreport.js" type="text/javascript"></script>
-        <style type="text/css"><![CDATA[
-            #grid {
-                display: grid;
-            }
-
-            #inline-grid {
-                display: inline-grid;
-            }
-
-            .inline-table {
-                display: inline-table;
-            }
-
-            .inline {
-                display: inline;
-            }
-
-            .flex {
-                display: flex;
-            }
-
-            .float {
-                float: left;
-            }
-        ]]></style>
-    </head>
-    <body>
-        <div id="log"></div>
-
-        <div id="grid">
-            <div id="grid-inline-table" class="float inline-table"></div>
-            <div id="grid-inline" class="float inline"></div>
-            <div id="grid-flex" class="float flex"></div>
-        </div>
-        <div id="inline-grid">
-            <div id="inline-grid-inline-table" class="float inline-table"></div>
-            <div id="inline-grid-inline" class="float inline"></div>
-            <div id="inline-grid-flex" class="float flex"></div>
-        </div>
-
-        <script type="text/javascript"><![CDATA[
-            function testComputedStyleDisplay(element, value) {
-                assert_equals(getComputedStyle(element).getPropertyValue("display"), value, "getComputedStyle() display should be '" + value + "'");
-            }
-
-            var gridInlineTable = document.getElementById("grid-inline-table");
-            test(function() {
-                    testComputedStyleDisplay(gridInlineTable, "table");
-                }, "Test display floated 'inline-table' grid item");
-
-            var gridInline = document.getElementById("grid-inline");
-            test(function() {
-                    testComputedStyleDisplay(gridInline, "block");
-                }, "Test display floated 'inline' grid item");
-
-            var gridFlex = document.getElementById("grid-flex");
-            test(function() {
-                    testComputedStyleDisplay(gridFlex, "flex");
-                }, "Test display floated 'flex' grid item");
-
-            var inlineGridInlineTable = document.getElementById("inline-grid-inline-table");
-            test(function() {
-                    testComputedStyleDisplay(inlineGridInlineTable, "table");
-                }, "Test display floated 'inline-table' grid item within an inline grid");
-
-            var inlineGridInline = document.getElementById("inline-grid-inline");
-            test(function() {
-                    testComputedStyleDisplay(inlineGridInline, "block");
-                }, "Test display floated 'inline' grid item within an inline grid");
-
-            var inlineGridFlex = document.getElementById("inline-grid-flex");
-            test(function() {
-                    testComputedStyleDisplay(inlineGridFlex, "flex");
-                }, "Test display floated 'flex' grid item within an inline grid");
-        ]]></script>
-    </body>
-</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-display-grid-001.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-display-grid-001.html
new file mode 100644
index 0000000..732d67c
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-display-grid-001.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Grid Layout Test: 'grid' value for 'display' property</title>
+<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
+<link rel="reviewer" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/"> <!-- 2014-11-18 -->
+<link rel="help" href="http://www.w3.org/TR/css-grid-1/#grid-containers" title="3.1 Establishing Grid Containers">
+<link rel="match" href="../../reference/ref-filled-green-100px-square.xht">
+<meta name="flags" content="ahem">
+<meta name="assert" content="This test checks that 'grid' value for 'display' property generates a block level containing box.">
+<style>
+  #reference-overlapped-red {
+    position: absolute;
+    background-color: red;
+    width: 100px;
+    height: 100px;
+    z-index: -1;
+  }
+
+  .test-grid-overlapping-green {
+    display: grid;
+    font: 25px/1 Ahem;
+    color: green;
+  }
+</style>
+<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
+
+<div id="reference-overlapped-red"></div>
+<div class="test-grid-overlapping-green">
+  <span>firs</span>
+  <span>seco</span>
+</div>
+<div class="test-grid-overlapping-green">
+  <span>firs</span>
+  <span>seco</span>
+</div>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-display-grid-001.xht b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-display-grid-001.xht
deleted file mode 100644
index 761b0ef..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-display-grid-001.xht
+++ /dev/null
@@ -1,40 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-    <head>
-        <title>CSS Grid Layout Test: 'grid' value for 'display' property</title>
-        <link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com" />
-        <link rel="reviewer" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/" /> <!-- 2014-11-18 -->
-        <link rel="help" href="http://www.w3.org/TR/css-grid-1/#grid-containers" title="3.1 Establishing Grid Containers" />
-        <link rel="match" href="../../reference/ref-filled-green-100px-square.xht" />
-        <meta name="flags" content="ahem" />
-        <meta name="assert" content="This test checks that 'grid' value for 'display' property generates a block level containing box." />
-        <style type="text/css"><![CDATA[
-            #reference-overlapped-red {
-                position: absolute;
-                background-color: red;
-                width: 100px;
-                height: 100px;
-                z-index: -1;
-            }
-
-            .test-grid-overlapping-green {
-                display: grid;
-                font: 25px/1 Ahem;
-                color: green;
-            }
-        ]]></style>
-    </head>
-    <body>
-        <p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
-
-        <div id="reference-overlapped-red"></div>
-        <div class="test-grid-overlapping-green">
-            <span>firs</span>
-            <span>seco</span>
-        </div>
-        <div class="test-grid-overlapping-green">
-            <span>firs</span>
-            <span>seco</span>
-        </div>
-    </body>
-</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-display-inline-grid-001.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-display-inline-grid-001.html
new file mode 100644
index 0000000..30104e42
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-display-inline-grid-001.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Grid Layout Test: 'inline-grid' value for 'display' property</title>
+<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
+<link rel="reviewer" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/"> <!-- 2014-11-18 -->
+<link rel="help" href="http://www.w3.org/TR/css-grid-1/#grid-containers" title="3.1 Establishing Grid Containers">
+<link rel="match" href="../../reference/ref-filled-green-100px-square.xht">
+<meta name="assert" content="This test checks that 'inline-grid' value for 'display' property generates an inline level containing box.">
+<style>
+  #reference-overlapped-red {
+    position: absolute;
+    background-color: red;
+    width: 100px;
+    height: 100px;
+    z-index: -1;
+  }
+
+  .test-inline-grid-overlapping-green {
+    display: inline-grid;
+    background-color: green;
+    width: 50px;
+    height: 100px;
+  }
+</style>
+<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
+
+<div id="reference-overlapped-red"></div>
+<div class="test-inline-grid-overlapping-green"></div><div class="test-inline-grid-overlapping-green"></div>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-display-inline-grid-001.xht b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-display-inline-grid-001.xht
deleted file mode 100644
index ea708fe..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-display-inline-grid-001.xht
+++ /dev/null
@@ -1,33 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-    <head>
-        <title>CSS Grid Layout Test: 'inline-grid' value for 'display' property</title>
-        <link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com" />
-        <link rel="reviewer" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/" /> <!-- 2014-11-18 -->
-        <link rel="help" href="http://www.w3.org/TR/css-grid-1/#grid-containers" title="3.1 Establishing Grid Containers" />
-        <link rel="match" href="../../reference/ref-filled-green-100px-square.xht" />
-        <meta name="assert" content="This test checks that 'inline-grid' value for 'display' property generates an inline level containing box." />
-        <style type="text/css"><![CDATA[
-            #reference-overlapped-red {
-                position: absolute;
-                background-color: red;
-                width: 100px;
-                height: 100px;
-                z-index: -1;
-            }
-
-            .test-inline-grid-overlapping-green {
-                display: inline-grid;
-                background-color: green;
-                width: 50px;
-                height: 100px;
-            }
-        ]]></style>
-    </head>
-    <body>
-        <p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
-
-        <div id="reference-overlapped-red"></div>
-        <div class="test-inline-grid-overlapping-green"></div><div class="test-inline-grid-overlapping-green"></div>
-    </body>
-</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-first-letter-001.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-first-letter-001.html
new file mode 100644
index 0000000..66eb427c
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-first-letter-001.html
@@ -0,0 +1,23 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Grid Layout Test: '::first-letter' from grid container does not apply to grid items</title>
+<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
+<link rel="help" href="http://www.w3.org/TR/css-grid-1/#grid-containers" title="3.1 Establishing Grid Containers">
+<link rel="help" href="http://www.w3.org/TR/css3-selectors/#first-letter" title="7.2. The ::first-letter pseudo-element">
+<link rel="match" href="../reference/grid-text-green-margin-no-collapse-ref.html">
+<meta name="assert" content="This test checks that '::first-letter' pseudo-element is ignored in grid items when applied to a grid container.">
+<style>
+  .grid {
+    display: grid;
+    color: green;
+  }
+
+  .grid::first-letter {
+    color: red;
+  }
+</style>
+<div class="grid">
+  <div>
+    <p>This text should be <strong>green</strong> and body and paragraph margins should <strong>not collapse</strong>.</p>
+  </div>
+</div>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-first-letter-001.xht b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-first-letter-001.xht
deleted file mode 100644
index 06c8293..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-first-letter-001.xht
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-    <head>
-        <title>CSS Grid Layout Test: '::first-letter' from grid container does not apply to grid items</title>
-        <link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com" />
-        <link rel="help" href="http://www.w3.org/TR/css-grid-1/#grid-containers" title="3.1 Establishing Grid Containers" />
-        <link rel="help" href="http://www.w3.org/TR/css3-selectors/#first-letter" title="7.2. The ::first-letter pseudo-element" />
-        <link rel="match" href="../reference/grid-text-green-margin-no-collapse-ref.xht" />
-        <meta name="assert" content="This test checks that '::first-letter' pseudo-element is ignored in grid items when applied to a grid container." />
-        <style type="text/css"><![CDATA[
-            .grid {
-                display: grid;
-                color: green;
-            }
-
-            .grid::first-letter {
-                color: red;
-            }
-        ]]></style>
-    </head>
-    <body>
-        <div class="grid">
-            <div>
-                <p>This text should be <strong>green</strong> and body and paragraph margins should <strong>not collapse</strong>.</p>
-            </div>
-        </div>
-    </body>
-</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-first-letter-002.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-first-letter-002.html
new file mode 100644
index 0000000..27aa025
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-first-letter-002.html
@@ -0,0 +1,23 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Grid Layout Test: '::first-letter' from grid container ancestors does not apply to grid items</title>
+<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
+<link rel="help" href="http://www.w3.org/TR/css-grid-1/#grid-containers" title="3.1 Establishing Grid Containers">
+<link rel="help" href="http://www.w3.org/TR/css3-selectors/#first-letter" title="7.2. The ::first-letter pseudo-element">
+<link rel="match" href="../reference/grid-text-green-margin-no-collapse-ref.html">
+<meta name="assert" content="This test checks that '::first-letter' pseudo-element is ignored in grid items when applied to a grid container ancestors.">
+<style>
+  .grid {
+    display: grid;
+    color: green;
+  }
+
+  body::first-letter {
+    color: red;
+  }
+</style>
+<div class="grid">
+  <div>
+    <p>This text should be <strong>green</strong> and body and paragraph margins should <strong>not collapse</strong>.</p>
+  </div>
+</div>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-first-letter-002.xht b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-first-letter-002.xht
deleted file mode 100644
index 078f3ef..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-first-letter-002.xht
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-    <head>
-        <title>CSS Grid Layout Test: '::first-letter' from grid container ancestors does not apply to grid items</title>
-        <link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com" />
-        <link rel="help" href="http://www.w3.org/TR/css-grid-1/#grid-containers" title="3.1 Establishing Grid Containers" />
-        <link rel="help" href="http://www.w3.org/TR/css3-selectors/#first-letter" title="7.2. The ::first-letter pseudo-element" />
-        <link rel="match" href="../reference/grid-text-green-margin-no-collapse-ref.xht" />
-        <meta name="assert" content="This test checks that '::first-letter' pseudo-element is ignored in grid items when applied to a grid container ancestors." />
-        <style type="text/css"><![CDATA[
-            .grid {
-                display: grid;
-                color: green;
-            }
-
-            body::first-letter {
-                color: red;
-            }
-        ]]></style>
-    </head>
-    <body>
-        <div class="grid">
-            <div>
-                <p>This text should be <strong>green</strong> and body and paragraph margins should <strong>not collapse</strong>.</p>
-            </div>
-        </div>
-    </body>
-</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-first-letter-003.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-first-letter-003.html
new file mode 100644
index 0000000..9d9a0c7
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-first-letter-003.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Grid Layout Test: '::first-letter' works on grid items</title>
+<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
+<link rel="help" href="http://www.w3.org/TR/css-grid-1/#grid-containers" title="3.1 Establishing Grid Containers">
+<link rel="help" href="http://www.w3.org/TR/css3-selectors/#first-letter" title="7.2. The ::first-letter pseudo-element">
+<link rel="match" href="../reference/grid-first-letter-green-margin-no-collapse-ref.html">
+<meta name="assert" content="This test checks that '::first-letter' pseudo-element works as expected if it is applied directly to a grid item.">
+<style>
+  .grid {
+    display: grid;
+  }
+
+  .item::first-letter {
+    color: green;
+  }
+</style>
+<div class="grid">
+  <div class="item">
+    <p>
+      The <strong>first letter</strong> of this paragraph, and only that one, should be <strong>green</strong>.
+      In addition, body and paragraph margins should <strong>not collapse</strong>.
+    </p>
+  </div>
+</div>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-first-letter-003.xht b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-first-letter-003.xht
deleted file mode 100644
index 01f9a29..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-first-letter-003.xht
+++ /dev/null
@@ -1,30 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-    <head>
-        <title>CSS Grid Layout Test: '::first-letter' works on grid items</title>
-        <link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com" />
-        <link rel="help" href="http://www.w3.org/TR/css-grid-1/#grid-containers" title="3.1 Establishing Grid Containers" />
-        <link rel="help" href="http://www.w3.org/TR/css3-selectors/#first-letter" title="7.2. The ::first-letter pseudo-element" />
-        <link rel="match" href="../reference/grid-first-letter-green-margin-no-collapse-ref.xht" />
-        <meta name="assert" content="This test checks that '::first-letter' pseudo-element works as expected if it is applied directly to a grid item." />
-        <style type="text/css"><![CDATA[
-            .grid {
-                display: grid;
-            }
-
-            .item::first-letter {
-                color: green;
-            }
-        ]]></style>
-    </head>
-    <body>
-        <div class="grid">
-            <div class="item">
-                <p>
-                    The <strong>first letter</strong> of this paragraph, and only that one, should be <strong>green</strong>.
-                    In addition, body and paragraph margins should <strong>not collapse</strong>.
-                </p>
-            </div>
-        </div>
-    </body>
-</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-first-line-001.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-first-line-001.html
new file mode 100644
index 0000000..9f154ee
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-first-line-001.html
@@ -0,0 +1,23 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Grid Layout Test: '::first-line' from grid container does not apply to grid items</title>
+<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
+<link rel="help" href="http://www.w3.org/TR/css-grid-1/#grid-containers" title="3.1 Establishing Grid Containers">
+<link rel="help" href="http://www.w3.org/TR/css3-selectors/#first-formatted-line" title="7.1.1. First formatted line definition in CSS">
+<link rel="match" href="../reference/grid-text-green-margin-no-collapse-ref.html">
+<meta name="assert" content="This test checks that '::first-line' pseudo-element is ignored in grid items when applied to a grid container.">
+<style>
+  .grid {
+    display: grid;
+    color: green;
+  }
+
+  .grid::first-line {
+    color: red;
+  }
+</style>
+<div class="grid">
+  <div>
+    <p>This text should be <strong>green</strong> and body and paragraph margins should <strong>not collapse</strong>.</p>
+  </div>
+</div>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-first-line-001.xht b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-first-line-001.xht
deleted file mode 100644
index ea8f991..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-first-line-001.xht
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-    <head>
-        <title>CSS Grid Layout Test: '::first-line' from grid container does not apply to grid items</title>
-        <link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com" />
-        <link rel="help" href="http://www.w3.org/TR/css-grid-1/#grid-containers" title="3.1 Establishing Grid Containers" />
-        <link rel="help" href="http://www.w3.org/TR/css3-selectors/#first-formatted-line" title="7.1.1. First formatted line definition in CSS" />
-        <link rel="match" href="../reference/grid-text-green-margin-no-collapse-ref.xht" />
-        <meta name="assert" content="This test checks that '::first-line' pseudo-element is ignored in grid items when applied to a grid container." />
-        <style type="text/css"><![CDATA[
-            .grid {
-                display: grid;
-                color: green;
-            }
-
-            .grid::first-line {
-                color: red;
-            }
-        ]]></style>
-    </head>
-    <body>
-        <div class="grid">
-            <div>
-                <p>This text should be <strong>green</strong> and body and paragraph margins should <strong>not collapse</strong>.</p>
-            </div>
-        </div>
-    </body>
-</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-first-line-002.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-first-line-002.html
new file mode 100644
index 0000000..ea87c87
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-first-line-002.html
@@ -0,0 +1,23 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Grid Layout Test: '::first-line' from grid container ancestors does not apply to grid items</title>
+<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
+<link rel="help" href="http://www.w3.org/TR/css-grid-1/#grid-containers" title="3.1 Establishing Grid Containers">
+<link rel="help" href="http://www.w3.org/TR/css3-selectors/#first-formatted-line" title="7.1.1. First formatted line definition in CSS">
+<link rel="match" href="../reference/grid-text-green-margin-no-collapse-ref.html">
+<meta name="assert" content="This test checks that '::first-line' pseudo-element is ignored in grid items when applied to a grid container ancestors.">
+<style>
+  .grid {
+    display: grid;
+    color: green;
+  }
+
+  body::first-line {
+    color: red;
+  }
+</style>
+<div class="grid">
+  <div>
+    <p>This text should be <strong>green</strong> and body and paragraph margins should <strong>not collapse</strong>.</p>
+  </div>
+</div>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-first-line-002.xht b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-first-line-002.xht
deleted file mode 100644
index 09f3cf8..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-first-line-002.xht
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-    <head>
-        <title>CSS Grid Layout Test: '::first-line' from grid container ancestors does not apply to grid items</title>
-        <link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com" />
-        <link rel="help" href="http://www.w3.org/TR/css-grid-1/#grid-containers" title="3.1 Establishing Grid Containers" />
-        <link rel="help" href="http://www.w3.org/TR/css3-selectors/#first-formatted-line" title="7.1.1. First formatted line definition in CSS" />
-        <link rel="match" href="../reference/grid-text-green-margin-no-collapse-ref.xht" />
-        <meta name="assert" content="This test checks that '::first-line' pseudo-element is ignored in grid items when applied to a grid container ancestors." />
-        <style type="text/css"><![CDATA[
-            .grid {
-                display: grid;
-                color: green;
-            }
-
-            body::first-line {
-                color: red;
-            }
-        ]]></style>
-    </head>
-    <body>
-        <div class="grid">
-            <div>
-                <p>This text should be <strong>green</strong> and body and paragraph margins should <strong>not collapse</strong>.</p>
-            </div>
-        </div>
-    </body>
-</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-first-line-003.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-first-line-003.html
new file mode 100644
index 0000000..ede9901
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-first-line-003.html
@@ -0,0 +1,23 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Grid Layout Test: '::first-line' works on grid items</title>
+<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
+<link rel="help" href="http://www.w3.org/TR/css-grid-1/#grid-containers" title="3.1 Establishing Grid Containers">
+<link rel="help" href="http://www.w3.org/TR/css3-selectors/#first-formatted-line" title="7.1.1. First formatted line definition in CSS">
+<link rel="match" href="../reference/grid-text-green-margin-no-collapse-ref.html">
+<meta name="assert" content="This test checks that '::first-line' pseudo-element works as expected if it is applied directly to a grid item.">
+<style>
+  .grid {
+    display: grid;
+    color: red;
+  }
+
+  .item::first-line {
+    color: green;
+  }
+</style>
+<div class="grid">
+  <div class="item">
+    <p>This text should be <strong>green</strong> and body and paragraph margins should <strong>not collapse</strong>.</p>
+  </div>
+</div>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-first-line-003.xht b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-first-line-003.xht
deleted file mode 100644
index b97aeb6..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-first-line-003.xht
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-    <head>
-        <title>CSS Grid Layout Test: '::first-line' works on grid items</title>
-        <link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com" />
-        <link rel="help" href="http://www.w3.org/TR/css-grid-1/#grid-containers" title="3.1 Establishing Grid Containers" />
-        <link rel="help" href="http://www.w3.org/TR/css3-selectors/#first-formatted-line" title="7.1.1. First formatted line definition in CSS" />
-        <link rel="match" href="../reference/grid-text-green-margin-no-collapse-ref.xht" />
-        <meta name="assert" content="This test checks that '::first-line' pseudo-element works as expected if it is applied directly to a grid item." />
-        <style type="text/css"><![CDATA[
-            .grid {
-                display: grid;
-                color: red;
-            }
-
-            .item::first-line {
-                color: green;
-            }
-        ]]></style>
-    </head>
-    <body>
-        <div class="grid">
-            <div class="item">
-                <p>This text should be <strong>green</strong> and body and paragraph margins should <strong>not collapse</strong>.</p>
-            </div>
-        </div>
-    </body>
-</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-float-001.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-float-001.html
new file mode 100644
index 0000000..521a3bd6
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-float-001.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Grid Layout Test: 'float' has no effect on grid items</title>
+<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
+<link rel="reviewer" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/"> <!-- 2015-01-03 -->
+<link rel="help" href="http://www.w3.org/TR/css-grid-1/#grid-containers" title="3.1 Establishing Grid Containers">
+<link rel="help" href="http://www.w3.org/TR/CSS21/visuren.html#float-position" title="9.5.1 Positioning the float">
+<link rel="match" href="../../reference/ref-filled-green-100px-square.xht">
+<style>
+  #reference-overlapped-red {
+    position: absolute;
+    background-color: red;
+    width: 100px;
+    height: 100px;
+    z-index: -1;
+  }
+
+  .grid {
+    display: grid;
+  }
+
+  .test-overlapping-green {
+    background-color: green;
+    width: 100px;
+    height: 50px;
+  }
+
+  .float-left {
+    float: left;
+  }
+</style>
+<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
+
+<div id="reference-overlapped-red"></div>
+
+<div class="grid">
+  <div class="test-overlapping-green float-left"></div>
+  <div class="test-overlapping-green"></div>
+</div>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-float-001.xht b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-float-001.xht
deleted file mode 100644
index e56fda91..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-float-001.xht
+++ /dev/null
@@ -1,44 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-    <head>
-        <title>CSS Grid Layout Test: 'float' has no effect on grid items</title>
-        <link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com" />
-        <link rel="reviewer" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/" /> <!-- 2015-01-03 -->
-        <link rel="help" href="http://www.w3.org/TR/css-grid-1/#grid-containers" title="3.1 Establishing Grid Containers" />
-        <link rel="help" href="http://www.w3.org/TR/CSS21/visuren.html#float-position" title="9.5.1 Positioning the float" />
-        <link rel="match" href="../../reference/ref-filled-green-100px-square.xht" />
-        <style type="text/css"><![CDATA[
-            #reference-overlapped-red {
-                position: absolute;
-                background-color: red;
-                width: 100px;
-                height: 100px;
-                z-index: -1;
-            }
-
-            .grid {
-                display: grid;
-            }
-
-            .test-overlapping-green {
-                background-color: green;
-                width: 100px;
-                height: 50px;
-            }
-
-            .float-left {
-                float: left;
-            }
-        ]]></style>
-    </head>
-    <body>
-        <p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
-
-        <div id="reference-overlapped-red"></div>
-
-        <div class="grid">
-            <div class="test-overlapping-green float-left"></div>
-            <div class="test-overlapping-green"></div>
-        </div>
-    </body>
-</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-floats-no-intrude-001.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-floats-no-intrude-001.html
new file mode 100644
index 0000000..31eab4b
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-floats-no-intrude-001.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Grid Layout Test: floats do not intrude into a grid</title>
+<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
+<link rel="help" href="http://www.w3.org/TR/css-grid-1/#grid-containers" title="3.1 Establishing Grid Containers">
+<link rel="match" href="../../reference/ref-filled-green-100px-square.xht">
+<style>
+  #reference-overlapped-red {
+    position: absolute;
+    background-color: red;
+    width: 100px;
+    height: 100px;
+    z-index: -1;
+  }
+
+  .test-overlapping-green {
+    background-color: green;
+    width: 50px;
+    height: 100px;
+  }
+
+  .float {
+    float: left;
+  }
+
+  .grid {
+    display: grid;
+  }
+</style>
+<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
+
+<div id="reference-overlapped-red"></div>
+
+<div class="float test-overlapping-green"></div>
+<div class="grid test-overlapping-green"></div>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-floats-no-intrude-001.xht b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-floats-no-intrude-001.xht
deleted file mode 100644
index 6f61edf4..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-floats-no-intrude-001.xht
+++ /dev/null
@@ -1,40 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-    <head>
-        <title>CSS Grid Layout Test: floats do not intrude into a grid</title>
-        <link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com" />
-        <link rel="help" href="http://www.w3.org/TR/css-grid-1/#grid-containers" title="3.1 Establishing Grid Containers" />
-        <link rel="match" href="../../reference/ref-filled-green-100px-square.xht" />
-        <style type="text/css"><![CDATA[
-            #reference-overlapped-red {
-                position: absolute;
-                background-color: red;
-                width: 100px;
-                height: 100px;
-                z-index: -1;
-            }
-
-            .test-overlapping-green {
-                background-color: green;
-                width: 50px;
-                height: 100px;
-            }
-
-            .float {
-                float: left;
-            }
-
-            .grid {
-                display: grid;
-            }
-        ]]></style>
-    </head>
-    <body>
-        <p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
-
-        <div id="reference-overlapped-red"></div>
-
-        <div class="float test-overlapping-green"></div>
-        <div class="grid test-overlapping-green"></div>
-    </body>
-</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-inline-first-letter-001.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-inline-first-letter-001.html
new file mode 100644
index 0000000..bc62c17
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-inline-first-letter-001.html
@@ -0,0 +1,23 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Grid Layout Test: '::first-letter' from inline grid container does not apply to grid items</title>
+<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
+<link rel="help" href="http://www.w3.org/TR/css-grid-1/#grid-containers" title="3.1 Establishing Grid Containers">
+<link rel="help" href="http://www.w3.org/TR/css3-selectors/#first-letter" title="7.2. The ::first-letter pseudo-element">
+<link rel="match" href="../reference/grid-text-green-margin-no-collapse-ref.html">
+<meta name="assert" content="This test checks that '::first-letter' pseudo-element is ignored in grid items when applied to an inline grid container.">
+<style>
+  .inline-grid {
+    display: inline-grid;
+    color: green;
+  }
+
+  .grid::first-letter {
+    color: red;
+  }
+</style>
+<div class="inline-grid">
+  <div>
+    <p>This text should be <strong>green</strong> and body and paragraph margins should <strong>not collapse</strong>.</p>
+  </div>
+</div>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-inline-first-letter-001.xht b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-inline-first-letter-001.xht
deleted file mode 100644
index 7b84207..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-inline-first-letter-001.xht
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-    <head>
-        <title>CSS Grid Layout Test: '::first-letter' from inline grid container does not apply to grid items</title>
-        <link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com" />
-        <link rel="help" href="http://www.w3.org/TR/css-grid-1/#grid-containers" title="3.1 Establishing Grid Containers" />
-        <link rel="help" href="http://www.w3.org/TR/css3-selectors/#first-letter" title="7.2. The ::first-letter pseudo-element" />
-        <link rel="match" href="../reference/grid-text-green-margin-no-collapse-ref.xht" />
-        <meta name="assert" content="This test checks that '::first-letter' pseudo-element is ignored in grid items when applied to an inline grid container." />
-        <style type="text/css"><![CDATA[
-            .inline-grid {
-                display: inline-grid;
-                color: green;
-            }
-
-            .grid::first-letter {
-                color: red;
-            }
-        ]]></style>
-    </head>
-    <body>
-        <div class="inline-grid">
-            <div>
-                <p>This text should be <strong>green</strong> and body and paragraph margins should <strong>not collapse</strong>.</p>
-            </div>
-        </div>
-    </body>
-</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-inline-first-letter-002.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-inline-first-letter-002.html
new file mode 100644
index 0000000..afdc0de9
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-inline-first-letter-002.html
@@ -0,0 +1,23 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Grid Layout Test: '::first-letter' from inline grid container ancestors does not apply to grid items</title>
+<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
+<link rel="help" href="http://www.w3.org/TR/css-grid-1/#grid-containers" title="3.1 Establishing Grid Containers">
+<link rel="help" href="http://www.w3.org/TR/css3-selectors/#first-letter" title="7.2. The ::first-letter pseudo-element">
+<link rel="match" href="../reference/grid-text-green-margin-no-collapse-ref.html">
+<meta name="assert" content="This test checks that '::first-letter' pseudo-element is ignored in grid items when applied to an inline grid container ancestors.">
+<style>
+  .inline-grid {
+    display: inline-grid;
+    color: green;
+  }
+
+  body::first-letter {
+    color: red;
+  }
+</style>
+<div class="inline-grid">
+  <div>
+    <p>This text should be <strong>green</strong> and body and paragraph margins should <strong>not collapse</strong>.</p>
+  </div>
+</div>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-inline-first-letter-002.xht b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-inline-first-letter-002.xht
deleted file mode 100644
index e360d90..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-inline-first-letter-002.xht
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-    <head>
-        <title>CSS Grid Layout Test: '::first-letter' from inline grid container ancestors does not apply to grid items</title>
-        <link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com" />
-        <link rel="help" href="http://www.w3.org/TR/css-grid-1/#grid-containers" title="3.1 Establishing Grid Containers" />
-        <link rel="help" href="http://www.w3.org/TR/css3-selectors/#first-letter" title="7.2. The ::first-letter pseudo-element" />
-        <link rel="match" href="../reference/grid-text-green-margin-no-collapse-ref.xht" />
-        <meta name="assert" content="This test checks that '::first-letter' pseudo-element is ignored in grid items when applied to an inline grid container ancestors." />
-        <style type="text/css"><![CDATA[
-            .inline-grid {
-                display: inline-grid;
-                color: green;
-            }
-
-            body::first-letter {
-                color: red;
-            }
-        ]]></style>
-    </head>
-    <body>
-        <div class="inline-grid">
-            <div>
-                <p>This text should be <strong>green</strong> and body and paragraph margins should <strong>not collapse</strong>.</p>
-            </div>
-        </div>
-    </body>
-</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-inline-first-letter-003.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-inline-first-letter-003.html
new file mode 100644
index 0000000..e3efd51
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-inline-first-letter-003.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Grid Layout Test: '::first-letter' works on grid items within an inline grid</title>
+<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
+<link rel="help" href="http://www.w3.org/TR/css-grid-1/#grid-containers" title="3.1 Establishing Grid Containers">
+<link rel="help" href="http://www.w3.org/TR/css3-selectors/#first-letter" title="7.2. The ::first-letter pseudo-element">
+<link rel="match" href="../reference/grid-first-letter-green-margin-no-collapse-ref.html">
+<meta name="assert" content="This test checks that '::first-letter' pseudo-element works as expected if it is applied directly to a grid item within an inline grid.">
+<style>
+  .inline-grid {
+    display: inline-grid;
+  }
+
+  .item::first-letter {
+    color: green;
+  }
+</style>
+<div class="inline-grid">
+  <div class="item">
+    <p>
+      The <strong>first letter</strong> of this paragraph, and only that one, should be <strong>green</strong>.
+      In addition, body and paragraph margins should <strong>not collapse</strong>.
+    </p>
+  </div>
+</div>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-inline-first-letter-003.xht b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-inline-first-letter-003.xht
deleted file mode 100644
index 069489c..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-inline-first-letter-003.xht
+++ /dev/null
@@ -1,30 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-    <head>
-        <title>CSS Grid Layout Test: '::first-letter' works on grid items within an inline grid</title>
-        <link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com" />
-        <link rel="help" href="http://www.w3.org/TR/css-grid-1/#grid-containers" title="3.1 Establishing Grid Containers" />
-        <link rel="help" href="http://www.w3.org/TR/css3-selectors/#first-letter" title="7.2. The ::first-letter pseudo-element" />
-        <link rel="match" href="../reference/grid-first-letter-green-margin-no-collapse-ref.xht" />
-        <meta name="assert" content="This test checks that '::first-letter' pseudo-element works as expected if it is applied directly to a grid item within an inline grid." />
-        <style type="text/css"><![CDATA[
-            .inline-grid {
-                display: inline-grid;
-            }
-
-            .item::first-letter {
-                color: green;
-            }
-        ]]></style>
-    </head>
-    <body>
-        <div class="inline-grid">
-            <div class="item">
-                <p>
-                    The <strong>first letter</strong> of this paragraph, and only that one, should be <strong>green</strong>.
-                    In addition, body and paragraph margins should <strong>not collapse</strong>.
-                </p>
-            </div>
-        </div>
-    </body>
-</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-inline-first-line-001.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-inline-first-line-001.html
new file mode 100644
index 0000000..2df3d55
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-inline-first-line-001.html
@@ -0,0 +1,23 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Grid Layout Test: '::first-line' from inline grid container does not apply to grid items</title>
+<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
+<link rel="help" href="http://www.w3.org/TR/css-grid-1/#grid-containers" title="3.1 Establishing Grid Containers">
+<link rel="help" href="http://www.w3.org/TR/css3-selectors/#first-formatted-line" title="7.1.1. First formatted line definition in CSS">
+<link rel="match" href="../reference/grid-text-green-margin-no-collapse-ref.html">
+<meta name="assert" content="This test checks that '::first-line' pseudo-element is ignored in grid items when applied to an inline grid container.">
+<style>
+  .inline-grid {
+    display: inline-grid;
+    color: green;
+  }
+
+  .inline-grid::first-line {
+    color: red;
+  }
+</style>
+<div class="inline-grid">
+  <div>
+    <p>This text should be <strong>green</strong> and body and paragraph margins should <strong>not collapse</strong>.</p>
+  </div>
+</div>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-inline-first-line-001.xht b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-inline-first-line-001.xht
deleted file mode 100644
index dfadc2d..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-inline-first-line-001.xht
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-    <head>
-        <title>CSS Grid Layout Test: '::first-line' from inline grid container does not apply to grid items</title>
-        <link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com" />
-        <link rel="help" href="http://www.w3.org/TR/css-grid-1/#grid-containers" title="3.1 Establishing Grid Containers" />
-        <link rel="help" href="http://www.w3.org/TR/css3-selectors/#first-formatted-line" title="7.1.1. First formatted line definition in CSS" />
-        <link rel="match" href="../reference/grid-text-green-margin-no-collapse-ref.xht" />
-        <meta name="assert" content="This test checks that '::first-line' pseudo-element is ignored in grid items when applied to an inline grid container." />
-        <style type="text/css"><![CDATA[
-            .inline-grid {
-                display: inline-grid;
-                color: green;
-            }
-
-            .inline-grid::first-line {
-                color: red;
-            }
-        ]]></style>
-    </head>
-    <body>
-        <div class="inline-grid">
-            <div>
-                <p>This text should be <strong>green</strong> and body and paragraph margins should <strong>not collapse</strong>.</p>
-            </div>
-        </div>
-    </body>
-</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-inline-first-line-002.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-inline-first-line-002.html
new file mode 100644
index 0000000..efdee52d
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-inline-first-line-002.html
@@ -0,0 +1,23 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Grid Layout Test: '::first-line' from inline grid container ancestors does not apply to grid items</title>
+<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
+<link rel="help" href="http://www.w3.org/TR/css-grid-1/#grid-containers" title="3.1 Establishing Grid Containers">
+<link rel="help" href="http://www.w3.org/TR/css3-selectors/#first-formatted-line" title="7.1.1. First formatted line definition in CSS">
+<link rel="match" href="../reference/grid-text-green-margin-no-collapse-ref.html">
+<meta name="assert" content="This test checks that '::first-line' pseudo-element is ignored in anonymous grid items when applied to an inline grid container ancestors.">
+<style>
+  .inline-grid {
+    display: inline-grid;
+    color: green;
+  }
+
+  body::first-line {
+    color: red;
+  }
+</style>
+<div class="inline-grid">
+  <div>
+    <p>This text should be <strong>green</strong> and body and paragraph margins should <strong>not collapse</strong>.</p>
+  </div>
+</div>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-inline-first-line-002.xht b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-inline-first-line-002.xht
deleted file mode 100644
index ba176bc..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-inline-first-line-002.xht
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-    <head>
-        <title>CSS Grid Layout Test: '::first-line' from inline grid container ancestors does not apply to grid items</title>
-        <link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com" />
-        <link rel="help" href="http://www.w3.org/TR/css-grid-1/#grid-containers" title="3.1 Establishing Grid Containers" />
-        <link rel="help" href="http://www.w3.org/TR/css3-selectors/#first-formatted-line" title="7.1.1. First formatted line definition in CSS" />
-        <link rel="match" href="../reference/grid-text-green-margin-no-collapse-ref.xht" />
-        <meta name="assert" content="This test checks that '::first-line' pseudo-element is ignored in anonymous grid items when applied to an inline grid container ancestors." />
-        <style type="text/css"><![CDATA[
-            .inline-grid {
-                display: inline-grid;
-                color: green;
-            }
-
-            body::first-line {
-                color: red;
-            }
-        ]]></style>
-    </head>
-    <body>
-        <div class="inline-grid">
-            <div>
-                <p>This text should be <strong>green</strong> and body and paragraph margins should <strong>not collapse</strong>.</p>
-            </div>
-        </div>
-    </body>
-</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-inline-first-line-003.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-inline-first-line-003.html
new file mode 100644
index 0000000..2b9c3ca
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-inline-first-line-003.html
@@ -0,0 +1,23 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Grid Layout Test: '::first-line' works on grid items within an inline grid</title>
+<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
+<link rel="help" href="http://www.w3.org/TR/css-grid-1/#grid-containers" title="3.1 Establishing Grid Containers">
+<link rel="help" href="http://www.w3.org/TR/css3-selectors/#first-formatted-line" title="7.1.1. First formatted line definition in CSS">
+<link rel="match" href="../reference/grid-text-green-margin-no-collapse-ref.html">
+<meta name="assert" content="This test checks that '::first-line' pseudo-element works as expected if it is applied directly to a grid item within an inline grid.">
+<style>
+  .inline-grid {
+    display: inline-grid;
+    color: red;
+  }
+
+  .item::first-line {
+    color: green;
+  }
+</style>
+<div class="inline-grid">
+  <div class="item">
+    <p>This text should be <strong>green</strong> and body and paragraph margins should <strong>not collapse</strong>.</p>
+  </div>
+</div>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-inline-first-line-003.xht b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-inline-first-line-003.xht
deleted file mode 100644
index 13a29cbb..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-inline-first-line-003.xht
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-    <head>
-        <title>CSS Grid Layout Test: '::first-line' works on grid items within an inline grid</title>
-        <link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com" />
-        <link rel="help" href="http://www.w3.org/TR/css-grid-1/#grid-containers" title="3.1 Establishing Grid Containers" />
-        <link rel="help" href="http://www.w3.org/TR/css3-selectors/#first-formatted-line" title="7.1.1. First formatted line definition in CSS" />
-        <link rel="match" href="../reference/grid-text-green-margin-no-collapse-ref.xht" />
-        <meta name="assert" content="This test checks that '::first-line' pseudo-element works as expected if it is applied directly to a grid item within an inline grid." />
-        <style type="text/css"><![CDATA[
-            .inline-grid {
-                display: inline-grid;
-                color: red;
-            }
-
-            .item::first-line {
-                color: green;
-            }
-        ]]></style>
-    </head>
-    <body>
-        <div class="inline-grid">
-            <div class="item">
-                <p>This text should be <strong>green</strong> and body and paragraph margins should <strong>not collapse</strong>.</p>
-            </div>
-        </div>
-    </body>
-</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-inline-float-001.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-inline-float-001.html
new file mode 100644
index 0000000..8222897
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-inline-float-001.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Grid Layout Test: 'float' has no effect on grid items within an inline grid</title>
+<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
+<link rel="reviewer" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/"> <!-- 2015-01-03 -->
+<link rel="help" href="http://www.w3.org/TR/css-grid-1/#grid-containers" title="3.1 Establishing Grid Containers">
+<link rel="help" href="http://www.w3.org/TR/CSS21/visuren.html#float-position" title="9.5.1 Positioning the float">
+<link rel="match" href="../../reference/ref-filled-green-100px-square.xht">
+<style>
+  #reference-overlapped-red {
+    position: absolute;
+    background-color: red;
+    width: 100px;
+    height: 100px;
+    z-index: -1;
+  }
+
+  .inline-grid {
+    display: inline-grid;
+  }
+
+  .test-overlapping-green {
+    background-color: green;
+    width: 100px;
+    height: 50px;
+  }
+
+  .float-left {
+    float: left;
+  }
+</style>
+<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
+
+<div id="reference-overlapped-red"></div>
+
+<div class="inline-grid">
+  <div class="test-overlapping-green float-left"></div>
+  <div class="test-overlapping-green"></div>
+</div>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-inline-float-001.xht b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-inline-float-001.xht
deleted file mode 100644
index 04a530fe..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-inline-float-001.xht
+++ /dev/null
@@ -1,44 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-    <head>
-        <title>CSS Grid Layout Test: 'float' has no effect on grid items within an inline grid</title>
-        <link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com" />
-        <link rel="reviewer" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/" /> <!-- 2015-01-03 -->
-        <link rel="help" href="http://www.w3.org/TR/css-grid-1/#grid-containers" title="3.1 Establishing Grid Containers" />
-        <link rel="help" href="http://www.w3.org/TR/CSS21/visuren.html#float-position" title="9.5.1 Positioning the float" />
-        <link rel="match" href="../../reference/ref-filled-green-100px-square.xht" />
-        <style type="text/css"><![CDATA[
-            #reference-overlapped-red {
-                position: absolute;
-                background-color: red;
-                width: 100px;
-                height: 100px;
-                z-index: -1;
-            }
-
-            .inline-grid {
-                display: inline-grid;
-            }
-
-            .test-overlapping-green {
-                background-color: green;
-                width: 100px;
-                height: 50px;
-            }
-
-            .float-left {
-                float: left;
-            }
-        ]]></style>
-    </head>
-    <body>
-        <p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
-
-        <div id="reference-overlapped-red"></div>
-
-        <div class="inline-grid">
-            <div class="test-overlapping-green float-left"></div>
-            <div class="test-overlapping-green"></div>
-        </div>
-    </body>
-</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-inline-floats-no-intrude-001.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-inline-floats-no-intrude-001.html
new file mode 100644
index 0000000..b15aabab0
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-inline-floats-no-intrude-001.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Grid Layout Test: floats do not intrude into an inline grid</title>
+<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
+<link rel="help" href="http://www.w3.org/TR/css-grid-1/#grid-containers" title="3.1 Establishing Grid Containers">
+<link rel="match" href="../../reference/ref-filled-green-100px-square.xht">
+<style>
+  #reference-overlapped-red {
+    position: absolute;
+    background-color: red;
+    width: 100px;
+    height: 100px;
+    z-index: -1;
+  }
+
+  .test-overlapping-green {
+    background-color: green;
+    width: 50px;
+    height: 100px;
+  }
+
+  .float {
+    float: left;
+  }
+
+  .inline-grid {
+    display: inline-grid;
+  }
+</style>
+<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
+
+<div id="reference-overlapped-red"></div>
+
+<div class="float test-overlapping-green"></div>
+<div class="inline-grid test-overlapping-green"></div>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-inline-floats-no-intrude-001.xht b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-inline-floats-no-intrude-001.xht
deleted file mode 100644
index 7520c94..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-inline-floats-no-intrude-001.xht
+++ /dev/null
@@ -1,40 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-    <head>
-        <title>CSS Grid Layout Test: floats do not intrude into an inline grid</title>
-        <link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com" />
-        <link rel="help" href="http://www.w3.org/TR/css-grid-1/#grid-containers" title="3.1 Establishing Grid Containers" />
-        <link rel="match" href="../../reference/ref-filled-green-100px-square.xht" />
-        <style type="text/css"><![CDATA[
-            #reference-overlapped-red {
-                position: absolute;
-                background-color: red;
-                width: 100px;
-                height: 100px;
-                z-index: -1;
-            }
-
-            .test-overlapping-green {
-                background-color: green;
-                width: 50px;
-                height: 100px;
-            }
-
-            .float {
-                float: left;
-            }
-
-            .inline-grid {
-                display: inline-grid;
-            }
-        ]]></style>
-    </head>
-    <body>
-        <p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
-
-        <div id="reference-overlapped-red"></div>
-
-        <div class="float test-overlapping-green"></div>
-        <div class="inline-grid test-overlapping-green"></div>
-    </body>
-</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-inline-margins-no-collapse-001.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-inline-margins-no-collapse-001.html
new file mode 100644
index 0000000..4260fe8
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-inline-margins-no-collapse-001.html
@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Grid Layout Test: inline grid's margins do not collapse</title>
+<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
+<link rel="help" href="http://www.w3.org/TR/css-grid-1/#grid-containers" title="3.1 Establishing Grid Containers">
+<link rel="match" href="../reference/grid-text-green-margin-no-collapse-ref.html">
+<meta name="assert" content="This test checks that inline grid's margin (body) do not collapse with the marings of the grid item (a paragraph).">
+<style>
+  body {
+    display: inline-grid;
+  }
+
+  p {
+    color: green;
+  }
+</style>
+<p>This text should be <strong>green</strong> and body and paragraph margins should <strong>not collapse</strong>.</p>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-inline-margins-no-collapse-001.xht b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-inline-margins-no-collapse-001.xht
deleted file mode 100644
index cbfeee0..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-inline-margins-no-collapse-001.xht
+++ /dev/null
@@ -1,22 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-    <head>
-        <title>CSS Grid Layout Test: inline grid's margins do not collapse</title>
-        <link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com" />
-        <link rel="help" href="http://www.w3.org/TR/css-grid-1/#grid-containers" title="3.1 Establishing Grid Containers" />
-        <link rel="match" href="../reference/grid-text-green-margin-no-collapse-ref.xht" />
-        <meta name="assert" content="This test checks that inline grid's margin (body) do not collapse with the marings of the grid item (a paragraph)." />
-        <style type="text/css"><![CDATA[
-            body {
-                display: inline-grid;
-            }
-
-            p {
-                color: green;
-            }
-        ]]></style>
-    </head>
-    <body>
-        <p>This text should be <strong>green</strong> and body and paragraph margins should <strong>not collapse</strong>.</p>
-    </body>
-</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-inline-multicol-001.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-inline-multicol-001.html
new file mode 100644
index 0000000..3e51b16f
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-inline-multicol-001.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Grid Layout Test: 'column-*' properties from inline grid container does not apply to grid items</title>
+<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
+<link rel="help" href="http://www.w3.org/TR/css-grid-1/#grid-containers" title="3.1 Establishing Grid Containers">
+<link rel="help" href="http://www.w3.org/TR/css3-multicol/#the-number-and-width-of-columns" title="3. The number and width of columns">
+<link rel="match" href="../../reference/ref-filled-green-100px-square.xht">
+<meta name="assert" content="This test checks that 'column-*' properties in the Multicol module are ignored in grid items when applied to an inline grid container.">
+<style>
+  #reference-overlapped-red {
+    position: absolute;
+    background-color: red;
+    width: 100px;
+    height: 100px;
+    z-index: -1;
+  }
+
+  .test-overlapping-green {
+    background-color: green;
+    width: 100px;
+    height: 50px;
+  }
+
+  .inline-grid {
+    display: inline-grid;
+    column-width: 50px;
+  }
+</style>
+<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
+
+<div id="reference-overlapped-red"></div>
+
+<div class="inline-grid">
+  <div class="test-overlapping-green"></div>
+  <div class="test-overlapping-green"></div>
+</div>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-inline-multicol-001.xht b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-inline-multicol-001.xht
deleted file mode 100644
index be27a53b..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-inline-multicol-001.xht
+++ /dev/null
@@ -1,41 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-    <head>
-        <title>CSS Grid Layout Test: 'column-*' properties from inline grid container does not apply to grid items</title>
-        <link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com" />
-        <link rel="help" href="http://www.w3.org/TR/css-grid-1/#grid-containers" title="3.1 Establishing Grid Containers" />
-        <link rel="help" href="http://www.w3.org/TR/css3-multicol/#the-number-and-width-of-columns" title="3. The number and width of columns" />
-        <link rel="match" href="../../reference/ref-filled-green-100px-square.xht" />
-        <meta name="assert" content="This test checks that 'column-*' properties in the Multicol module are ignored in grid items when applied to an inline grid container." />
-        <style type="text/css"><![CDATA[
-            #reference-overlapped-red {
-                position: absolute;
-                background-color: red;
-                width: 100px;
-                height: 100px;
-                z-index: -1;
-            }
-
-            .test-overlapping-green {
-                background-color: green;
-                width: 100px;
-                height: 50px;
-            }
-
-            .inline-grid {
-                display: inline-grid;
-                column-width: 50px;
-            }
-        ]]></style>
-    </head>
-    <body>
-        <p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
-
-        <div id="reference-overlapped-red"></div>
-
-        <div class="inline-grid">
-            <div class="test-overlapping-green"></div>
-            <div class="test-overlapping-green"></div>
-        </div>
-    </body>
-</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-inline-vertical-align-001.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-inline-vertical-align-001.html
new file mode 100644
index 0000000..d37b8775
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-inline-vertical-align-001.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Grid Layout Test: 'vertical-align' has no effect on grid items within an inline grid</title>
+<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
+<link rel="reviewer" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/"> <!-- 2014-12-10 -->
+<link rel="help" href="http://www.w3.org/TR/css-grid-1/#grid-containers" title="3.1 Establishing Grid Containers">
+<link rel="help" href="http://www.w3.org/TR/CSS21/visudet.html#propdef-vertical-align" title="10.8.1 Leading and half-leading">
+<link rel="match" href="../../reference/ref-filled-green-100px-square.xht">
+<meta name="flags" content="ahem">
+<style>
+  #reference-overlapped-red {
+    position: absolute;
+    background-color: red;
+    width: 100px;
+    height: 100px;
+    z-index: -1;
+  }
+
+  #test-inline-grid-overlapping-green {
+    display: inline-grid;
+    font: 50px/1 Ahem;
+    color: green;
+  }
+
+  #vertical-align {
+    vertical-align: 125px;
+  }
+</style>
+<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
+
+<div id="reference-overlapped-red"></div>
+
+<div id="test-inline-grid-overlapping-green">
+  <span>1s</span>
+  <span id="vertical-align">2n</span>
+</div>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-inline-vertical-align-001.xht b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-inline-vertical-align-001.xht
deleted file mode 100644
index e7d0dfc0..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-inline-vertical-align-001.xht
+++ /dev/null
@@ -1,41 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-    <head>
-        <title>CSS Grid Layout Test: 'vertical-align' has no effect on grid items within an inline grid</title>
-        <link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com" />
-        <link rel="reviewer" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/" /> <!-- 2014-12-10 -->
-        <link rel="help" href="http://www.w3.org/TR/css-grid-1/#grid-containers" title="3.1 Establishing Grid Containers" />
-        <link rel="help" href="http://www.w3.org/TR/CSS21/visudet.html#propdef-vertical-align" title="10.8.1 Leading and half-leading" />
-        <link rel="match" href="../../reference/ref-filled-green-100px-square.xht" />
-        <meta name="flags" content="ahem" />
-        <style type="text/css"><![CDATA[
-            #reference-overlapped-red {
-                position: absolute;
-                background-color: red;
-                width: 100px;
-                height: 100px;
-                z-index: -1;
-            }
-
-            #test-inline-grid-overlapping-green {
-                display: inline-grid;
-                font: 50px/1 Ahem;
-                color: green;
-            }
-
-            #vertical-align {
-                vertical-align: 125px;
-            }
-        ]]></style>
-    </head>
-    <body>
-        <p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
-
-        <div id="reference-overlapped-red"></div>
-
-        <div id="test-inline-grid-overlapping-green">
-            <span>1s</span>
-            <span id="vertical-align">2n</span>
-        </div>
-    </body>
-</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-margins-no-collapse-001.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-margins-no-collapse-001.html
new file mode 100644
index 0000000..764cca9
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-margins-no-collapse-001.html
@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Grid Layout Test: grid's margins do not collapse</title>
+<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
+<link rel="help" href="http://www.w3.org/TR/css-grid-1/#grid-containers" title="3.1 Establishing Grid Containers">
+<link rel="match" href="../reference/grid-text-green-margin-no-collapse-ref.html">
+<meta name="assert" content="This test checks that grid's margin (body) do not collapse with the marings of the grid item (a paragraph).">
+<style>
+  body {
+    display: grid;
+  }
+
+  p {
+    color: green;
+  }
+</style>
+<p>This text should be <strong>green</strong> and body and paragraph margins should <strong>not collapse</strong>.</p>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-margins-no-collapse-001.xht b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-margins-no-collapse-001.xht
deleted file mode 100644
index cbfe32bd..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-margins-no-collapse-001.xht
+++ /dev/null
@@ -1,22 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-    <head>
-        <title>CSS Grid Layout Test: grid's margins do not collapse</title>
-        <link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com" />
-        <link rel="help" href="http://www.w3.org/TR/css-grid-1/#grid-containers" title="3.1 Establishing Grid Containers" />
-        <link rel="match" href="../reference/grid-text-green-margin-no-collapse-ref.xht" />
-        <meta name="assert" content="This test checks that grid's margin (body) do not collapse with the marings of the grid item (a paragraph)." />
-        <style type="text/css"><![CDATA[
-            body {
-                display: grid;
-            }
-
-            p {
-                color: green;
-            }
-        ]]></style>
-    </head>
-    <body>
-        <p>This text should be <strong>green</strong> and body and paragraph margins should <strong>not collapse</strong>.</p>
-    </body>
-</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-multicol-001.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-multicol-001.html
new file mode 100644
index 0000000..553a33e6
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-multicol-001.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Grid Layout Test: 'column-*' properties from grid container does not apply to grid items</title>
+<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
+<link rel="help" href="http://www.w3.org/TR/css-grid-1/#grid-containers" title="3.1 Establishing Grid Containers">
+<link rel="help" href="http://www.w3.org/TR/css3-multicol/#the-number-and-width-of-columns" title="3. The number and width of columns">
+<link rel="match" href="../../reference/ref-filled-green-100px-square.xht">
+<meta name="assert" content="This test checks that 'column-*' properties in the Multicol module are ignored in grid items when applied to a grid container.">
+<style>
+  #reference-overlapped-red {
+    position: absolute;
+    background-color: red;
+    width: 100px;
+    height: 100px;
+    z-index: -1;
+  }
+
+  .test-overlapping-green {
+    background-color: green;
+    width: 100px;
+    height: 50px;
+  }
+
+  .grid {
+    display: grid;
+    column-width: 50px;
+  }
+</style>
+<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
+
+<div id="reference-overlapped-red"></div>
+
+<div class="grid">
+  <div class="test-overlapping-green"></div>
+  <div class="test-overlapping-green"></div>
+</div>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-multicol-001.xht b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-multicol-001.xht
deleted file mode 100644
index 466033c5..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-multicol-001.xht
+++ /dev/null
@@ -1,41 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-    <head>
-        <title>CSS Grid Layout Test: 'column-*' properties from grid container does not apply to grid items</title>
-        <link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com" />
-        <link rel="help" href="http://www.w3.org/TR/css-grid-1/#grid-containers" title="3.1 Establishing Grid Containers" />
-        <link rel="help" href="http://www.w3.org/TR/css3-multicol/#the-number-and-width-of-columns" title="3. The number and width of columns" />
-        <link rel="match" href="../../reference/ref-filled-green-100px-square.xht" />
-        <meta name="assert" content="This test checks that 'column-*' properties in the Multicol module are ignored in grid items when applied to a grid container." />
-        <style type="text/css"><![CDATA[
-            #reference-overlapped-red {
-                position: absolute;
-                background-color: red;
-                width: 100px;
-                height: 100px;
-                z-index: -1;
-            }
-
-            .test-overlapping-green {
-                background-color: green;
-                width: 100px;
-                height: 50px;
-            }
-
-            .grid {
-                display: grid;
-                column-width: 50px;
-            }
-        ]]></style>
-    </head>
-    <body>
-        <p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
-
-        <div id="reference-overlapped-red"></div>
-
-        <div class="grid">
-            <div class="test-overlapping-green"></div>
-            <div class="test-overlapping-green"></div>
-        </div>
-    </body>
-</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-support-display-001.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-support-display-001.html
new file mode 100644
index 0000000..c69d0e31
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-support-display-001.html
@@ -0,0 +1,75 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Grid Layout Test: DOM support for 'grid' and 'inline-grid' 'display' values</title>
+<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
+<link rel="reviewer" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/"> <!-- 2014-11-18 -->
+<link rel="help" href="http://www.w3.org/TR/css-grid-1/#grid-containers" title="3.1 Establishing Grid Containers">
+<meta name="flags" content="dom">
+<meta name="assert" content="This test checks that 'grid' and 'inline-grid' values for 'display' property are supported so that DOM methods, specifically getComputedValue(), and its associated CSS2Properties interface, can fetch such 'display' values.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<style>
+  .grid {
+    display: grid;
+  }
+
+  .inline-grid {
+    display: inline-grid;
+  }
+</style>
+<div id="log"></div>
+
+<div id="style-grid" style="display: grid;"></div>
+<div id="style-inline-grid" style="display: inline-grid;"></div>
+
+<div id="css-grid" class="grid"></div>
+<div id="css-inline-grid" class="inline-grid"></div>
+
+<div id="js-grid"></div>
+<div id="js-inline-grid"></div>
+
+<script>
+  function testStyleDisplay(element, value) {
+    assert_equals(element.style.display, value, "Style display should be '" + value + "'");
+  }
+
+  function testComputedStyleDisplay(element, value) {
+    assert_equals(getComputedStyle(element).getPropertyValue("display"), value, "getComputedStyle() display should be '" + value + "'");
+  }
+
+  var styleGrid = document.getElementById("style-grid");
+  test(function() {
+      testStyleDisplay(styleGrid, "grid");
+      testComputedStyleDisplay(styleGrid, "grid");
+    }, "Test style display 'grid'");
+
+  var styleInlineGrid = document.getElementById("style-inline-grid");
+  test(function() {
+      testStyleDisplay(styleInlineGrid, "inline-grid");
+      testComputedStyleDisplay(styleInlineGrid, "inline-grid");
+    }, "Test style display 'inline-grid'");
+
+  var cssGrid = document.getElementById("css-grid");
+  test(function() {
+      testComputedStyleDisplay(cssGrid, "grid");
+    }, "Test CSS display 'grid'");
+
+  var cssInlineGrid = document.getElementById("css-inline-grid");
+  test(function() {
+      testComputedStyleDisplay(cssInlineGrid, "inline-grid");
+    }, "Test CSS display 'inline-grid'");
+
+  var jsGrid = document.getElementById("js-grid");
+  jsGrid.style.display = "grid";
+  test(function() {
+      testStyleDisplay(jsGrid, "grid");
+      testComputedStyleDisplay(jsGrid, "grid");
+    }, "Test JavaScript display 'grid'");
+
+  var jsInlineGrid = document.getElementById("js-inline-grid");
+  jsInlineGrid.style.display = "inline-grid";
+  test(function() {
+      testStyleDisplay(jsInlineGrid, "inline-grid");
+      testComputedStyleDisplay(jsInlineGrid, "inline-grid");
+    }, "Test JavaScript display 'inline-grid'");
+</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-support-display-001.xht b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-support-display-001.xht
deleted file mode 100644
index eb318d14..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-support-display-001.xht
+++ /dev/null
@@ -1,80 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-    <head>
-        <title>CSS Grid Layout Test: DOM support for 'grid' and 'inline-grid' 'display' values</title>
-        <link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com" />
-        <link rel="reviewer" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/" /> <!-- 2014-11-18 -->
-        <link rel="help" href="http://www.w3.org/TR/css-grid-1/#grid-containers" title="3.1 Establishing Grid Containers" />
-        <meta name="flags" content="dom" />
-        <meta name="assert" content="This test checks that 'grid' and 'inline-grid' values for 'display' property are supported so that DOM methods, specifically getComputedValue(), and its associated CSS2Properties interface, can fetch such 'display' values." />
-        <script src="/resources/testharness.js" type="text/javascript"></script>
-        <script src="/resources/testharnessreport.js" type="text/javascript"></script>
-        <style type="text/css"><![CDATA[
-            .grid {
-                display: grid;
-            }
-
-            .inline-grid {
-                display: inline-grid;
-            }
-        ]]></style>
-    </head>
-    <body>
-        <div id="log"></div>
-
-        <div id="style-grid" style="display: grid;"></div>
-        <div id="style-inline-grid" style="display: inline-grid;"></div>
-
-        <div id="css-grid" class="grid"></div>
-        <div id="css-inline-grid" class="inline-grid"></div>
-
-        <div id="js-grid"></div>
-        <div id="js-inline-grid"></div>
-
-        <script type="text/javascript"><![CDATA[
-            function testStyleDisplay(element, value) {
-                assert_equals(element.style.display, value, "Style display should be '" + value + "'");
-            }
-
-            function testComputedStyleDisplay(element, value) {
-                assert_equals(getComputedStyle(element).getPropertyValue("display"), value, "getComputedStyle() display should be '" + value + "'");
-            }
-
-            var styleGrid = document.getElementById("style-grid");
-            test(function() {
-                    testStyleDisplay(styleGrid, "grid");
-                    testComputedStyleDisplay(styleGrid, "grid");
-                }, "Test style display 'grid'");
-
-            var styleInlineGrid = document.getElementById("style-inline-grid");
-            test(function() {
-                    testStyleDisplay(styleInlineGrid, "inline-grid");
-                    testComputedStyleDisplay(styleInlineGrid, "inline-grid");
-                }, "Test style display 'inline-grid'");
-
-            var cssGrid = document.getElementById("css-grid");
-            test(function() {
-                    testComputedStyleDisplay(cssGrid, "grid");
-                }, "Test CSS display 'grid'");
-
-            var cssInlineGrid = document.getElementById("css-inline-grid");
-            test(function() {
-                    testComputedStyleDisplay(cssInlineGrid, "inline-grid");
-                }, "Test CSS display 'inline-grid'");
-
-            var jsGrid = document.getElementById("js-grid");
-            jsGrid.style.display = "grid";
-            test(function() {
-                    testStyleDisplay(jsGrid, "grid");
-                    testComputedStyleDisplay(jsGrid, "grid");
-                }, "Test JavaScript display 'grid'");
-
-            var jsInlineGrid = document.getElementById("js-inline-grid");
-            jsInlineGrid.style.display = "inline-grid";
-            test(function() {
-                    testStyleDisplay(jsInlineGrid, "inline-grid");
-                    testComputedStyleDisplay(jsInlineGrid, "inline-grid");
-                }, "Test JavaScript display 'inline-grid'");
-        ]]></script>
-    </body>
-</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-vertical-align-001.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-vertical-align-001.html
new file mode 100644
index 0000000..209b6b26
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-vertical-align-001.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Grid Layout Test: 'vertical-align' has no effect on grid items</title>
+<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
+<link rel="reviewer" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/"> <!-- 2014-12-10 -->
+<link rel="help" href="http://www.w3.org/TR/css-grid-1/#grid-containers" title="3.1 Establishing Grid Containers">
+<link rel="help" href="http://www.w3.org/TR/CSS21/visudet.html#propdef-vertical-align" title="10.8.1 Leading and half-leading">
+<link rel="match" href="../../reference/ref-filled-green-100px-square.xht">
+<meta name="flags" content="ahem">
+<style>
+  #reference-overlapped-red {
+    position: absolute;
+    background-color: red;
+    width: 100px;
+    height: 100px;
+    z-index: -1;
+  }
+
+  #test-grid-overlapping-green {
+    display: grid;
+    font: 50px/1 Ahem;
+    color: green;
+  }
+
+  #vertical-align {
+    vertical-align: 125px;
+  }
+</style>
+<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
+
+<div id="reference-overlapped-red"></div>
+
+<div id="test-grid-overlapping-green">
+  <span>1s</span>
+  <span id="vertical-align">2n</span>
+</div>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-vertical-align-001.xht b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-vertical-align-001.xht
deleted file mode 100644
index 36c39cd3..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/grid-model/grid-vertical-align-001.xht
+++ /dev/null
@@ -1,41 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-    <head>
-        <title>CSS Grid Layout Test: 'vertical-align' has no effect on grid items</title>
-        <link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com" />
-        <link rel="reviewer" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/" /> <!-- 2014-12-10 -->
-        <link rel="help" href="http://www.w3.org/TR/css-grid-1/#grid-containers" title="3.1 Establishing Grid Containers" />
-        <link rel="help" href="http://www.w3.org/TR/CSS21/visudet.html#propdef-vertical-align" title="10.8.1 Leading and half-leading" />
-        <link rel="match" href="../../reference/ref-filled-green-100px-square.xht" />
-        <meta name="flags" content="ahem" />
-        <style type="text/css"><![CDATA[
-            #reference-overlapped-red {
-                position: absolute;
-                background-color: red;
-                width: 100px;
-                height: 100px;
-                z-index: -1;
-            }
-
-            #test-grid-overlapping-green {
-                display: grid;
-                font: 50px/1 Ahem;
-                color: green;
-            }
-
-            #vertical-align {
-                vertical-align: 125px;
-            }
-        ]]></style>
-    </head>
-    <body>
-        <p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
-
-        <div id="reference-overlapped-red"></div>
-
-        <div id="test-grid-overlapping-green">
-            <span>1s</span>
-            <span id="vertical-align">2n</span>
-        </div>
-    </body>
-</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/reference/grid-2x2-blue-yellow-lime-magenta.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/reference/grid-2x2-blue-yellow-lime-magenta.html
new file mode 100644
index 0000000..1f325f3
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/reference/grid-2x2-blue-yellow-lime-magenta.html
@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Grid Layout Test: Reference file 2x2 grid and cells with the following colors: blue, yellow, lime and magenta</title>
+<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
+<style>
+  div {
+    font: 50px/1 Ahem;
+  }
+
+  #blue {
+    color: blue;
+  }
+
+  #yellow {
+    color: yellow;
+  }
+
+  #lime {
+    color: lime;
+  }
+
+  #magenta {
+    color: magenta;
+  }
+</style>
+<p>Test passes if there are four filled squares with the same size and <strong>no red</strong>.</p>
+<p>Blue and yellow squares in the first line; lime and magenta squares in the second line (exactly in this order).</p>
+
+<div>
+  <span id="blue">B</span><span id="yellow">Y</span>
+  <br />
+  <span id="lime">L</span><span id="magenta">M</span>
+</div>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/reference/grid-2x2-blue-yellow-lime-magenta.xht b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/reference/grid-2x2-blue-yellow-lime-magenta.xht
deleted file mode 100644
index a541654c..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/reference/grid-2x2-blue-yellow-lime-magenta.xht
+++ /dev/null
@@ -1,38 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-    <head>
-        <title>CSS Grid Layout Test: Reference file 2x2 grid and cells with the following colors: blue, yellow, lime and magenta</title>
-        <link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com" />
-        <style type="text/css"><![CDATA[
-            div {
-                font: 50px/1 Ahem;
-            }
-
-            #blue {
-                color: blue;
-            }
-
-            #yellow {
-                color: yellow;
-            }
-
-            #lime {
-                color: lime;
-            }
-
-            #magenta {
-                color: magenta;
-            }
-        ]]></style>
-    </head>
-    <body>
-        <p>Test passes if there are four filled squares with the same size and <strong>no red</strong>.</p>
-        <p>Blue and yellow squares in the first line; lime and magenta squares in the second line (exactly in this order).</p>
-
-        <div>
-            <span id="blue">B</span><span id="yellow">Y</span>
-            <br />
-            <span id="lime">L</span><span id="magenta">M</span>
-        </div>
-    </body>
-</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/reference/grid-filled-blue-yellow-green-overlapped-100px-squares.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/reference/grid-filled-blue-yellow-green-overlapped-100px-squares.html
new file mode 100644
index 0000000..e3b1921
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/reference/grid-filled-blue-yellow-green-overlapped-100px-squares.html
@@ -0,0 +1,42 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Grid Layout Test: Reference file 3 overlapped squares the following colors: blue, yellow and green</title>
+<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
+<style>
+  #main {
+    position: relative;
+  }
+
+  #main div {
+    width: 100px;
+    height: 100px;
+  }
+
+  .blue {
+    background-color: blue;
+    position: absolute;
+    left: 0px;
+    top: 0px;
+  }
+
+  .yellow {
+    background-color: yellow;
+    position: absolute;
+    left: 25px;
+    top: 25px;
+  }
+
+  .green {
+    background-color: green;
+    position: absolute;
+    left: 50px;
+    top: 50px;
+  }
+</style>
+<p>Test passes if there are 3 filled squares with the same size, and <strong>green</strong> is overlapping <strong>yellow</strong> which is overlapping <strong>blue</strong>.</p>
+
+<div id="main">
+  <div class="blue"></div>
+  <div class="yellow"></div>
+  <div class="green"></div>
+</div>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/reference/grid-filled-blue-yellow-green-overlapped-100px-squares.xht b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/reference/grid-filled-blue-yellow-green-overlapped-100px-squares.xht
deleted file mode 100644
index 990cfb4..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/reference/grid-filled-blue-yellow-green-overlapped-100px-squares.xht
+++ /dev/null
@@ -1,47 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-    <head>
-        <title>CSS Grid Layout Test: Reference file 3 overlapped squares the following colors: blue, yellow and green</title>
-        <link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com" />
-        <style type="text/css"><![CDATA[
-            #main {
-                  position: relative;
-            }
-
-            #main div {
-                width: 100px;
-                height: 100px;
-            }
-
-            .blue {
-                background-color: blue;
-                position: absolute;
-                left: 0px;
-                top: 0px;
-            }
-
-            .yellow {
-                background-color: yellow;
-                position: absolute;
-                left: 25px;
-                top: 25px;
-            }
-
-            .green {
-                background-color: green;
-                position: absolute;
-                left: 50px;
-                top: 50px;
-            }
-        ]]></style>
-    </head>
-    <body>
-        <p>Test passes if there are 3 filled squares with the same size, and <strong>green</strong> is overlapping <strong>yellow</strong> which is overlapping <strong>blue</strong>.</p>
-
-        <div id="main">
-            <div class="blue"></div>
-            <div class="yellow"></div>
-            <div class="green"></div>
-        </div>
-    </body>
-</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/reference/grid-first-letter-green-margin-no-collapse-ref.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/reference/grid-first-letter-green-margin-no-collapse-ref.html
new file mode 100644
index 0000000..cf3c6f2
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/reference/grid-first-letter-green-margin-no-collapse-ref.html
@@ -0,0 +1,18 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Grid Layout Test: Reference file text first letter should be green and margins do not collapse</title>
+<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
+<style>
+  p {
+    /* Prevent collapsing body and paragraph margins. */
+    float: left;
+  }
+
+  .green {
+    color: green;
+  }
+</style>
+<p>
+  <span class="green">T</span>he <strong>first letter</strong> of this paragraph, and only that one, should be <strong>green</strong>.
+  In addition, body and paragraph margins should <strong>not collapse</strong>.
+</p>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/reference/grid-first-letter-green-margin-no-collapse-ref.xht b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/reference/grid-first-letter-green-margin-no-collapse-ref.xht
deleted file mode 100644
index ba4abac..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/reference/grid-first-letter-green-margin-no-collapse-ref.xht
+++ /dev/null
@@ -1,23 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-    <head>
-        <title>CSS Grid Layout Test: Reference file text first letter should be green and margins do not collapse</title>
-        <link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com" />
-        <style type="text/css"><![CDATA[
-            p {
-                /* Prevent collapsing body and paragraph margins. */
-                float: left;
-            }
-
-            .green {
-                color: green;
-            }
-        ]]></style>
-    </head>
-    <body>
-        <p>
-            <span class="green">T</span>he <strong>first letter</strong> of this paragraph, and only that one, should be <strong>green</strong>.
-            In addition, body and paragraph margins should <strong>not collapse</strong>.
-        </p>
-    </body>
-</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/reference/grid-text-green-margin-no-collapse-ref.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/reference/grid-text-green-margin-no-collapse-ref.html
new file mode 100644
index 0000000..9dcba3f
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/reference/grid-text-green-margin-no-collapse-ref.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Grid Layout Test: Reference file text should be green and margins do not collapse</title>
+<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
+<style>
+  p {
+    color: green;
+    /* Prevent collapsing body and paragraph margins. */
+    float: left;
+  }
+</style>
+<p>This text should be <strong>green</strong> and body and paragraph margins should <strong>not collapse</strong>.</p>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/reference/grid-text-green-margin-no-collapse-ref.xht b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/reference/grid-text-green-margin-no-collapse-ref.xht
deleted file mode 100644
index 5feb9630..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/reference/grid-text-green-margin-no-collapse-ref.xht
+++ /dev/null
@@ -1,17 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-    <head>
-        <title>CSS Grid Layout Test: Reference file text should be green and margins do not collapse</title>
-        <link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com" />
-        <style type="text/css"><![CDATA[
-            p {
-                color: green;
-                /* Prevent collapsing body and paragraph margins. */
-                float: left;
-            }
-        ]]></style>
-    </head>
-    <body>
-        <p>This text should be <strong>green</strong> and body and paragraph margins should <strong>not collapse</strong>.</p>
-    </body>
-</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/support/check-layout-th.js b/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/support/check-layout-th.js
deleted file mode 100644
index 3f257d4a..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-grid-1/support/check-layout-th.js
+++ /dev/null
@@ -1,195 +0,0 @@
-(function() {
-// Test is initiated from body.onload, so explicit done() call is required.
-setup({ explicit_done: true });
-
-function checkSubtreeExpectedValues(t, parent, prefix)
-{
-    var checkedLayout = checkExpectedValues(t, parent, prefix);
-    Array.prototype.forEach.call(parent.childNodes, function(node) {
-        checkedLayout |= checkSubtreeExpectedValues(t, node, prefix);
-    });
-    return checkedLayout;
-}
-
-function checkAttribute(output, node, attribute)
-{
-    var result = node.getAttribute && node.getAttribute(attribute);
-    output.checked |= !!result;
-    return result;
-}
-
-function assert_tolerance(actual, expected, message)
-{
-    if (isNaN(expected) || Math.abs(actual - expected) >= 1) {
-        assert_equals(actual, Number(expected), message);
-    }
-}
-
-function checkExpectedValues(t, node, prefix)
-{
-    var output = { checked: false };
-
-    var expectedWidth = checkAttribute(output, node, "data-expected-width");
-    if (expectedWidth) {
-        assert_tolerance(node.offsetWidth, expectedWidth, prefix + "width");
-    }
-
-    var expectedHeight = checkAttribute(output, node, "data-expected-height");
-    if (expectedHeight) {
-        assert_tolerance(node.offsetHeight, expectedHeight, prefix + "height");
-    }
-
-    var expectedOffset = checkAttribute(output, node, "data-offset-x");
-    if (expectedOffset) {
-        assert_tolerance(node.offsetLeft, expectedOffset, prefix + "offsetLeft");
-    }
-
-    var expectedOffset = checkAttribute(output, node, "data-offset-y");
-    if (expectedOffset) {
-        assert_tolerance(node.offsetTop, expectedOffset, prefix + "offsetTop");
-    }
-
-    var expectedWidth = checkAttribute(output, node, "data-expected-client-width");
-    if (expectedWidth) {
-        assert_tolerance(node.clientWidth, expectedWidth, prefix + "clientWidth");
-    }
-
-    var expectedHeight = checkAttribute(output, node, "data-expected-client-height");
-    if (expectedHeight) {
-        assert_tolerance(node.clientHeight, expectedHeight, prefix + "clientHeight");
-    }
-
-    var expectedWidth = checkAttribute(output, node, "data-expected-scroll-width");
-    if (expectedWidth) {
-        assert_tolerance(node.scrollWidth, expectedWidth, prefix + "scrollWidth");
-    }
-
-    var expectedHeight = checkAttribute(output, node, "data-expected-scroll-height");
-    if (expectedHeight) {
-        assert_tolerance(node.scrollHeight, expectedHeight, prefix + "scrollHeight");
-    }
-
-    var expectedWidth = checkAttribute(output, node, "data-expected-bounding-client-rect-width");
-    if (expectedWidth) {
-        assert_tolerance(node.getBoundingClientRect().width, expectedWidth, prefix + "getBoundingClientRect().width");
-    }
-
-    var expectedOffset = checkAttribute(output, node, "data-total-x");
-    if (expectedOffset) {
-        var totalLeft = node.clientLeft + node.offsetLeft;
-        assert_tolerance(totalLeft, expectedOffset, prefix +
-                         "clientLeft+offsetLeft (" + node.clientLeft + " + " + node.offsetLeft + ")");
-    }
-
-    var expectedOffset = checkAttribute(output, node, "data-total-y");
-    if (expectedOffset) {
-        var totalTop = node.clientTop + node.offsetTop;
-        assert_tolerance(totalTop, expectedOffset, prefix +
-                         "clientTop+offsetTop (" + node.clientTop + " + " + node.offsetTop + ")");
-    }
-
-    var expectedDisplay = checkAttribute(output, node, "data-expected-display");
-    if (expectedDisplay) {
-        var actualDisplay = getComputedStyle(node).display;
-        assert_equals(actualDisplay, expectedDisplay, prefix + "display");
-    }
-
-    var expectedPaddingTop = checkAttribute(output, node, "data-expected-padding-top");
-    if (expectedPaddingTop) {
-        var actualPaddingTop = getComputedStyle(node).paddingTop;
-        // Trim the unit "px" from the output.
-        actualPaddingTop = actualPaddingTop.slice(0, -2);
-        assert_equals(actualPaddingTop, expectedPaddingTop, prefix + "padding-top");
-    }
-
-    var expectedPaddingBottom = checkAttribute(output, node, "data-expected-padding-bottom");
-    if (expectedPaddingBottom) {
-        var actualPaddingBottom = getComputedStyle(node).paddingBottom;
-        // Trim the unit "px" from the output.
-        actualPaddingBottom = actualPaddingBottom.slice(0, -2);
-        assert_equals(actualPaddingBottom, expectedPaddingBottom, prefix + "padding-bottom");
-    }
-
-    var expectedPaddingLeft = checkAttribute(output, node, "data-expected-padding-left");
-    if (expectedPaddingLeft) {
-        var actualPaddingLeft = getComputedStyle(node).paddingLeft;
-        // Trim the unit "px" from the output.
-        actualPaddingLeft = actualPaddingLeft.slice(0, -2);
-        assert_equals(actualPaddingLeft, expectedPaddingLeft, prefix + "padding-left");
-    }
-
-    var expectedPaddingRight = checkAttribute(output, node, "data-expected-padding-right");
-    if (expectedPaddingRight) {
-        var actualPaddingRight = getComputedStyle(node).paddingRight;
-        // Trim the unit "px" from the output.
-        actualPaddingRight = actualPaddingRight.slice(0, -2);
-        assert_equals(actualPaddingRight, expectedPaddingRight, prefix + "padding-right");
-    }
-
-    var expectedMarginTop = checkAttribute(output, node, "data-expected-margin-top");
-    if (expectedMarginTop) {
-        var actualMarginTop = getComputedStyle(node).marginTop;
-        // Trim the unit "px" from the output.
-        actualMarginTop = actualMarginTop.slice(0, -2);
-        assert_equals(actualMarginTop, expectedMarginTop, prefix + "margin-top");
-    }
-
-    var expectedMarginBottom = checkAttribute(output, node, "data-expected-margin-bottom");
-    if (expectedMarginBottom) {
-        var actualMarginBottom = getComputedStyle(node).marginBottom;
-        // Trim the unit "px" from the output.
-        actualMarginBottom = actualMarginBottom.slice(0, -2);
-        assert_equals(actualMarginBottom, expectedMarginBottom, prefix + "margin-bottom");
-    }
-
-    var expectedMarginLeft = checkAttribute(output, node, "data-expected-margin-left");
-    if (expectedMarginLeft) {
-        var actualMarginLeft = getComputedStyle(node).marginLeft;
-        // Trim the unit "px" from the output.
-        actualMarginLeft = actualMarginLeft.slice(0, -2);
-        assert_equals(actualMarginLeft, expectedMarginLeft, prefix + "margin-left");
-    }
-
-    var expectedMarginRight = checkAttribute(output, node, "data-expected-margin-right");
-    if (expectedMarginRight) {
-        var actualMarginRight = getComputedStyle(node).marginRight;
-        // Trim the unit "px" from the output.
-        actualMarginRight = actualMarginRight.slice(0, -2);
-        assert_equals(actualMarginRight, expectedMarginRight, prefix + "margin-right");
-    }
-
-    return output.checked;
-}
-
-window.checkLayout = function(selectorList, outputContainer)
-{
-    if (!selectorList) {
-        console.error("You must provide a CSS selector of nodes to check.");
-        return;
-    }
-    var nodes = document.querySelectorAll(selectorList);
-    var testNumber = 0;
-    nodes = Array.prototype.slice.call(nodes);
-    nodes.reverse();
-    var checkedLayout = false;
-    Array.prototype.forEach.call(nodes, function(node) {
-        test(function(t) {
-            var container = node.parentNode.className == 'container' ? node.parentNode : node;
-            var prefix = "\n" + container.outerHTML + "\n";
-            var passed = false;
-            try {
-                checkedLayout |= checkExpectedValues(t, node.parentNode, prefix);
-                checkedLayout |= checkSubtreeExpectedValues(t, node, prefix);
-                passed = true;
-            } finally {
-                checkedLayout |= !passed;
-            }
-        }, selectorList + ' ' + String(++testNumber));
-    });
-    if (!checkedLayout) {
-        console.error("No valid data-* attributes found in selector list : " + selectorList);
-    }
-    done();
-};
-
-})();
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-position-3/position-sticky-table-tfoot-bottom-ref.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-position-3/position-sticky-table-tfoot-bottom-ref.html
deleted file mode 100644
index a89dd6a..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-position-3/position-sticky-table-tfoot-bottom-ref.html
+++ /dev/null
@@ -1,62 +0,0 @@
-<!DOCTYPE html>
-<title>Reference for position:sticky bottom constraint should behave correctly for &lt;tfoot&gt; elements</title>
-
-<style>
-.group {
-  display: inline-block;
-  position: relative;
-  width: 150px;
-  height: 200px;
-}
-
-.scroller {
-  position: relative;
-  width: 100px;
-  height: 150px;
-  overflow-x: hidden;
-  overflow-y: auto;
-}
-
-.contents {
-  height: 550px;
-}
-
-.indicator {
-  position: absolute;
-  background-color: green;
-  left: 0;
-  height: 50px;
-  width: 50px;
-}
-</style>
-
-<script>
-window.addEventListener('load', function() {
-  document.getElementById('scroller1').scrollTop = 0;
-  document.getElementById('scroller2').scrollTop = 75;
-  document.getElementById('scroller3').scrollTop = 200;
-});
-</script>
-
-<div class="group">
-  <div id="scroller1" class="scroller">
-    <div class="indicator" style="top: 100px;"></div>
-    <div class="contents"></div>
-  </div>
-</div>
-
-<div class="group">
-  <div id="scroller2" class="scroller">
-    <div class="indicator" style="top: 150px;"></div>
-    <div class="contents"></div>
-  </div>
-</div>
-
-<div class="group">
-  <div id="scroller3" class="scroller">
-    <div class="indicator" style="top: 250px;"></div>
-    <div class="contents"></div>
-  </div>
-</div>
-
-<div>You should see three green boxes above. No red should be visible.</div>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-position-3/position-sticky-table-tfoot-bottom.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-position-3/position-sticky-table-tfoot-bottom.html
deleted file mode 100644
index 17fe3599..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-position-3/position-sticky-table-tfoot-bottom.html
+++ /dev/null
@@ -1,121 +0,0 @@
-<!DOCTYPE html>
-<title>position:sticky bottom constraint should behave correctly for &lt;tfoot&gt; elements</title>
-<link rel="match" href="position-sticky-table-tfoot-bottom-ref.html" />
-<link rel="help" href="https://www.w3.org/TR/css-position-3/#sticky-pos" />
-<meta name="assert" content="This test checks that the position:sticky bottom constraint behaves correctly for &lt;tfoot&gt; elements" />
-
-<style>
-table {
-  border-collapse:collapse;
-}
-
-td, th {
-  padding: 0;
-}
-
-td > div, th > div {
-  height: 50px;
-  width: 50px;
-}
-
-.group {
-  display: inline-block;
-  position: relative;
-  width: 150px;
-  height: 200px;
-}
-
-.scroller {
-  position: relative;
-  width: 100px;
-  height: 150px;
-  overflow-x: hidden;
-  overflow-y: auto;
-}
-
-.prepadding {
-  height: 100px;
-}
-
-.postpadding {
-  height: 250px;
-}
-
-.indicator {
-  position: absolute;
-  background-color: red;
-  left: 0;
-  height: 50px;
-  width: 50px;
-}
-
-.sticky {
-  position: sticky;
-  bottom: 25px;
-  background-color: green;
-}
-</style>
-
-<script>
-window.addEventListener('load', function() {
-  document.getElementById('scroller1').scrollTop = 0;
-  document.getElementById('scroller2').scrollTop = 75;
-  document.getElementById('scroller3').scrollTop = 200;
-});
-</script>
-
-<div class="group">
-  <div id="scroller1" class="scroller">
-    <div class="indicator" style="top: 100px;"></div>
-    <div class="prepadding"></div>
-    <table>
-      <tbody>
-        <tr><td><div></div></td></tr>
-        <tr><td><div></div></td></tr>
-        <tr><td><div></div></td></tr>
-      </tbody>
-      <tfoot class="sticky">
-        <tr><th><div></div></th></tr>
-      </tfoot>
-    </table>
-    <div class="postpadding"></div>
-  </div>
-</div>
-
-<div class="group">
-  <div id="scroller2" class="scroller">
-    <div class="indicator" style="top: 150px;"></div>
-    <div class="prepadding"></div>
-    <table>
-      <tbody>
-        <tr><td><div></div></td></tr>
-        <tr><td><div></div></td></tr>
-        <tr><td><div></div></td></tr>
-      </tbody>
-      <tfoot class="sticky">
-        <tr><th><div></div></th></tr>
-      </tfoot>
-    </table>
-    <div class="postpadding"></div>
-  </div>
-</div>
-
-<div class="group">
-  <div id="scroller3" class="scroller">
-    <div class="indicator" style="top: 250px;"></div>
-    <div class="prepadding"></div>
-    <table>
-      <tbody>
-        <tr><td><div></div></td></tr>
-        <tr><td><div></div></td></tr>
-        <tr><td><div></div></td></tr>
-      </tbody>
-      <tfoot class="sticky">
-        <tr><th><div></div></th></tr>
-      </tfoot>
-    </table>
-    <div class="postpadding"></div>
-  </div>
-</div>
-
-<div>You should see three green boxes above. No red should be visible.</div>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-position-3/position-sticky-table-thead-top-ref.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-position-3/position-sticky-table-thead-top-ref.html
deleted file mode 100644
index f313d60..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-position-3/position-sticky-table-thead-top-ref.html
+++ /dev/null
@@ -1,62 +0,0 @@
-<!DOCTYPE html>
-<title>Reference for position:sticky top constraint should behave correctly for &lt;thead&gt; elements</title>
-
-<style>
-.group {
-  display: inline-block;
-  position: relative;
-  width: 150px;
-  height: 200px;
-}
-
-.scroller {
-  position: relative;
-  width: 100px;
-  height: 150px;
-  overflow-x: hidden;
-  overflow-y: auto;
-}
-
-.contents {
-  height: 550px;
-}
-
-.indicator {
-  position: absolute;
-  background-color: green;
-  left: 0;
-  height: 50px;
-  width: 50px;
-}
-</style>
-
-<script>
-window.addEventListener('load', function() {
-  document.getElementById('scroller1').scrollTop = 50;
-  document.getElementById('scroller2').scrollTop = 125;
-  document.getElementById('scroller3').scrollTop = 250;
-});
-</script>
-
-<div class="group">
-  <div id="scroller1" class="scroller">
-    <div class="indicator" style="top: 100px;"></div>
-    <div class="contents"></div>
-  </div>
-</div>
-
-<div class="group">
-  <div id="scroller2" class="scroller">
-    <div class="indicator" style="top: 150px;"></div>
-    <div class="contents"></div>
-  </div>
-</div>
-
-<div class="group">
-  <div id="scroller3" class="scroller">
-    <div class="indicator" style="top: 250px;"></div>
-    <div class="contents"></div>
-  </div>
-</div>
-
-<div>You should see three green boxes above. No red should be visible.</div>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-position-3/position-sticky-table-thead-top.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-position-3/position-sticky-table-thead-top.html
deleted file mode 100644
index 560a45e..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-position-3/position-sticky-table-thead-top.html
+++ /dev/null
@@ -1,121 +0,0 @@
-<!DOCTYPE html>
-<title>position:sticky top constraint should behave correctly for &lt;thead&gt; elements</title>
-<link rel="match" href="position-sticky-table-thead-top-ref.html" />
-<link rel="help" href="https://www.w3.org/TR/css-position-3/#sticky-pos" />
-<meta name="assert" content="This test checks that the position:sticky top constraint behaves correctly for &lt;thead&gt; elements" />
-
-<style>
-table {
-  border-collapse:collapse;
-}
-
-td, th {
-  padding: 0;
-}
-
-td > div, th > div {
-  height: 50px;
-  width: 50px;
-}
-
-.group {
-  display: inline-block;
-  position: relative;
-  width: 150px;
-  height: 200px;
-}
-
-.scroller {
-  position: relative;
-  width: 100px;
-  height: 150px;
-  overflow-x: hidden;
-  overflow-y: auto;
-}
-
-.prepadding {
-  height: 100px;
-}
-
-.postpadding {
-  height: 250px;
-}
-
-.indicator {
-  position: absolute;
-  background-color: red;
-  left: 0;
-  height: 50px;
-  width: 50px;
-}
-
-.sticky {
-  position: sticky;
-  top: 25px;
-  background-color: green;
-}
-</style>
-
-<script>
-window.addEventListener('load', function() {
-  document.getElementById('scroller1').scrollTop = 50;
-  document.getElementById('scroller2').scrollTop = 125;
-  document.getElementById('scroller3').scrollTop = 250;
-});
-</script>
-
-<div class="group">
-  <div id="scroller1" class="scroller">
-    <div class="indicator" style="top: 100px;"></div>
-    <div class="prepadding"></div>
-    <table>
-      <thead class="sticky">
-        <tr><th><div></div></th></tr>
-      </thead>
-      <tbody>
-        <tr><td><div></div></td></tr>
-        <tr><td><div></div></td></tr>
-        <tr><td><div></div></td></tr>
-      </tbody>
-    </table>
-    <div class="postpadding"></div>
-  </div>
-</div>
-
-<div class="group">
-  <div id="scroller2" class="scroller">
-    <div class="indicator" style="top: 150px;"></div>
-    <div class="prepadding"></div>
-    <table>
-      <thead class="sticky">
-        <tr><th><div></div></th></tr>
-      </thead>
-      <tbody>
-        <tr><td><div></div></td></tr>
-        <tr><td><div></div></td></tr>
-        <tr><td><div></div></td></tr>
-      </tbody>
-    </table>
-    <div class="postpadding"></div>
-  </div>
-</div>
-
-<div class="group">
-  <div id="scroller3" class="scroller">
-    <div class="indicator" style="top: 250px;"></div>
-    <div class="prepadding"></div>
-    <table>
-      <thead class="sticky">
-        <tr><th><div></div></th></tr>
-      </thead>
-      <tbody>
-        <tr><td><div></div></td></tr>
-        <tr><td><div></div></td></tr>
-        <tr><td><div></div></td></tr>
-      </tbody>
-    </table>
-    <div class="postpadding"></div>
-  </div>
-</div>
-
-<div>You should see three green boxes above. No red should be visible.</div>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/html/semantics/scripting-1/the-script-element/module/import-subgraph-404.html b/third_party/WebKit/LayoutTests/external/wpt/html/semantics/scripting-1/the-script-element/module/import-subgraph-404.html
deleted file mode 100644
index 4911a071..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/html/semantics/scripting-1/the-script-element/module/import-subgraph-404.html
+++ /dev/null
@@ -1,14 +0,0 @@
-<!DOCTYPE html>
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script type="module">
-import { delayedLoaded }  from "./resources/delayed-modulescript.py";
-import { A } from "./404.js";
-window.loadSuccess = delayedLoaded;
-</script>
-<script type="module">
-test(function () {
-    assert_equals(window.loadSuccess, undefined,
-      "module tree w/ its sub graph 404 should fail to load without crashing");
-}, "Import a module graph w/ sub-graph 404.");
-</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/html/semantics/scripting-1/the-script-element/module/resources/delayed-modulescript.py b/third_party/WebKit/LayoutTests/external/wpt/html/semantics/scripting-1/the-script-element/module/resources/delayed-modulescript.py
deleted file mode 100644
index 6ed1621..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/html/semantics/scripting-1/the-script-element/module/resources/delayed-modulescript.py
+++ /dev/null
@@ -1,7 +0,0 @@
-import time
-
-def main(request, response):
-    delay = float(request.GET.first("ms", 500))
-    time.sleep(delay / 1E3);
-
-    return [("Content-type", "text/javascript")], "export let delayedLoaded = true;"
diff --git a/third_party/WebKit/LayoutTests/external/wpt/lint.whitelist b/third_party/WebKit/LayoutTests/external/wpt/lint.whitelist
index 9bed10a8..1984b0f 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/lint.whitelist
+++ b/third_party/WebKit/LayoutTests/external/wpt/lint.whitelist
@@ -370,7 +370,6 @@
 INDENT TABS: css/css-round-display-1/*
 INDENT TABS: css/css-shapes-1/*
 INDENT TABS: css/css-speech-1/*
-INDENT TABS: css/css-tables-3/*
 INDENT TABS: css/css-text-3/*
 INDENT TABS: css/css-text-decor-3/*
 INDENT TABS: css/css-transforms-1/*
diff --git a/third_party/WebKit/LayoutTests/external/wpt/payment-request/payment-request-constructor.https-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/payment-request/payment-request-constructor.https-expected.txt
deleted file mode 100644
index f58b3a3..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/payment-request/payment-request-constructor.https-expected.txt
+++ /dev/null
@@ -1,129 +0,0 @@
-This is a testharness.js-based test.
-PASS If details.id is missing, assign a identifier 
-PASS If details.id is missing, assign a unique identifier 
-PASS If the same id is provided, then use it 
-PASS Use ids even if they are strange 
-PASS Use provided request ID 
-PASS If the length of the methodData sequence is zero, then throw a TypeError 
-PASS If the length of the paymentMethod.supportedMethods sequence is zero, then throw a TypeError 
-PASS Method data must be JSON-serializable object (a list in this case) 
-PASS Method data must be JSON-serializable object (an object in this case) 
-PASS Rethrow any exceptions of JSON-serializing paymentMethod.data into a string 
-PASS If details.total.amount.value is not a valid decimal monetary value (in this case "-"), then throw a TypeError 
-PASS If details.total.amount.value is not a valid decimal monetary value (in this case "notdigits"), then throw a TypeError 
-PASS If details.total.amount.value is not a valid decimal monetary value (in this case "ALSONOTDIGITS"), then throw a TypeError 
-PASS If details.total.amount.value is not a valid decimal monetary value (in this case "10."), then throw a TypeError 
-PASS If details.total.amount.value is not a valid decimal monetary value (in this case ".99"), then throw a TypeError 
-PASS If details.total.amount.value is not a valid decimal monetary value (in this case "-10."), then throw a TypeError 
-PASS If details.total.amount.value is not a valid decimal monetary value (in this case "-.99"), then throw a TypeError 
-PASS If details.total.amount.value is not a valid decimal monetary value (in this case "10-"), then throw a TypeError 
-PASS If details.total.amount.value is not a valid decimal monetary value (in this case "1-0"), then throw a TypeError 
-PASS If details.total.amount.value is not a valid decimal monetary value (in this case "1.0.0"), then throw a TypeError 
-PASS If details.total.amount.value is not a valid decimal monetary value (in this case "1/3"), then throw a TypeError 
-PASS If details.total.amount.value is not a valid decimal monetary value (in this case ""), then throw a TypeError 
-PASS If details.total.amount.value is not a valid decimal monetary value (in this case "null"), then throw a TypeError 
-PASS If details.total.amount.value is not a valid decimal monetary value (in this case " 1.0  "), then throw a TypeError 
-PASS If details.total.amount.value is not a valid decimal monetary value (in this case " 1.0 "), then throw a TypeError 
-PASS If details.total.amount.value is not a valid decimal monetary value (in this case "1.0 "), then throw a TypeError 
-PASS If details.total.amount.value is not a valid decimal monetary value (in this case "USD$1.0"), then throw a TypeError 
-PASS If details.total.amount.value is not a valid decimal monetary value (in this case "$1.0"), then throw a TypeError 
-PASS If details.total.amount.value is not a valid decimal monetary value (in this case " 1.0"), then throw a TypeError 
-PASS If details.total.amount.value is not a valid decimal monetary value (in this case "-1"), then throw a TypeError 
-PASS If details.total.amount.value is not a valid decimal monetary value (in this case "-1.0"), then throw a TypeError 
-PASS If details.total.amount.value is not a valid decimal monetary value (in this case "-1.00"), then throw a TypeError 
-PASS If details.total.amount.value is not a valid decimal monetary value (in this case "-1000.000"), then throw a TypeError 
-PASS If the first character of details.total.amount.value is U+002D HYPHEN-MINUS, then throw a TypeError 
-PASS For each item in details.displayItems: if item.amount.value is not a valid decimal monetary value (in this case "-"), then throw a TypeError 
-PASS For each item in details.displayItems: if item.amount.value is not a valid decimal monetary value (in this case "notdigits"), then throw a TypeError 
-PASS For each item in details.displayItems: if item.amount.value is not a valid decimal monetary value (in this case "ALSONOTDIGITS"), then throw a TypeError 
-PASS For each item in details.displayItems: if item.amount.value is not a valid decimal monetary value (in this case "10."), then throw a TypeError 
-PASS For each item in details.displayItems: if item.amount.value is not a valid decimal monetary value (in this case ".99"), then throw a TypeError 
-PASS For each item in details.displayItems: if item.amount.value is not a valid decimal monetary value (in this case "-10."), then throw a TypeError 
-PASS For each item in details.displayItems: if item.amount.value is not a valid decimal monetary value (in this case "-.99"), then throw a TypeError 
-PASS For each item in details.displayItems: if item.amount.value is not a valid decimal monetary value (in this case "10-"), then throw a TypeError 
-PASS For each item in details.displayItems: if item.amount.value is not a valid decimal monetary value (in this case "1-0"), then throw a TypeError 
-PASS For each item in details.displayItems: if item.amount.value is not a valid decimal monetary value (in this case "1.0.0"), then throw a TypeError 
-PASS For each item in details.displayItems: if item.amount.value is not a valid decimal monetary value (in this case "1/3"), then throw a TypeError 
-PASS For each item in details.displayItems: if item.amount.value is not a valid decimal monetary value (in this case ""), then throw a TypeError 
-PASS For each item in details.displayItems: if item.amount.value is not a valid decimal monetary value (in this case "null"), then throw a TypeError 
-PASS For each item in details.displayItems: if item.amount.value is not a valid decimal monetary value (in this case " 1.0  "), then throw a TypeError 
-PASS For each item in details.displayItems: if item.amount.value is not a valid decimal monetary value (in this case " 1.0 "), then throw a TypeError 
-PASS For each item in details.displayItems: if item.amount.value is not a valid decimal monetary value (in this case "1.0 "), then throw a TypeError 
-PASS For each item in details.displayItems: if item.amount.value is not a valid decimal monetary value (in this case "USD$1.0"), then throw a TypeError 
-PASS For each item in details.displayItems: if item.amount.value is not a valid decimal monetary value (in this case "$1.0"), then throw a TypeError 
-PASS For each item in details.displayItems: if item.amount.value is not a valid decimal monetary value (in this case " 1.0"), then throw a TypeError 
-PASS Negative values are allowed for displayItems.amount.value, irrespective of total amount 
-PASS For each option in details.shippingOptions: if option.amount.value is not a valid decimal monetary value (in this case "-"), then throw a TypeError 
-PASS For each option in details.shippingOptions: if option.amount.value is not a valid decimal monetary value (in this case "notdigits"), then throw a TypeError 
-PASS For each option in details.shippingOptions: if option.amount.value is not a valid decimal monetary value (in this case "ALSONOTDIGITS"), then throw a TypeError 
-PASS For each option in details.shippingOptions: if option.amount.value is not a valid decimal monetary value (in this case "10."), then throw a TypeError 
-PASS For each option in details.shippingOptions: if option.amount.value is not a valid decimal monetary value (in this case ".99"), then throw a TypeError 
-PASS For each option in details.shippingOptions: if option.amount.value is not a valid decimal monetary value (in this case "-10."), then throw a TypeError 
-PASS For each option in details.shippingOptions: if option.amount.value is not a valid decimal monetary value (in this case "-.99"), then throw a TypeError 
-PASS For each option in details.shippingOptions: if option.amount.value is not a valid decimal monetary value (in this case "10-"), then throw a TypeError 
-PASS For each option in details.shippingOptions: if option.amount.value is not a valid decimal monetary value (in this case "1-0"), then throw a TypeError 
-PASS For each option in details.shippingOptions: if option.amount.value is not a valid decimal monetary value (in this case "1.0.0"), then throw a TypeError 
-PASS For each option in details.shippingOptions: if option.amount.value is not a valid decimal monetary value (in this case "1/3"), then throw a TypeError 
-PASS For each option in details.shippingOptions: if option.amount.value is not a valid decimal monetary value (in this case ""), then throw a TypeError 
-PASS For each option in details.shippingOptions: if option.amount.value is not a valid decimal monetary value (in this case "null"), then throw a TypeError 
-PASS For each option in details.shippingOptions: if option.amount.value is not a valid decimal monetary value (in this case " 1.0  "), then throw a TypeError 
-PASS For each option in details.shippingOptions: if option.amount.value is not a valid decimal monetary value (in this case " 1.0 "), then throw a TypeError 
-PASS For each option in details.shippingOptions: if option.amount.value is not a valid decimal monetary value (in this case "1.0 "), then throw a TypeError 
-PASS For each option in details.shippingOptions: if option.amount.value is not a valid decimal monetary value (in this case "USD$1.0"), then throw a TypeError 
-PASS For each option in details.shippingOptions: if option.amount.value is not a valid decimal monetary value (in this case "$1.0"), then throw a TypeError 
-PASS For each option in details.shippingOptions: if option.amount.value is not a valid decimal monetary value (in this case " 1.0"), then throw a TypeError 
-FAIL If there is no selected shipping option, then PaymentRequest.shippingOption remains null assert_equals: selected option must PASS expected (string) "PASS" but got (object) null
-FAIL If there is a selected shipping option, then it becomes synchronously selected assert_equals: selected option must be PASS expected (string) "PASS" but got (object) null
-FAIL If there is a multiple selected shipping options, only the last is selected assert_equals: selected option must PASS expected (string) "PASS" but got (object) null
-PASS If there are any duplicate shipping option ids, then there are no shipping options 
-PASS If modifier.total.amount.value is not a valid decimal monetary value (in this case "-"), then throw a TypeError 
-PASS If modifier.total.amount.value is not a valid decimal monetary value (in this case "notdigits"), then throw a TypeError 
-PASS If modifier.total.amount.value is not a valid decimal monetary value (in this case "ALSONOTDIGITS"), then throw a TypeError 
-PASS If modifier.total.amount.value is not a valid decimal monetary value (in this case "10."), then throw a TypeError 
-PASS If modifier.total.amount.value is not a valid decimal monetary value (in this case ".99"), then throw a TypeError 
-PASS If modifier.total.amount.value is not a valid decimal monetary value (in this case "-10."), then throw a TypeError 
-PASS If modifier.total.amount.value is not a valid decimal monetary value (in this case "-.99"), then throw a TypeError 
-PASS If modifier.total.amount.value is not a valid decimal monetary value (in this case "10-"), then throw a TypeError 
-PASS If modifier.total.amount.value is not a valid decimal monetary value (in this case "1-0"), then throw a TypeError 
-PASS If modifier.total.amount.value is not a valid decimal monetary value (in this case "1.0.0"), then throw a TypeError 
-PASS If modifier.total.amount.value is not a valid decimal monetary value (in this case "1/3"), then throw a TypeError 
-PASS If modifier.total.amount.value is not a valid decimal monetary value (in this case ""), then throw a TypeError 
-PASS If modifier.total.amount.value is not a valid decimal monetary value (in this case "null"), then throw a TypeError 
-PASS If modifier.total.amount.value is not a valid decimal monetary value (in this case " 1.0  "), then throw a TypeError 
-PASS If modifier.total.amount.value is not a valid decimal monetary value (in this case " 1.0 "), then throw a TypeError 
-PASS If modifier.total.amount.value is not a valid decimal monetary value (in this case "1.0 "), then throw a TypeError 
-PASS If modifier.total.amount.value is not a valid decimal monetary value (in this case "USD$1.0"), then throw a TypeError 
-PASS If modifier.total.amount.value is not a valid decimal monetary value (in this case "$1.0"), then throw a TypeError 
-PASS If modifier.total.amount.value is not a valid decimal monetary value (in this case " 1.0"), then throw a TypeError 
-PASS If modifier.total.amount.value is not a valid decimal monetary value (in this case "-1"), then throw a TypeError 
-PASS If modifier.total.amount.value is not a valid decimal monetary value (in this case "-1.0"), then throw a TypeError 
-PASS If modifier.total.amount.value is not a valid decimal monetary value (in this case "-1.00"), then throw a TypeError 
-PASS If modifier.total.amount.value is not a valid decimal monetary value (in this case "-1000.000"), then throw a TypeError 
-PASS If amount.value of additionalDisplayItems is is not a valid decimal monetary value (in this case "-"), then throw a TypeError 
-PASS If amount.value of additionalDisplayItems is is not a valid decimal monetary value (in this case "notdigits"), then throw a TypeError 
-PASS If amount.value of additionalDisplayItems is is not a valid decimal monetary value (in this case "ALSONOTDIGITS"), then throw a TypeError 
-PASS If amount.value of additionalDisplayItems is is not a valid decimal monetary value (in this case "10."), then throw a TypeError 
-PASS If amount.value of additionalDisplayItems is is not a valid decimal monetary value (in this case ".99"), then throw a TypeError 
-PASS If amount.value of additionalDisplayItems is is not a valid decimal monetary value (in this case "-10."), then throw a TypeError 
-PASS If amount.value of additionalDisplayItems is is not a valid decimal monetary value (in this case "-.99"), then throw a TypeError 
-PASS If amount.value of additionalDisplayItems is is not a valid decimal monetary value (in this case "10-"), then throw a TypeError 
-PASS If amount.value of additionalDisplayItems is is not a valid decimal monetary value (in this case "1-0"), then throw a TypeError 
-PASS If amount.value of additionalDisplayItems is is not a valid decimal monetary value (in this case "1.0.0"), then throw a TypeError 
-PASS If amount.value of additionalDisplayItems is is not a valid decimal monetary value (in this case "1/3"), then throw a TypeError 
-PASS If amount.value of additionalDisplayItems is is not a valid decimal monetary value (in this case ""), then throw a TypeError 
-PASS If amount.value of additionalDisplayItems is is not a valid decimal monetary value (in this case "null"), then throw a TypeError 
-PASS If amount.value of additionalDisplayItems is is not a valid decimal monetary value (in this case " 1.0  "), then throw a TypeError 
-PASS If amount.value of additionalDisplayItems is is not a valid decimal monetary value (in this case " 1.0 "), then throw a TypeError 
-PASS If amount.value of additionalDisplayItems is is not a valid decimal monetary value (in this case "1.0 "), then throw a TypeError 
-PASS If amount.value of additionalDisplayItems is is not a valid decimal monetary value (in this case "USD$1.0"), then throw a TypeError 
-PASS If amount.value of additionalDisplayItems is is not a valid decimal monetary value (in this case "$1.0"), then throw a TypeError 
-PASS If amount.value of additionalDisplayItems is is not a valid decimal monetary value (in this case " 1.0"), then throw a TypeError 
-PASS Modifier data must be JSON-serializable object (a list in this case) 
-PASS Modifier data must be JSON-serializable object (a object in this case) 
-PASS Rethrow any exceptions of JSON-serializing modifier.data into a string 
-PASS Shipping type should be valid 
-PASS PaymentRequest.shippingAddress must initially be null 
-PASS If options.requestShipping is not set, then request.shippingType attribute is null. 
-PASS If options.requestShipping is true, request.shippingType will be options.shippingType. 
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/external/wpt/payment-request/payment-request-constructor.https.html b/third_party/WebKit/LayoutTests/external/wpt/payment-request/payment-request-constructor.https.html
index 7a9572cc..35fb974 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/payment-request/payment-request-constructor.https.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/payment-request/payment-request-constructor.https.html
@@ -451,12 +451,12 @@
   const shippingOptions = [defaultShippingOption];
   const details = Object.assign({}, defaultDetails, { shippingOptions });
   const request = new PaymentRequest(defaultMethods, details);
-  assert_equals(request.shippingOption, "PASS", "selected option must PASS");
+  assert_equals(request.shippingOption, null, "request.shippingOption must be null");
 }, "If there is no selected shipping option, then PaymentRequest.shippingOption remains null");
 
 test(() => {
   const selectedOption = Object.assign({}, defaultShippingOption, {
-    select: true,
+    selected: true,
     id: "PASS",
   });
   const shippingOptions = [selectedOption];
@@ -467,15 +467,15 @@
 
 test(() => {
   const failOption1 = Object.assign({}, defaultShippingOption, {
-    select: true,
+    selected: true,
     id: "FAIL1",
   });
   const failOption2 = Object.assign({}, defaultShippingOption, {
-    select: false,
+    selected: false,
     id: "FAIL2",
   });
   const passOption = Object.assign({}, defaultShippingOption, {
-    select: true,
+    selected: true,
     id: "PASS",
   });
   const shippingOptions = [failOption1, failOption2, passOption];
@@ -486,10 +486,10 @@
 
 test(() => {
   const selectedOption = Object.assign({}, defaultShippingOption, {
-    select: true,
+    selected: true,
   });
   const unselectedOption = Object.assign({}, defaultShippingOption, {
-    select: false,
+    selected: false,
   });
   const shippingOptions = [selectedOption, unselectedOption];
   const details = Object.assign({}, defaultDetails, { shippingOptions });
diff --git a/third_party/WebKit/LayoutTests/external/wpt/scroll-into-view/check-scroll-position.html b/third_party/WebKit/LayoutTests/external/wpt/scroll-into-view/check-scroll-position.html
new file mode 100644
index 0000000..200491a
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/scroll-into-view/check-scroll-position.html
@@ -0,0 +1,77 @@
+<!DOCTYPE HTML>
+<script src='/resources/testharness.js'></script>
+<script src='/resources/testharnessreport.js'></script>
+<title> Check End Position of ScrollIntoView</title>
+<div id='container' style='height: 2500px; width: 2500px;'>
+  <div id='content' style='height: 500px; width: 500px;margin-left: 1000px; margin-right: 1000px; margin-top: 1000px;margin-bottom: 1000px'>
+  </div>
+</div>
+<script>
+
+var frames = 0;
+var content_height = 500;
+var content_width = 500;
+var window_height = document.documentElement.clientHeight;
+var window_width = document.documentElement.clientWidth;
+var content = document.getElementById('content');
+
+function animate (funct, x, y, next) {
+  if (frames < 500) {
+    ++frames;
+    requestAnimationFrame(animate.bind(null, funct, x, y, next));
+  } else {
+    funct.step(function() {
+      assert_approx_equals(window.scrollX, x, 1);
+      assert_approx_equals(window.scrollY, y, 1);
+      funct.done();
+      if (next)
+        next();
+    });
+  }
+}
+
+var checkNearest = async_test("Smooth ScrollIntoView should scroll the element to the 'nearest' position");
+checkNearest.step(function() {
+  content.scrollIntoView(
+    {behavior: 'smooth', block: 'nearest', inlinePosition: 'nearest'});
+  frames = 0;
+  var x = content.offsetLeft + content_width - window_width;
+  var y = content.offsetTop + content_height - window_height;
+  animate(checkNearest, x, y, test2);
+});
+
+var checkStart = async_test("Smooth ScrollIntoView should scroll the element to the 'start' position");
+function test2() {
+  checkStart.step(function() {
+    content.scrollIntoView(
+      {behavior: 'smooth', block: 'start', inlinePosition: 'start'});
+    frames = 0;
+    animate(checkStart, content.offsetLeft, content.offsetTop, test3);
+  });
+}
+
+var checkCenter = async_test("Smooth ScrollIntoView should scroll the element to the 'center' position");
+function test3() {
+  checkCenter.step(function() {
+    content.scrollIntoView(
+      {behavior: 'smooth', block: 'center', inlinePosition: 'center'});
+    frames = 0;
+    var x = content.offsetLeft + (content_width - window_width) / 2;
+    var y = content.offsetTop + (content_height - window_height) / 2;
+    animate(checkCenter, x, y, test4);
+  });
+}
+
+var checkEnd = async_test("Smooth ScrollIntoView should scroll the element to the 'end' position");
+function test4() {
+  checkEnd.step(function() {
+    content.scrollIntoView(
+      {behavior: 'smooth', block: 'end', inlinePosition: 'end'});
+    frames = 0;
+    var x = content.offsetLeft + content_width - window_width;
+    var y = content.offsetTop + content_height - window_height;
+    animate(checkEnd, x, y, null);
+  });
+}
+
+</script>
\ No newline at end of file
diff --git a/third_party/WebKit/LayoutTests/fast/media/mq-display-mode-fullscreen.html b/third_party/WebKit/LayoutTests/fast/media/mq-display-mode-fullscreen.html
index 366f72b..dff2d2b8 100644
--- a/third_party/WebKit/LayoutTests/fast/media/mq-display-mode-fullscreen.html
+++ b/third_party/WebKit/LayoutTests/fast/media/mq-display-mode-fullscreen.html
@@ -1,7 +1,7 @@
 <html>
 <head>
 <title>Test the media query "display-mode" features.</title>
-<script src="../../fullscreen/trusted-click.js"></script>
+<script src="../../fullscreen/full-screen-test.js"></script>
 <script>
     if (window.testRunner) {
         testRunner.dumpAsText();
@@ -40,11 +40,11 @@
             }
             document.exitFullscreen();
         }
-        trusted_click(function() {
+        runWithKeyDown(function() {
             log("------------- before entering fullscreen -------------");
             testQueries();
             div.webkitRequestFullscreen();
-        }, document.body);
+        });
     }
 </script>
 </head>
diff --git a/third_party/WebKit/LayoutTests/fullscreen/api/document-exit-fullscreen-twice.html b/third_party/WebKit/LayoutTests/fullscreen/api/document-exit-fullscreen-twice.html
index fbf429eb..07c7fb3 100644
--- a/third_party/WebKit/LayoutTests/fullscreen/api/document-exit-fullscreen-twice.html
+++ b/third_party/WebKit/LayoutTests/fullscreen/api/document-exit-fullscreen-twice.html
@@ -29,6 +29,6 @@
   });
   document.onfullscreenerror = t.unreached_func("fullscreenerror event");
 
-  trusted_request(div);
+  trusted_request(t, div);
 });
 </script>
diff --git a/third_party/WebKit/LayoutTests/fullscreen/api/document-exit-fullscreen-vs-request.html b/third_party/WebKit/LayoutTests/fullscreen/api/document-exit-fullscreen-vs-request.html
index 54f2afc..607fcf1 100644
--- a/third_party/WebKit/LayoutTests/fullscreen/api/document-exit-fullscreen-vs-request.html
+++ b/third_party/WebKit/LayoutTests/fullscreen/api/document-exit-fullscreen-vs-request.html
@@ -16,7 +16,7 @@
     // does not.
     assert_equals(document.fullscreenElement, parent, "fullscreenElement after fullscreenchange event");
 
-    trusted_click(t.step_func(() => {
+    trusted_click(t, () => {
       // Request fullscreen on another element, to avoid any synchronous
       // short-circuiting on document.fullscreenElement.requestFullscreen(),
       // which used to be in the spec. Also request both before and after the
@@ -37,10 +37,10 @@
       assert_equals(document.fullscreenElement, parent, "fullscreenElement after exitFullscreen()");
       child.requestFullscreen();
       assert_equals(document.fullscreenElement, child, "fullscreenElement after second requestFullscreen()");
-    }), parent);
+    }, parent);
   });
   document.onfullscreenerror = t.unreached_func("fullscreenerror event");
 
-  trusted_request(parent);
+  trusted_request(t, parent);
 });
 </script>
diff --git a/third_party/WebKit/LayoutTests/fullscreen/api/document-fullscreen-element.html b/third_party/WebKit/LayoutTests/fullscreen/api/document-fullscreen-element.html
index f339c0b..1c1fcfd 100644
--- a/third_party/WebKit/LayoutTests/fullscreen/api/document-fullscreen-element.html
+++ b/third_party/WebKit/LayoutTests/fullscreen/api/document-fullscreen-element.html
@@ -24,13 +24,13 @@
         });
     });
 
-    trusted_click(t.step_func(function()
+    trusted_click(t, function()
     {
         assert_equals(document.fullscreenElement, null, "fullscreenElement before requestFullscreen()");
         div.requestFullscreen();
         // TODO(foolip): fullscreenElement should still be null.
         // https://crbug.com/402421
         assert_equals(document.fullscreenElement, div, "fullscreenElement after requestFullscreen()");
-    }), document.body);
+    }, document.body);
 });
 </script>
diff --git a/third_party/WebKit/LayoutTests/fullscreen/api/element-request-fullscreen-and-move-to-iframe.html b/third_party/WebKit/LayoutTests/fullscreen/api/element-request-fullscreen-and-move-to-iframe.html
index 1a8c72f..40974a2e0 100644
--- a/third_party/WebKit/LayoutTests/fullscreen/api/element-request-fullscreen-and-move-to-iframe.html
+++ b/third_party/WebKit/LayoutTests/fullscreen/api/element-request-fullscreen-and-move-to-iframe.html
@@ -21,9 +21,9 @@
   });
   document.onfullscreenerror = t.unreached_func("fullscreenerror event");
 
-  trusted_click(t.step_func(() => {
+  trusted_click(t, () => {
     target.requestFullscreen();
     iframeDoc.body.appendChild(target);
-  }), document.body);
+  }, document.body);
 });
 </script>
diff --git a/third_party/WebKit/LayoutTests/fullscreen/api/element-request-fullscreen-and-move.html b/third_party/WebKit/LayoutTests/fullscreen/api/element-request-fullscreen-and-move.html
index 5189566..3b165ce 100644
--- a/third_party/WebKit/LayoutTests/fullscreen/api/element-request-fullscreen-and-move.html
+++ b/third_party/WebKit/LayoutTests/fullscreen/api/element-request-fullscreen-and-move.html
@@ -19,9 +19,9 @@
   });
   document.onfullscreenerror = t.unreached_func("fullscreenchange event");
 
-  trusted_click(t.step_func(() => {
+  trusted_click(t, () => {
     target.requestFullscreen();
     moveTo.appendChild(target);
-  }), document.body);
+  }, document.body);
 });
 </script>
diff --git a/third_party/WebKit/LayoutTests/fullscreen/api/element-request-fullscreen-and-remove-iframe.html b/third_party/WebKit/LayoutTests/fullscreen/api/element-request-fullscreen-and-remove-iframe.html
index 3edb7c8..161f29a 100644
--- a/third_party/WebKit/LayoutTests/fullscreen/api/element-request-fullscreen-and-remove-iframe.html
+++ b/third_party/WebKit/LayoutTests/fullscreen/api/element-request-fullscreen-and-remove-iframe.html
@@ -20,9 +20,9 @@
   iframeDocument.onfullscreenchange = t.unreached_func("iframe fullscreenchange event");
   iframeDocument.onfullscreenerror = t.unreached_func("iframe fullscreenerror event");
 
-  trusted_click(t.step_func(() => {
+  trusted_click(t, () => {
     iframeDocument.body.requestFullscreen();
     iframe.remove();
-  }), document.body);
+  }, document.body);
 });
 </script>
diff --git a/third_party/WebKit/LayoutTests/fullscreen/api/element-request-fullscreen-and-remove.html b/third_party/WebKit/LayoutTests/fullscreen/api/element-request-fullscreen-and-remove.html
index f5bb0e9..85adefa 100644
--- a/third_party/WebKit/LayoutTests/fullscreen/api/element-request-fullscreen-and-remove.html
+++ b/third_party/WebKit/LayoutTests/fullscreen/api/element-request-fullscreen-and-remove.html
@@ -16,9 +16,9 @@
   });
   document.onfullscreenerror = t.unreached_func("fullscreenchange event");
 
-  trusted_click(t.step_func(() => {
+  trusted_click(t, () => {
     target.requestFullscreen();
     target.remove();
-  }), document.body);
+  }, document.body);
 });
 </script>
diff --git a/third_party/WebKit/LayoutTests/fullscreen/api/element-request-fullscreen-twice.html b/third_party/WebKit/LayoutTests/fullscreen/api/element-request-fullscreen-twice.html
index 80d1761e..6472a25 100644
--- a/third_party/WebKit/LayoutTests/fullscreen/api/element-request-fullscreen-twice.html
+++ b/third_party/WebKit/LayoutTests/fullscreen/api/element-request-fullscreen-twice.html
@@ -18,12 +18,12 @@
   });
   document.onfullscreenerror = t.unreached_func("fullscreenerror event");
 
-  trusted_click(t.step_func(() => {
+  trusted_click(t, () => {
     // Request fullscreen twice.
     div.requestFullscreen();
     assert_equals(document.fullscreenElement, div, "fullscreenElement after first requestFullscreen()");
     div.requestFullscreen();
     assert_equals(document.fullscreenElement, div, "fullscreenElement after second requestFullscreen()");
-  }), document.body);
+  }, document.body);
 });
 </script>
diff --git a/third_party/WebKit/LayoutTests/fullscreen/api/element-request-fullscreen-two-elements.html b/third_party/WebKit/LayoutTests/fullscreen/api/element-request-fullscreen-two-elements.html
index f7adeb2b..2d0a4ee 100644
--- a/third_party/WebKit/LayoutTests/fullscreen/api/element-request-fullscreen-two-elements.html
+++ b/third_party/WebKit/LayoutTests/fullscreen/api/element-request-fullscreen-two-elements.html
@@ -22,9 +22,9 @@
     document.onfullscreenerror = t.step_func_done();
   });
 
-  trusted_click(t.step_func(() => {
+  trusted_click(t, () => {
     b.requestFullscreen();
     a.requestFullscreen();
-  }), document.body);
+  }, document.body);
 });
 </script>
diff --git a/third_party/WebKit/LayoutTests/fullscreen/api/element-request-fullscreen-two-iframes.html b/third_party/WebKit/LayoutTests/fullscreen/api/element-request-fullscreen-two-iframes.html
index c9b0ed6a..8d6923c 100644
--- a/third_party/WebKit/LayoutTests/fullscreen/api/element-request-fullscreen-two-iframes.html
+++ b/third_party/WebKit/LayoutTests/fullscreen/api/element-request-fullscreen-two-iframes.html
@@ -28,9 +28,9 @@
   a.contentDocument.onfullscreenchange = t.unreached_func('fullscreenchange event in iframe a');
   b.contentDocument.onfullscreenerror = t.unreached_func('fullscreenerror event in iframe b');
 
-  trusted_click(t.step_func(() => {
+  trusted_click(t, () => {
     b.contentDocument.body.requestFullscreen();
     a.contentDocument.body.requestFullscreen();
-  }), document.body);
+  }, document.body);
 });
 </script>
diff --git a/third_party/WebKit/LayoutTests/fullscreen/api/element-request-fullscreen-vs-exit.html b/third_party/WebKit/LayoutTests/fullscreen/api/element-request-fullscreen-vs-exit.html
index a766a6f..539f715 100644
--- a/third_party/WebKit/LayoutTests/fullscreen/api/element-request-fullscreen-vs-exit.html
+++ b/third_party/WebKit/LayoutTests/fullscreen/api/element-request-fullscreen-vs-exit.html
@@ -11,7 +11,7 @@
 async_test(t => {
   const target = document.getElementById("target");
 
-  trusted_click(t.step_func(() => {
+  trusted_click(t, () => {
     // Request fullscreen and exit at the same time. The exitFullscreen call
     // should have no effect as the fullscreen element is null.
     document.onfullscreenchange = t.step_func_done();
@@ -21,6 +21,6 @@
     assert_equals(document.fullscreenElement, target, "fullscreenElement after requestFullscreen()");
     document.exitFullscreen();
     assert_equals(document.fullscreenElement, null, "fullscreenElement after exitFullscreen()");
-  }), document.body);
+  }, document.body);
 });
 </script>
diff --git a/third_party/WebKit/LayoutTests/fullscreen/full-screen-ancestor-shadow.html b/third_party/WebKit/LayoutTests/fullscreen/full-screen-ancestor-shadow.html
index 7794ee83..9b8629e 100644
--- a/third_party/WebKit/LayoutTests/fullscreen/full-screen-ancestor-shadow.html
+++ b/third_party/WebKit/LayoutTests/fullscreen/full-screen-ancestor-shadow.html
@@ -13,7 +13,7 @@
     var target = document.createElement("div");
     host.appendChild(target);
 
-    trusted_request(target, document.body);
+    trusted_request(this, target, document.body);
     document.onfullscreenchange = this.step_func_done(function()
     {
       assert_true(host.matches(":-webkit-full-screen-ancestor"));
diff --git a/third_party/WebKit/LayoutTests/fullscreen/model/fully-exit-fullscreen-nested-iframe.html b/third_party/WebKit/LayoutTests/fullscreen/model/fully-exit-fullscreen-nested-iframe.html
index b17c164..c384344d 100644
--- a/third_party/WebKit/LayoutTests/fullscreen/model/fully-exit-fullscreen-nested-iframe.html
+++ b/third_party/WebKit/LayoutTests/fullscreen/model/fully-exit-fullscreen-nested-iframe.html
@@ -15,18 +15,18 @@
     var iframeDocument = iframe.contentDocument;
     var iframeBody = iframeDocument.body;
     var div = iframe.parentNode;
-    trusted_request(div);
+    trusted_request(t, div);
     document.onfullscreenchange = t.step_func(function()
     {
         assert_equals(document.fullscreenElement, div);
         assert_equals(iframeDocument.fullscreenElement, null);
-        trusted_request(iframeBody, div);
+        trusted_request(t, iframeBody, div);
         document.onfullscreenchange = null;
         iframeDocument.onfullscreenchange = t.step_func(function()
         {
             assert_equals(document.fullscreenElement, iframe);
             assert_equals(iframeDocument.fullscreenElement, iframeBody);
-            trusted_click(fully_exit_fullscreen.bind(null, iframeDocument), iframeBody);
+            trusted_click(t, fully_exit_fullscreen.bind(null, iframeDocument), iframeBody);
             iframeDocument.onfullscreenchange = null;
             document.onfullscreenchange = t.step_func(function()
             {
diff --git a/third_party/WebKit/LayoutTests/fullscreen/model/fully-exit-fullscreen-nested.html b/third_party/WebKit/LayoutTests/fullscreen/model/fully-exit-fullscreen-nested.html
index 5ed87f59..5b3f3f5 100644
--- a/third_party/WebKit/LayoutTests/fullscreen/model/fully-exit-fullscreen-nested.html
+++ b/third_party/WebKit/LayoutTests/fullscreen/model/fully-exit-fullscreen-nested.html
@@ -12,16 +12,16 @@
 async_test(function(t)
 {
     var first = document.getElementById("first");
-    trusted_request(first);
+    trusted_request(t, first);
     document.onfullscreenchange = t.step_func(function()
     {
         assert_equals(document.fullscreenElement, first);
         var last = document.getElementById("last");
-        trusted_request(last);
+        trusted_request(t, last);
         document.onfullscreenchange = t.step_func(function()
         {
             assert_equals(document.fullscreenElement, last);
-            trusted_click(fully_exit_fullscreen.bind(null, document), last);
+            trusted_click(t, fully_exit_fullscreen.bind(null, document), last);
             document.onfullscreenchange = t.step_func(function()
             {
                 assert_equals(document.fullscreenElement, null);
diff --git a/third_party/WebKit/LayoutTests/fullscreen/model/fully-exit-fullscreen-single.html b/third_party/WebKit/LayoutTests/fullscreen/model/fully-exit-fullscreen-single.html
index fe91f82c..5dd679a 100644
--- a/third_party/WebKit/LayoutTests/fullscreen/model/fully-exit-fullscreen-single.html
+++ b/third_party/WebKit/LayoutTests/fullscreen/model/fully-exit-fullscreen-single.html
@@ -10,11 +10,11 @@
 async_test(function(t)
 {
     var single = document.getElementById("single");
-    trusted_request(single);
+    trusted_request(t, single);
     document.onfullscreenchange = t.step_func(function()
     {
         assert_equals(document.fullscreenElement, single);
-        trusted_click(fully_exit_fullscreen.bind(null, document), single);
+        trusted_click(t, fully_exit_fullscreen.bind(null, document), single);
         document.onfullscreenchange = t.step_func(function()
         {
             assert_equals(document.fullscreenElement, null);
diff --git a/third_party/WebKit/LayoutTests/fullscreen/trusted-click.js b/third_party/WebKit/LayoutTests/fullscreen/trusted-click.js
index 0bea36a..8a73a8de 100644
--- a/third_party/WebKit/LayoutTests/fullscreen/trusted-click.js
+++ b/third_party/WebKit/LayoutTests/fullscreen/trusted-click.js
@@ -1,18 +1,18 @@
-// Invokes callback from a trusted event.
-// When testing manually, a button is added to the container.
-function trusted_click(callback, container)
+// Invokes callback from a trusted click event, to satisfy
+// https://html.spec.whatwg.org/#triggered-by-user-activation
+function trusted_click(test, callback, container)
 {
     var document = container.ownerDocument;
 
     if (window.testRunner) {
         // Running under LayoutTests. Use timeout to be async.
-        setTimeout(function()
+        setTimeout(test.step_func(function()
         {
             document.addEventListener("click", callback);
             eventSender.mouseDown();
             eventSender.mouseUp();
             document.removeEventListener("click", callback);
-        }, 0);
+        }), 0);
     } else {
         // Running as manual test. Show a button to click.
         var button = document.createElement("button");
@@ -20,21 +20,18 @@
         button.style.display = "block";
         button.style.fontSize = "20px";
         button.style.padding = "10px";
-        button.onclick = function()
+        button.onclick = test.step_func(function()
         {
             callback();
             button.onclick = null;
             container.removeChild(button);
-        };
+        });
         container.appendChild(button);
     }
 }
 
-// Invokes element.requestFullscreen() from a trusted event.
-// When testing manually, a button is added to the container,
-// or to element's parent if no container is provided.
-function trusted_request(element, container)
+// Invokes element.requestFullscreen() from a trusted click.
+function trusted_request(test, element, container)
 {
-    var request = element.requestFullscreen.bind(element);
-    trusted_click(request, container || element.parentNode);
+    trusted_click(test, () => element.requestFullscreen(), container || element.parentNode);
 }
diff --git a/third_party/WebKit/LayoutTests/http/tests/htmlimports/import-and-script-module-external.html b/third_party/WebKit/LayoutTests/http/tests/htmlimports/import-and-script-module-external.html
new file mode 100644
index 0000000..d965bc7
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/http/tests/htmlimports/import-and-script-module-external.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<script src="../../../resources/testharness.js"></script>
+<script src="../../../resources/testharnessreport.js"></script>
+<link rel="import" href="resources/module-script-external.html">
+<script>
+test(() => {
+  assert_true(window.runExternalScript);
+}, "External module script ran in HTML import.");
+</script>
+
diff --git a/third_party/WebKit/LayoutTests/http/tests/htmlimports/import-and-script-module-inline.html b/third_party/WebKit/LayoutTests/http/tests/htmlimports/import-and-script-module-inline.html
new file mode 100644
index 0000000..2b6ffff
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/http/tests/htmlimports/import-and-script-module-inline.html
@@ -0,0 +1,9 @@
+<!DOCTYPE html>
+<script src="../../../resources/testharness.js"></script>
+<script src="../../../resources/testharnessreport.js"></script>
+<link rel="import" href="resources/module-script-inline.html">
+<script>
+test(() => {
+  assert_true(window.runInlineScript);
+}, "Inline module script ran in HTML import.");
+</script>
diff --git a/third_party/WebKit/LayoutTests/http/tests/htmlimports/resources/module-script-external.html b/third_party/WebKit/LayoutTests/http/tests/htmlimports/resources/module-script-external.html
new file mode 100644
index 0000000..72553df
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/http/tests/htmlimports/resources/module-script-external.html
@@ -0,0 +1 @@
+<script type="module" src="module.js"></script>
diff --git a/third_party/WebKit/LayoutTests/http/tests/htmlimports/resources/module-script-inline.html b/third_party/WebKit/LayoutTests/http/tests/htmlimports/resources/module-script-inline.html
new file mode 100644
index 0000000..8e025f0
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/http/tests/htmlimports/resources/module-script-inline.html
@@ -0,0 +1,6 @@
+<script type="module">
+window.runInlineScript = true;
+test(() => {
+  assert_true(true);
+}, "HTML Imports run inline module script.");
+</script>
diff --git a/third_party/WebKit/LayoutTests/http/tests/htmlimports/resources/module.js b/third_party/WebKit/LayoutTests/http/tests/htmlimports/resources/module.js
new file mode 100644
index 0000000..1527370
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/http/tests/htmlimports/resources/module.js
@@ -0,0 +1,4 @@
+window.runExternalScript = true;
+test(() => {
+  assert_true(true);
+}, "HTML Imports run external module script.");
diff --git a/third_party/WebKit/LayoutTests/shadow-dom/fullscreen-element-in-shadow-complex.html b/third_party/WebKit/LayoutTests/shadow-dom/fullscreen-element-in-shadow-complex.html
index 9ca28f25..6cdeea5 100644
--- a/third_party/WebKit/LayoutTests/shadow-dom/fullscreen-element-in-shadow-complex.html
+++ b/third_party/WebKit/LayoutTests/shadow-dom/fullscreen-element-in-shadow-complex.html
@@ -50,7 +50,7 @@
     assert_equals(host5.shadowRoot.fullscreenElement, null);
 
     var canvas = host3.shadowRoot.querySelector('canvas');
-    trusted_request(canvas);
+    trusted_request(test, canvas);
 
     document.onfullscreenchange = test.step_func(() => {
         // Not interested in handling before or after exitFullscreen.
diff --git a/third_party/WebKit/LayoutTests/shadow-dom/fullscreen-element-in-shadow-simple.html b/third_party/WebKit/LayoutTests/shadow-dom/fullscreen-element-in-shadow-simple.html
index bb8be39..6766d58 100644
--- a/third_party/WebKit/LayoutTests/shadow-dom/fullscreen-element-in-shadow-simple.html
+++ b/third_party/WebKit/LayoutTests/shadow-dom/fullscreen-element-in-shadow-simple.html
@@ -23,7 +23,7 @@
     assert_equals(host0.shadowRoot.fullscreenElement, null);
 
     var canvas = host0.shadowRoot.querySelector('canvas');
-    trusted_request(canvas);
+    trusted_request(test, canvas);
 
     document.onfullscreenchange = test.step_func(() => {
         // Not interested in handling before or after exitFullscreen.
diff --git a/third_party/WebKit/LayoutTests/shadow-dom/v0/fullscreen-element-in-v0.html b/third_party/WebKit/LayoutTests/shadow-dom/v0/fullscreen-element-in-v0.html
index 0e4f321d..076ec88 100644
--- a/third_party/WebKit/LayoutTests/shadow-dom/v0/fullscreen-element-in-v0.html
+++ b/third_party/WebKit/LayoutTests/shadow-dom/v0/fullscreen-element-in-v0.html
@@ -23,7 +23,7 @@
     assert_equals(host0.shadowRoot.fullscreenElement, null);
 
     var canvas = host0.shadowRoot.querySelector('canvas');
-    trusted_request(canvas);
+    trusted_request(test, canvas);
 
     document.onfullscreenchange = test.step_func(() => {
         // Not interested in handling before or after exitFullscreen.
diff --git a/third_party/WebKit/Source/bindings/core/v8/V8GCController.cpp b/third_party/WebKit/Source/bindings/core/v8/V8GCController.cpp
index dfc83aea4..334d0b2e 100644
--- a/third_party/WebKit/Source/bindings/core/v8/V8GCController.cpp
+++ b/third_party/WebKit/Source/bindings/core/v8/V8GCController.cpp
@@ -553,8 +553,7 @@
 
   DEFINE_THREAD_SAFE_STATIC_LOCAL(
       CustomCountHistogram, scan_pending_activity_histogram,
-      new CustomCountHistogram("Blink.ScanPendingActivityDuration", 1, 1000,
-                               50));
+      ("Blink.ScanPendingActivityDuration", 1, 1000, 50));
   double start_time = WTF::CurrentTimeMS();
   v8::HandleScope scope(isolate);
   PendingActivityVisitor visitor(isolate, execution_context);
diff --git a/third_party/WebKit/Source/bindings/core/v8/V8Initializer.cpp b/third_party/WebKit/Source/bindings/core/v8/V8Initializer.cpp
index 3f96785..fa0ffe8 100644
--- a/third_party/WebKit/Source/bindings/core/v8/V8Initializer.cpp
+++ b/third_party/WebKit/Source/bindings/core/v8/V8Initializer.cpp
@@ -407,8 +407,8 @@
 
 static void AdjustAmountOfExternalAllocatedMemory(int64_t diff) {
 #if DCHECK_IS_ON()
-  DEFINE_THREAD_SAFE_STATIC_LOCAL(int64_t, process_total, new int64_t(0));
-  DEFINE_THREAD_SAFE_STATIC_LOCAL(Mutex, mutex, new Mutex);
+  static int64_t process_total = 0;
+  DEFINE_THREAD_SAFE_STATIC_LOCAL(Mutex, mutex, ());
   {
     MutexLocker locker(mutex);
 
diff --git a/third_party/WebKit/Source/bindings/core/v8/V8ScriptRunner.cpp b/third_party/WebKit/Source/bindings/core/v8/V8ScriptRunner.cpp
index c735b913..55e2fd88 100644
--- a/third_party/WebKit/Source/bindings/core/v8/V8ScriptRunner.cpp
+++ b/third_party/WebKit/Source/bindings/core/v8/V8ScriptRunner.cpp
@@ -82,24 +82,21 @@
     case kCacheable: {
       DEFINE_THREAD_SAFE_STATIC_LOCAL(
           CustomCountHistogram, compile_cacheable_histogram,
-          new CustomCountHistogram("V8.CompileCacheableMicroSeconds", 0,
-                                   1000000, 50));
+          ("V8.CompileCacheableMicroSeconds", 0, 1000000, 50));
       compile_cacheable_histogram.Count(elapsed_micro_seconds);
       break;
     }
     case kNoncacheable: {
       DEFINE_THREAD_SAFE_STATIC_LOCAL(
           CustomCountHistogram, compile_non_cacheable_histogram,
-          new CustomCountHistogram("V8.CompileNoncacheableMicroSeconds", 0,
-                                   1000000, 50));
+          ("V8.CompileNoncacheableMicroSeconds", 0, 1000000, 50));
       compile_non_cacheable_histogram.Count(elapsed_micro_seconds);
       break;
     }
     case kInlineScript: {
       DEFINE_THREAD_SAFE_STATIC_LOCAL(
           CustomCountHistogram, compile_inline_histogram,
-          new CustomCountHistogram("V8.CompileInlineScriptMicroSeconds", 0,
-                                   1000000, 50));
+          ("V8.CompileInlineScriptMicroSeconds", 0, 1000000, 50));
       compile_inline_histogram.Count(elapsed_micro_seconds);
       break;
     }
@@ -194,9 +191,9 @@
     if (length > 1024) {
       // Omit histogram samples for small cache data to avoid outliers.
       int cache_size_ratio = static_cast<int>(100.0 * length / code->Length());
-      DEFINE_THREAD_SAFE_STATIC_LOCAL(
-          CustomCountHistogram, code_cache_size_histogram,
-          new CustomCountHistogram("V8.CodeCacheSizeRatio", 0, 10000, 50));
+      DEFINE_THREAD_SAFE_STATIC_LOCAL(CustomCountHistogram,
+                                      code_cache_size_histogram,
+                                      ("V8.CodeCacheSizeRatio", 0, 10000, 50));
       code_cache_size_histogram.Count(cache_size_ratio);
     }
     cache_handler->ClearCachedMetadata(CachedMetadataHandler::kCacheLocally);
diff --git a/third_party/WebKit/Source/core/css/CSSValuePool.cpp b/third_party/WebKit/Source/core/css/CSSValuePool.cpp
index 68c5198a..943558df 100644
--- a/third_party/WebKit/Source/core/css/CSSValuePool.cpp
+++ b/third_party/WebKit/Source/core/css/CSSValuePool.cpp
@@ -33,9 +33,8 @@
 using namespace cssvalue;
 
 CSSValuePool& CssValuePool() {
-  DEFINE_THREAD_SAFE_STATIC_LOCAL(
-      ThreadSpecific<Persistent<CSSValuePool>>, thread_specific_pool,
-      new ThreadSpecific<Persistent<CSSValuePool>>());
+  DEFINE_THREAD_SAFE_STATIC_LOCAL(ThreadSpecific<Persistent<CSSValuePool>>,
+                                  thread_specific_pool, ());
   Persistent<CSSValuePool>& pool_handle = *thread_specific_pool;
   if (!pool_handle) {
     pool_handle = new CSSValuePool;
diff --git a/third_party/WebKit/Source/core/editing/BUILD.gn b/third_party/WebKit/Source/core/editing/BUILD.gn
index 41a2b8c..e96a0cc5 100644
--- a/third_party/WebKit/Source/core/editing/BUILD.gn
+++ b/third_party/WebKit/Source/core/editing/BUILD.gn
@@ -235,6 +235,11 @@
     "spellcheck/SpellCheckRequester.h",
     "spellcheck/SpellChecker.cpp",
     "spellcheck/SpellChecker.h",
+    "spellcheck/SpellCheckerClient.h",
+    "spellcheck/SpellCheckerClientImpl.cpp",
+    "spellcheck/SpellCheckerClientImpl.h",
+    "spellcheck/TextCheckerClientImpl.cpp",
+    "spellcheck/TextCheckerClientImpl.h",
     "spellcheck/TextCheckingParagraph.cpp",
     "spellcheck/TextCheckingParagraph.h",
     "state_machines/BackspaceStateMachine.cpp",
diff --git a/third_party/WebKit/Source/core/editing/spellcheck/SpellChecker.cpp b/third_party/WebKit/Source/core/editing/spellcheck/SpellChecker.cpp
index a72600ab..3dad9c7 100644
--- a/third_party/WebKit/Source/core/editing/spellcheck/SpellChecker.cpp
+++ b/third_party/WebKit/Source/core/editing/spellcheck/SpellChecker.cpp
@@ -45,6 +45,7 @@
 #include "core/editing/markers/DocumentMarkerController.h"
 #include "core/editing/spellcheck/IdleSpellCheckCallback.h"
 #include "core/editing/spellcheck/SpellCheckRequester.h"
+#include "core/editing/spellcheck/SpellCheckerClient.h"
 #include "core/editing/spellcheck/TextCheckingParagraph.h"
 #include "core/frame/LocalFrame.h"
 #include "core/frame/Settings.h"
@@ -52,7 +53,6 @@
 #include "core/layout/LayoutTextControl.h"
 #include "core/loader/EmptyClients.h"
 #include "core/page/Page.h"
-#include "core/page/SpellCheckerClient.h"
 #include "platform/RuntimeEnabledFeatures.h"
 #include "platform/text/TextBreakIterator.h"
 #include "platform/text/TextCheckerClient.h"
diff --git a/third_party/WebKit/Source/core/page/SpellCheckerClient.h b/third_party/WebKit/Source/core/editing/spellcheck/SpellCheckerClient.h
similarity index 100%
rename from third_party/WebKit/Source/core/page/SpellCheckerClient.h
rename to third_party/WebKit/Source/core/editing/spellcheck/SpellCheckerClient.h
diff --git a/third_party/WebKit/Source/web/SpellCheckerClientImpl.cpp b/third_party/WebKit/Source/core/editing/spellcheck/SpellCheckerClientImpl.cpp
similarity index 97%
rename from third_party/WebKit/Source/web/SpellCheckerClientImpl.cpp
rename to third_party/WebKit/Source/core/editing/spellcheck/SpellCheckerClientImpl.cpp
index 9857d45..e1e0d762 100644
--- a/third_party/WebKit/Source/web/SpellCheckerClientImpl.cpp
+++ b/third_party/WebKit/Source/core/editing/spellcheck/SpellCheckerClientImpl.cpp
@@ -24,7 +24,7 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-#include "web/SpellCheckerClientImpl.h"
+#include "core/editing/spellcheck/SpellCheckerClientImpl.h"
 
 #include "core/dom/Element.h"
 #include "core/editing/markers/DocumentMarkerController.h"
@@ -109,9 +109,10 @@
 
 void SpellCheckerClientImpl::UpdateSpellingUIWithMisspelledWord(
     const String& misspelled_word) {
-  if (web_view_->SpellCheckClient())
+  if (web_view_->SpellCheckClient()) {
     web_view_->SpellCheckClient()->UpdateSpellingUIWithMisspelledWord(
         WebString(misspelled_word));
+  }
 }
 
 void SpellCheckerClientImpl::ShowSpellingUI(bool show) {
diff --git a/third_party/WebKit/Source/web/SpellCheckerClientImpl.h b/third_party/WebKit/Source/core/editing/spellcheck/SpellCheckerClientImpl.h
similarity index 93%
rename from third_party/WebKit/Source/web/SpellCheckerClientImpl.h
rename to third_party/WebKit/Source/core/editing/spellcheck/SpellCheckerClientImpl.h
index a68d274..b031c6e 100644
--- a/third_party/WebKit/Source/web/SpellCheckerClientImpl.h
+++ b/third_party/WebKit/Source/core/editing/spellcheck/SpellCheckerClientImpl.h
@@ -31,7 +31,8 @@
 #ifndef SpellCheckerClientImpl_h
 #define SpellCheckerClientImpl_h
 
-#include "core/page/SpellCheckerClient.h"
+#include "core/CoreExport.h"
+#include "core/editing/spellcheck/SpellCheckerClient.h"
 
 namespace blink {
 
@@ -39,7 +40,8 @@
 
 // TODO(xiaochengh): Split SpellCheckerClientImpl into two classes according to
 // the split that should be done to its interface.
-class SpellCheckerClientImpl final : public SpellCheckerClient {
+class CORE_EXPORT SpellCheckerClientImpl final
+    : public NON_EXPORTED_BASE(SpellCheckerClient) {
  public:
   explicit SpellCheckerClientImpl(WebViewBase*);
 
diff --git a/third_party/WebKit/Source/web/TextCheckerClientImpl.cpp b/third_party/WebKit/Source/core/editing/spellcheck/TextCheckerClientImpl.cpp
similarity index 94%
rename from third_party/WebKit/Source/web/TextCheckerClientImpl.cpp
rename to third_party/WebKit/Source/core/editing/spellcheck/TextCheckerClientImpl.cpp
index 1da109ec..d054564b 100644
--- a/third_party/WebKit/Source/web/TextCheckerClientImpl.cpp
+++ b/third_party/WebKit/Source/core/editing/spellcheck/TextCheckerClientImpl.cpp
@@ -2,12 +2,12 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "web/TextCheckerClientImpl.h"
+#include "core/editing/spellcheck/TextCheckerClientImpl.h"
+#include "core/exported/WebTextCheckingCompletionImpl.h"
 #include "core/exported/WebViewBase.h"
 #include "core/frame/WebLocalFrameBase.h"
 #include "public/web/WebTextCheckClient.h"
 #include "public/web/WebTextCheckingResult.h"
-#include "web/WebTextCheckingCompletionImpl.h"
 
 namespace blink {
 
diff --git a/third_party/WebKit/Source/web/TextCheckerClientImpl.h b/third_party/WebKit/Source/core/editing/spellcheck/TextCheckerClientImpl.h
similarity index 93%
rename from third_party/WebKit/Source/web/TextCheckerClientImpl.h
rename to third_party/WebKit/Source/core/editing/spellcheck/TextCheckerClientImpl.h
index df0525dee..9bfe0ff 100644
--- a/third_party/WebKit/Source/web/TextCheckerClientImpl.h
+++ b/third_party/WebKit/Source/core/editing/spellcheck/TextCheckerClientImpl.h
@@ -5,6 +5,7 @@
 #ifndef TextCheckerClientImpl_h
 #define TextCheckerClientImpl_h
 
+#include "core/CoreExport.h"
 #include "platform/heap/Handle.h"
 #include "platform/text/TextCheckerClient.h"
 
@@ -14,7 +15,7 @@
 class WebTextCheckClient;
 
 // TODO(xiaochengh): Rename TextCheckerClientImpl to SpellCheckerClientImpl.
-class TextCheckerClientImpl final
+class CORE_EXPORT TextCheckerClientImpl final
     : public GarbageCollected<TextCheckerClientImpl>,
       public TextCheckerClient {
  public:
diff --git a/third_party/WebKit/Source/core/events/EventListenerMap.cpp b/third_party/WebKit/Source/core/events/EventListenerMap.cpp
index 668f50e..e6ae558 100644
--- a/third_party/WebKit/Source/core/events/EventListenerMap.cpp
+++ b/third_party/WebKit/Source/core/events/EventListenerMap.cpp
@@ -45,7 +45,7 @@
 
 #if DCHECK_IS_ON()
 static Mutex& ActiveIteratorCountMutex() {
-  DEFINE_THREAD_SAFE_STATIC_LOCAL(Mutex, mutex, new Mutex());
+  DEFINE_THREAD_SAFE_STATIC_LOCAL(Mutex, mutex, ());
   return mutex;
 }
 
diff --git a/third_party/WebKit/Source/core/exported/BUILD.gn b/third_party/WebKit/Source/core/exported/BUILD.gn
index 7d9563e5..75646bc 100644
--- a/third_party/WebKit/Source/core/exported/BUILD.gn
+++ b/third_party/WebKit/Source/core/exported/BUILD.gn
@@ -46,6 +46,9 @@
     "WebSelection.cpp",
     "WebSelector.cpp",
     "WebSerializedScriptValue.cpp",
+    "WebTextCheckingCompletionImpl.cpp",
+    "WebTextCheckingCompletionImpl.h",
+    "WebTextCheckingResult.cpp",
     "WebUserGestureIndicator.cpp",
     "WebUserGestureToken.cpp",
     "WebViewBase.h",
diff --git a/third_party/WebKit/Source/web/WebTextCheckingCompletionImpl.cpp b/third_party/WebKit/Source/core/exported/WebTextCheckingCompletionImpl.cpp
similarity index 96%
rename from third_party/WebKit/Source/web/WebTextCheckingCompletionImpl.cpp
rename to third_party/WebKit/Source/core/exported/WebTextCheckingCompletionImpl.cpp
index bcb24809e..4881889 100644
--- a/third_party/WebKit/Source/web/WebTextCheckingCompletionImpl.cpp
+++ b/third_party/WebKit/Source/core/exported/WebTextCheckingCompletionImpl.cpp
@@ -28,13 +28,12 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-#include "web/WebTextCheckingCompletionImpl.h"
+#include "core/exported/WebTextCheckingCompletionImpl.h"
 
 #include "platform/text/TextCheckerClient.h"
 #include "platform/wtf/Assertions.h"
 #include "public/platform/WebVector.h"
 #include "public/web/WebTextCheckingResult.h"
-#include "web/EditorClientImpl.h"
 
 namespace blink {
 
diff --git a/third_party/WebKit/Source/web/WebTextCheckingCompletionImpl.h b/third_party/WebKit/Source/core/exported/WebTextCheckingCompletionImpl.h
similarity index 93%
rename from third_party/WebKit/Source/web/WebTextCheckingCompletionImpl.h
rename to third_party/WebKit/Source/core/exported/WebTextCheckingCompletionImpl.h
index e4dd4d8..683af3d 100644
--- a/third_party/WebKit/Source/web/WebTextCheckingCompletionImpl.h
+++ b/third_party/WebKit/Source/core/exported/WebTextCheckingCompletionImpl.h
@@ -31,6 +31,7 @@
 #ifndef WebTextCheckingCompletionImpl_h
 #define WebTextCheckingCompletionImpl_h
 
+#include "core/CoreExport.h"
 #include "platform/heap/Handle.h"
 #include "platform/text/TextChecking.h"
 #include "platform/wtf/RefPtr.h"
@@ -38,7 +39,8 @@
 
 namespace blink {
 
-class WebTextCheckingCompletionImpl final : public WebTextCheckingCompletion {
+class CORE_EXPORT WebTextCheckingCompletionImpl final
+    : public NON_EXPORTED_BASE(WebTextCheckingCompletion) {
  public:
   explicit WebTextCheckingCompletionImpl(TextCheckingRequest* request)
       : request_(request) {}
diff --git a/third_party/WebKit/Source/web/WebTextCheckingResult.cpp b/third_party/WebKit/Source/core/exported/WebTextCheckingResult.cpp
similarity index 100%
rename from third_party/WebKit/Source/web/WebTextCheckingResult.cpp
rename to third_party/WebKit/Source/core/exported/WebTextCheckingResult.cpp
diff --git a/third_party/WebKit/Source/core/fileapi/Blob.cpp b/third_party/WebKit/Source/core/fileapi/Blob.cpp
index c904513..795a698 100644
--- a/third_party/WebKit/Source/core/fileapi/Blob.cpp
+++ b/third_party/WebKit/Source/core/fileapi/Blob.cpp
@@ -74,8 +74,7 @@
   // (This code assumes it is safe to register or unregister URLs on
   // BlobURLRegistry (that is implemented by the embedder) on
   // multiple threads.)
-  DEFINE_THREAD_SAFE_STATIC_LOCAL(BlobURLRegistry, instance,
-                                  new BlobURLRegistry());
+  DEFINE_THREAD_SAFE_STATIC_LOCAL(BlobURLRegistry, instance, ());
   return instance;
 }
 
diff --git a/third_party/WebKit/Source/core/fileapi/FileReaderSync.cpp b/third_party/WebKit/Source/core/fileapi/FileReaderSync.cpp
index 10af9bf2..a2fb510 100644
--- a/third_party/WebKit/Source/core/fileapi/FileReaderSync.cpp
+++ b/third_party/WebKit/Source/core/fileapi/FileReaderSync.cpp
@@ -63,8 +63,7 @@
     type = WorkerType::SERVICE_WORKER;
   DEFINE_THREAD_SAFE_STATIC_LOCAL(
       EnumerationHistogram, worker_type_histogram,
-      new EnumerationHistogram("FileReaderSync.WorkerType",
-                               static_cast<int>(WorkerType::MAX)));
+      ("FileReaderSync.WorkerType", static_cast<int>(WorkerType::MAX)));
   worker_type_histogram.Count(static_cast<int>(type));
 }
 
diff --git a/third_party/WebKit/Source/core/frame/ImageBitmapTest.cpp b/third_party/WebKit/Source/core/frame/ImageBitmapTest.cpp
index 1ab6ea0..2782cca 100644
--- a/third_party/WebKit/Source/core/frame/ImageBitmapTest.cpp
+++ b/third_party/WebKit/Source/core/frame/ImageBitmapTest.cpp
@@ -224,7 +224,17 @@
   return options;
 }
 
-TEST_F(ImageBitmapTest, ImageBitmapColorSpaceConversionHTMLImageElement) {
+// This test is failing on Android Arm 64 Official Test Bot.
+// See <http://crbug.com/721819>.
+#if OS(ANDROID)
+#define MAYBE_ImageBitmapColorSpaceConversionHTMLImageElement \
+  DISABLED_ImageBitmapColorSpaceConversionHTMLImageElement
+#else
+#define MAYBE_ImageBitmapColorSpaceConversionHTMLImageElement \
+  ImageBitmapColorSpaceConversionHTMLImageElement
+#endif
+
+TEST_F(ImageBitmapTest, MAYBE_ImageBitmapColorSpaceConversionHTMLImageElement) {
   HTMLImageElement* image_element =
       HTMLImageElement::Create(*Document::Create());
 
@@ -336,6 +346,16 @@
   }
 }
 
+// This test is failing on Android Arm 64 Official Test Bot.
+// See <http://crbug.com/721819>.
+#if OS(ANDROID)
+#define MAYBE_ImageBitmapColorSpaceConversionImageBitmap \
+  DISABLED_ImageBitmapColorSpaceConversionImageBitmap
+#else
+#define MAYBE_ImageBitmapColorSpaceConversionImageBitmap \
+  ImageBitmapColorSpaceConversionImageBitmap
+#endif
+
 TEST_F(ImageBitmapTest, ImageBitmapColorSpaceConversionImageBitmap) {
   HTMLImageElement* image_element =
       HTMLImageElement::Create(*Document::Create());
@@ -445,6 +465,16 @@
   }
 }
 
+// This test is failing on Android Arm 64 Official Test Bot.
+// See <http://crbug.com/721819>.
+#if OS(ANDROID)
+#define MAYBE_ImageBitmapColorSpaceConversionStaticBitmapImage \
+  DISABLED_ImageBitmapColorSpaceConversionStaticBitmapImage
+#else
+#define MAYBE_ImageBitmapColorSpaceConversionStaticBitmapImage \
+  ImageBitmapColorSpaceConversionStaticBitmapImage
+#endif
+
 TEST_F(ImageBitmapTest, ImageBitmapColorSpaceConversionStaticBitmapImage) {
   SkPaint p;
   p.setColor(SK_ColorRED);
diff --git a/third_party/WebKit/Source/core/frame/LocalFrame.cpp b/third_party/WebKit/Source/core/frame/LocalFrame.cpp
index 7cafbe02..24d29958 100644
--- a/third_party/WebKit/Source/core/frame/LocalFrame.cpp
+++ b/third_party/WebKit/Source/core/frame/LocalFrame.cpp
@@ -258,8 +258,7 @@
 using FrameInitCallbackVector = WTF::Vector<LocalFrame::FrameInitCallback>;
 FrameInitCallbackVector& GetInitializationVector() {
   DEFINE_THREAD_SAFE_STATIC_LOCAL(FrameInitCallbackVector,
-                                  initialization_vector,
-                                  new FrameInitCallbackVector());
+                                  initialization_vector, ());
   return initialization_vector;
 }
 
diff --git a/third_party/WebKit/Source/core/frame/NavigatorID.cpp b/third_party/WebKit/Source/core/frame/NavigatorID.cpp
index de378e8..c4d2334 100644
--- a/third_party/WebKit/Source/core/frame/NavigatorID.cpp
+++ b/third_party/WebKit/Source/core/frame/NavigatorID.cpp
@@ -62,8 +62,7 @@
   return "Win32";
 #else  // Unix-like systems
   struct utsname osname;
-  DEFINE_THREAD_SAFE_STATIC_LOCAL(ThreadSpecific<String>, platform_name,
-                                  new ThreadSpecific<String>());
+  DEFINE_THREAD_SAFE_STATIC_LOCAL(ThreadSpecific<String>, platform_name, ());
   if (platform_name->IsNull()) {
     *platform_name =
         String(uname(&osname) >= 0 ? String(osname.sysname) + String(" ") +
diff --git a/third_party/WebKit/Source/core/html/HTMLCanvasElement.cpp b/third_party/WebKit/Source/core/html/HTMLCanvasElement.cpp
index 88836a29..3a04ddf 100644
--- a/third_party/WebKit/Source/core/html/HTMLCanvasElement.cpp
+++ b/third_party/WebKit/Source/core/html/HTMLCanvasElement.cpp
@@ -680,20 +680,17 @@
   if (encoding_mime_type == "image/png") {
     DEFINE_THREAD_SAFE_STATIC_LOCAL(
         CustomCountHistogram, scoped_us_counter_png,
-        new CustomCountHistogram("Blink.Canvas.ToDataURL.PNG", 0, 10000000,
-                                 50));
+        ("Blink.Canvas.ToDataURL.PNG", 0, 10000000, 50));
     timer.emplace(scoped_us_counter_png);
   } else if (encoding_mime_type == "image/jpeg") {
     DEFINE_THREAD_SAFE_STATIC_LOCAL(
         CustomCountHistogram, scoped_us_counter_jpeg,
-        new CustomCountHistogram("Blink.Canvas.ToDataURL.JPEG", 0, 10000000,
-                                 50));
+        ("Blink.Canvas.ToDataURL.JPEG", 0, 10000000, 50));
     timer.emplace(scoped_us_counter_jpeg);
   } else if (encoding_mime_type == "image/webp") {
     DEFINE_THREAD_SAFE_STATIC_LOCAL(
         CustomCountHistogram, scoped_us_counter_webp,
-        new CustomCountHistogram("Blink.Canvas.ToDataURL.WEBP", 0, 10000000,
-                                 50));
+        ("Blink.Canvas.ToDataURL.WEBP", 0, 10000000, 50));
     timer.emplace(scoped_us_counter_webp);
   } else {
     // Currently we only support three encoding types.
diff --git a/third_party/WebKit/Source/core/html/HTMLMediaElement.cpp b/third_party/WebKit/Source/core/html/HTMLMediaElement.cpp
index b0d3bcc..f583a55a 100644
--- a/third_party/WebKit/Source/core/html/HTMLMediaElement.cpp
+++ b/third_party/WebKit/Source/core/html/HTMLMediaElement.cpp
@@ -155,8 +155,7 @@
                                   MIMETypeRegistry::SupportsType result) {
   DEFINE_THREAD_SAFE_STATIC_LOCAL(
       EnumerationHistogram, content_type_parseable_histogram,
-      new EnumerationHistogram("Media.MediaElement.ContentTypeParseable",
-                               kContentTypeParseableMax));
+      ("Media.MediaElement.ContentTypeParseable", kContentTypeParseableMax));
   ParsedContentType parsed_content_type(content_type);
   ContentTypeParseableResult uma_result = kIsNotSupportedNotParseable;
   switch (result) {
diff --git a/third_party/WebKit/Source/core/html/canvas/CanvasAsyncBlobCreator.cpp b/third_party/WebKit/Source/core/html/canvas/CanvasAsyncBlobCreator.cpp
index 2426d28..75a3ac6 100644
--- a/third_party/WebKit/Source/core/html/canvas/CanvasAsyncBlobCreator.cpp
+++ b/third_party/WebKit/Source/core/html/canvas/CanvasAsyncBlobCreator.cpp
@@ -81,10 +81,10 @@
 
 void RecordIdleTaskStatusHistogram(
     CanvasAsyncBlobCreator::IdleTaskStatus status) {
-  DEFINE_THREAD_SAFE_STATIC_LOCAL(
-      EnumerationHistogram, to_blob_idle_task_status,
-      new EnumerationHistogram("Blink.Canvas.ToBlob.IdleTaskStatus",
-                               CanvasAsyncBlobCreator::kIdleTaskCount));
+  DEFINE_THREAD_SAFE_STATIC_LOCAL(EnumerationHistogram,
+                                  to_blob_idle_task_status,
+                                  ("Blink.Canvas.ToBlob.IdleTaskStatus",
+                                   CanvasAsyncBlobCreator::kIdleTaskCount));
   to_blob_idle_task_status.Count(status);
 }
 
@@ -104,50 +104,41 @@
     if (mime_type == CanvasAsyncBlobCreator::kMimeTypePng) {
       DEFINE_THREAD_SAFE_STATIC_LOCAL(
           CustomCountHistogram, to_blob_png_initiate_encoding_counter,
-          new CustomCountHistogram(
-              "Blink.Canvas.ToBlob.InitiateEncodingDelay.PNG", 0, 10000000,
-              50));
+          ("Blink.Canvas.ToBlob.InitiateEncodingDelay.PNG", 0, 10000000, 50));
       to_blob_png_initiate_encoding_counter.Count(elapsed_time * 1000000.0);
     } else if (mime_type == CanvasAsyncBlobCreator::kMimeTypeJpeg) {
       DEFINE_THREAD_SAFE_STATIC_LOCAL(
           CustomCountHistogram, to_blob_jpeg_initiate_encoding_counter,
-          new CustomCountHistogram(
-              "Blink.Canvas.ToBlob.InitiateEncodingDelay.JPEG", 0, 10000000,
-              50));
+          ("Blink.Canvas.ToBlob.InitiateEncodingDelay.JPEG", 0, 10000000, 50));
       to_blob_jpeg_initiate_encoding_counter.Count(elapsed_time * 1000000.0);
     }
   } else if (type == kIdleEncodeDuration) {
     if (mime_type == CanvasAsyncBlobCreator::kMimeTypePng) {
       DEFINE_THREAD_SAFE_STATIC_LOCAL(
           CustomCountHistogram, to_blob_png_idle_encode_counter,
-          new CustomCountHistogram("Blink.Canvas.ToBlob.IdleEncodeDuration.PNG",
-                                   0, 10000000, 50));
+          ("Blink.Canvas.ToBlob.IdleEncodeDuration.PNG", 0, 10000000, 50));
       to_blob_png_idle_encode_counter.Count(elapsed_time * 1000000.0);
     } else if (mime_type == CanvasAsyncBlobCreator::kMimeTypeJpeg) {
       DEFINE_THREAD_SAFE_STATIC_LOCAL(
           CustomCountHistogram, to_blob_jpeg_idle_encode_counter,
-          new CustomCountHistogram(
-              "Blink.Canvas.ToBlob.IdleEncodeDuration.JPEG", 0, 10000000, 50));
+          ("Blink.Canvas.ToBlob.IdleEncodeDuration.JPEG", 0, 10000000, 50));
       to_blob_jpeg_idle_encode_counter.Count(elapsed_time * 1000000.0);
     }
   } else if (type == kToBlobDuration) {
     if (mime_type == CanvasAsyncBlobCreator::kMimeTypePng) {
       DEFINE_THREAD_SAFE_STATIC_LOCAL(
           CustomCountHistogram, to_blob_png_counter,
-          new CustomCountHistogram("Blink.Canvas.ToBlobDuration.PNG", 0,
-                                   10000000, 50));
+          ("Blink.Canvas.ToBlobDuration.PNG", 0, 10000000, 50));
       to_blob_png_counter.Count(elapsed_time * 1000000.0);
     } else if (mime_type == CanvasAsyncBlobCreator::kMimeTypeJpeg) {
       DEFINE_THREAD_SAFE_STATIC_LOCAL(
           CustomCountHistogram, to_blob_jpeg_counter,
-          new CustomCountHistogram("Blink.Canvas.ToBlobDuration.JPEG", 0,
-                                   10000000, 50));
+          ("Blink.Canvas.ToBlobDuration.JPEG", 0, 10000000, 50));
       to_blob_jpeg_counter.Count(elapsed_time * 1000000.0);
     } else if (mime_type == CanvasAsyncBlobCreator::kMimeTypeWebp) {
       DEFINE_THREAD_SAFE_STATIC_LOCAL(
           CustomCountHistogram, to_blob_webp_counter,
-          new CustomCountHistogram("Blink.Canvas.ToBlobDuration.WEBP", 0,
-                                   10000000, 50));
+          ("Blink.Canvas.ToBlobDuration.WEBP", 0, 10000000, 50));
       to_blob_webp_counter.Count(elapsed_time * 1000000.0);
     }
   }
diff --git a/third_party/WebKit/Source/core/inspector/IdentifiersFactory.cpp b/third_party/WebKit/Source/core/inspector/IdentifiersFactory.cpp
index 0f2670d..f2cb7b9 100644
--- a/third_party/WebKit/Source/core/inspector/IdentifiersFactory.cpp
+++ b/third_party/WebKit/Source/core/inspector/IdentifiersFactory.cpp
@@ -89,9 +89,7 @@
 
 // static
 String IdentifiersFactory::AddProcessIdPrefixTo(int id) {
-  DEFINE_THREAD_SAFE_STATIC_LOCAL(
-      uint32_t, process_id,
-      new uint32_t(Platform::Current()->GetUniqueIdForProcess()));
+  static uint32_t process_id = Platform::Current()->GetUniqueIdForProcess();
 
   StringBuilder builder;
 
diff --git a/third_party/WebKit/Source/core/inspector/MainThreadDebugger.cpp b/third_party/WebKit/Source/core/inspector/MainThreadDebugger.cpp
index 6216bb54..87c47e75 100644
--- a/third_party/WebKit/Source/core/inspector/MainThreadDebugger.cpp
+++ b/third_party/WebKit/Source/core/inspector/MainThreadDebugger.cpp
@@ -78,7 +78,7 @@
 }
 
 Mutex& CreationMutex() {
-  DEFINE_THREAD_SAFE_STATIC_LOCAL(Mutex, mutex, (new Mutex));
+  DEFINE_THREAD_SAFE_STATIC_LOCAL(Mutex, mutex, ());
   return mutex;
 }
 
diff --git a/third_party/WebKit/Source/core/layout/CollapsedBorderValue.h b/third_party/WebKit/Source/core/layout/CollapsedBorderValue.h
index 74c5575..12eae13e 100644
--- a/third_party/WebKit/Source/core/layout/CollapsedBorderValue.h
+++ b/third_party/WebKit/Source/core/layout/CollapsedBorderValue.h
@@ -63,6 +63,17 @@
     DCHECK(precedence != kBorderPrecedenceOff);
   }
 
+  CollapsedBorderValue(EBorderStyle style,
+                       const float width,
+                       const Color& color,
+                       EBorderPrecedence precedence)
+      : color_(color),
+        width_(ComputedStyle::BorderStyleIsVisible(style) ? width : 0),
+        style_(static_cast<unsigned>(style)),
+        precedence_(precedence) {
+    DCHECK(precedence != kBorderPrecedenceOff);
+  }
+
   unsigned Width() const { return width_; }
   EBorderStyle Style() const { return static_cast<EBorderStyle>(style_); }
   bool Exists() const { return precedence_ != kBorderPrecedenceOff; }
diff --git a/third_party/WebKit/Source/core/layout/LayoutTable.cpp b/third_party/WebKit/Source/core/layout/LayoutTable.cpp
index e5b53c4..f50226b 100644
--- a/third_party/WebKit/Source/core/layout/LayoutTable.cpp
+++ b/third_party/WebKit/Source/core/layout/LayoutTable.cpp
@@ -1189,23 +1189,25 @@
 
   int border_width = 0;
 
-  const BorderValue& table_start_border = Style()->BorderStart();
-  if (table_start_border.Style() == EBorderStyle::kHidden)
+  EBorderStyle table_start_border_style = Style()->BorderStartStyle();
+  if (table_start_border_style == EBorderStyle::kHidden)
     return 0;
-  if (ComputedStyle::BorderStyleIsVisible(table_start_border.Style()))
-    border_width = table_start_border.Width();
+  if (ComputedStyle::BorderStyleIsVisible(table_start_border_style))
+    border_width = Style()->BorderStartWidth();
 
   // TODO(dgrogan): This logic doesn't properly account for the first column in
   // the first column-group case.
   if (LayoutTableCol* column =
           ColElementAtAbsoluteColumn(0).InnermostColOrColGroup()) {
     // FIXME: We don't account for direction on columns and column groups.
-    const BorderValue& column_adjoining_border = column->Style()->BorderStart();
-    if (column_adjoining_border.Style() == EBorderStyle::kHidden)
+    EBorderStyle column_adjoining_border_style =
+        column->Style()->BorderStartStyle();
+    if (column_adjoining_border_style == EBorderStyle::kHidden)
       return 0;
-    if (ComputedStyle::BorderStyleIsVisible(column_adjoining_border.Style()))
+    if (ComputedStyle::BorderStyleIsVisible(column_adjoining_border_style)) {
       border_width =
-          std::max<int>(border_width, column_adjoining_border.Width());
+          std::max<int>(border_width, column->Style()->BorderStartWidth());
+    }
   }
 
   if (const LayoutTableSection* top_non_empty_section =
@@ -1258,11 +1260,11 @@
 
   int border_width = 0;
 
-  const BorderValue& table_end_border = Style()->BorderEnd();
-  if (table_end_border.Style() == EBorderStyle::kHidden)
+  EBorderStyle table_end_border_style = Style()->BorderEndStyle();
+  if (table_end_border_style == EBorderStyle::kHidden)
     return 0;
-  if (ComputedStyle::BorderStyleIsVisible(table_end_border.Style()))
-    border_width = table_end_border.Width();
+  if (ComputedStyle::BorderStyleIsVisible(table_end_border_style))
+    border_width = Style()->BorderEndWidth();
 
   unsigned end_column = NumEffectiveColumns() - 1;
 
@@ -1271,12 +1273,14 @@
   if (LayoutTableCol* column =
           ColElementAtAbsoluteColumn(end_column).InnermostColOrColGroup()) {
     // FIXME: We don't account for direction on columns and column groups.
-    const BorderValue& column_adjoining_border = column->Style()->BorderEnd();
-    if (column_adjoining_border.Style() == EBorderStyle::kHidden)
+    EBorderStyle column_adjoining_border_style =
+        column->Style()->BorderEndStyle();
+    if (column_adjoining_border_style == EBorderStyle::kHidden)
       return 0;
-    if (ComputedStyle::BorderStyleIsVisible(column_adjoining_border.Style()))
+    if (ComputedStyle::BorderStyleIsVisible(column_adjoining_border_style)) {
       border_width =
-          std::max<int>(border_width, column_adjoining_border.Width());
+          std::max<int>(border_width, column->Style()->BorderEndWidth());
+    }
   }
 
   if (const LayoutTableSection* top_non_empty_section =
@@ -1350,11 +1354,13 @@
     if (border_width < 0)
       return 0;  // Overridden by hidden
   }
-  const BorderValue& tb = Style()->BorderBefore();
-  if (tb.Style() == EBorderStyle::kHidden)
+  EBorderStyle tbs = Style()->BorderBeforeStyle();
+  if (tbs == EBorderStyle::kHidden)
     return 0;
-  if (ComputedStyle::BorderStyleIsVisible(tb.Style()))
-    border_width = std::max<int>(border_width, tb.Width() / 2);
+  if (ComputedStyle::BorderStyleIsVisible(tbs)) {
+    border_width =
+        std::max<int>(border_width, Style()->BorderBeforeWidth() / 2);
+  }
   return border_width;
 }
 
@@ -1368,11 +1374,13 @@
     if (border_width < 0)
       return 0;  // Overridden by hidden
   }
-  const BorderValue& tb = Style()->BorderAfter();
-  if (tb.Style() == EBorderStyle::kHidden)
+  EBorderStyle tbs = Style()->BorderAfterStyle();
+  if (tbs == EBorderStyle::kHidden)
     return 0;
-  if (ComputedStyle::BorderStyleIsVisible(tb.Style()))
-    border_width = std::max<int>(border_width, (tb.Width() + 1) / 2);
+  if (ComputedStyle::BorderStyleIsVisible(tbs)) {
+    border_width =
+        std::max<int>(border_width, (Style()->BorderAfterWidth() + 1) / 2);
+  }
   return border_width;
 }
 
@@ -1382,12 +1390,14 @@
 
   int border_width = 0;
 
-  const BorderValue& tb = Style()->BorderStart();
-  if (tb.Style() == EBorderStyle::kHidden)
+  EBorderStyle tbs = Style()->BorderStartStyle();
+  if (tbs == EBorderStyle::kHidden)
     return 0;
-  if (ComputedStyle::BorderStyleIsVisible(tb.Style()))
-    border_width =
-        (tb.Width() + (Style()->IsLeftToRightDirection() ? 0 : 1)) / 2;
+  if (ComputedStyle::BorderStyleIsVisible(tbs)) {
+    border_width = (Style()->BorderStartWidth() +
+                    (Style()->IsLeftToRightDirection() ? 0 : 1)) /
+                   2;
+  }
 
   bool all_hidden = true;
   for (LayoutTableSection* section = TopSection(); section;
@@ -1410,12 +1420,14 @@
 
   int border_width = 0;
 
-  const BorderValue& tb = Style()->BorderEnd();
-  if (tb.Style() == EBorderStyle::kHidden)
+  EBorderStyle tbs = Style()->BorderEndStyle();
+  if (tbs == EBorderStyle::kHidden)
     return 0;
-  if (ComputedStyle::BorderStyleIsVisible(tb.Style()))
-    border_width =
-        (tb.Width() + (Style()->IsLeftToRightDirection() ? 1 : 0)) / 2;
+  if (ComputedStyle::BorderStyleIsVisible(tbs)) {
+    border_width = (Style()->BorderEndWidth() +
+                    (Style()->IsLeftToRightDirection() ? 1 : 0)) /
+                   2;
+  }
 
   bool all_hidden = true;
   for (LayoutTableSection* section = TopSection(); section;
diff --git a/third_party/WebKit/Source/core/layout/LayoutTableCell.cpp b/third_party/WebKit/Source/core/layout/LayoutTableCell.cpp
index 56a40e0d..700529f 100644
--- a/third_party/WebKit/Source/core/layout/LayoutTableCell.cpp
+++ b/third_party/WebKit/Source/core/layout/LayoutTableCell.cpp
@@ -641,9 +641,9 @@
       ResolveBorderProperty(CSSPropertyWebkitBorderStartColor);
   int end_color_property =
       ResolveBorderProperty(CSSPropertyWebkitBorderEndColor);
-  CollapsedBorderValue result(Style()->BorderStart(),
-                              ResolveColor(start_color_property),
-                              kBorderPrecedenceCell);
+  CollapsedBorderValue result(
+      Style()->BorderStartStyle(), Style()->BorderStartWidth(),
+      ResolveColor(start_color_property), kBorderPrecedenceCell);
 
   // (2) The end border of the preceding cell.
   if (cell_before) {
@@ -775,8 +775,8 @@
   int end_color_property =
       ResolveBorderProperty(CSSPropertyWebkitBorderEndColor);
   CollapsedBorderValue result = CollapsedBorderValue(
-      Style()->BorderEnd(), ResolveColor(end_color_property),
-      kBorderPrecedenceCell);
+      Style()->BorderEndStyle(), Style()->BorderEndWidth(),
+      ResolveColor(end_color_property), kBorderPrecedenceCell);
 
   // (2) The start border of the following cell.
   if (cell_after) {
@@ -900,13 +900,14 @@
   int after_color_property =
       ResolveBorderProperty(CSSPropertyWebkitBorderAfterColor);
   CollapsedBorderValue result = CollapsedBorderValue(
-      Style()->BorderBefore(), ResolveColor(before_color_property),
-      kBorderPrecedenceCell);
+      Style()->BorderBeforeStyle(), Style()->BorderBeforeWidth(),
+      ResolveColor(before_color_property), kBorderPrecedenceCell);
 
   if (prev_cell) {
     // (2) A before cell's after border.
     result = ChooseBorder(
-        CollapsedBorderValue(prev_cell->Style()->BorderAfter(),
+        CollapsedBorderValue(prev_cell->Style()->BorderAfterStyle(),
+                             prev_cell->Style()->BorderAfterWidth(),
                              prev_cell->ResolveColor(after_color_property),
                              kBorderPrecedenceCell),
         result);
@@ -917,7 +918,8 @@
   // (3) Our row's before border.
   result = ChooseBorder(
       result,
-      CollapsedBorderValue(Parent()->Style()->BorderBefore(),
+      CollapsedBorderValue(Parent()->Style()->BorderBeforeStyle(),
+                           Parent()->Style()->BorderBeforeWidth(),
                            Parent()->ResolveColor(before_color_property),
                            kBorderPrecedenceRow));
   if (!result.Exists())
@@ -933,7 +935,8 @@
 
     if (prev_row) {
       result = ChooseBorder(
-          CollapsedBorderValue(prev_row->Style()->BorderAfter(),
+          CollapsedBorderValue(prev_row->Style()->BorderAfterStyle(),
+                               prev_row->Style()->BorderAfterWidth(),
                                prev_row->ResolveColor(after_color_property),
                                kBorderPrecedenceRow),
           result);
@@ -948,7 +951,8 @@
     // (5) Our row group's before border.
     result = ChooseBorder(
         result,
-        CollapsedBorderValue(curr_section->Style()->BorderBefore(),
+        CollapsedBorderValue(curr_section->Style()->BorderBeforeStyle(),
+                             curr_section->Style()->BorderBeforeWidth(),
                              curr_section->ResolveColor(before_color_property),
                              kBorderPrecedenceRowGroup));
     if (!result.Exists())
@@ -958,7 +962,8 @@
     curr_section = table->SectionAbove(curr_section, kSkipEmptySections);
     if (curr_section) {
       result = ChooseBorder(
-          CollapsedBorderValue(curr_section->Style()->BorderAfter(),
+          CollapsedBorderValue(curr_section->Style()->BorderAfterStyle(),
+                               curr_section->Style()->BorderAfterWidth(),
                                curr_section->ResolveColor(after_color_property),
                                kBorderPrecedenceRowGroup),
           result);
@@ -975,7 +980,8 @@
     if (col_elt) {
       result = ChooseBorder(
           result,
-          CollapsedBorderValue(col_elt->Style()->BorderBefore(),
+          CollapsedBorderValue(col_elt->Style()->BorderBeforeStyle(),
+                               col_elt->Style()->BorderBeforeWidth(),
                                col_elt->ResolveColor(before_color_property),
                                kBorderPrecedenceColumn));
       if (!result.Exists())
@@ -985,7 +991,8 @@
         result = ChooseBorder(
             result,
             CollapsedBorderValue(
-                enclosing_column_group->Style()->BorderBefore(),
+                enclosing_column_group->Style()->BorderBeforeStyle(),
+                enclosing_column_group->Style()->BorderBeforeWidth(),
                 enclosing_column_group->ResolveColor(before_color_property),
                 kBorderPrecedenceColumnGroup));
         if (!result.Exists())
@@ -995,7 +1002,8 @@
 
     // (9) The table's before border.
     result = ChooseBorder(
-        result, CollapsedBorderValue(table->Style()->BorderBefore(),
+        result, CollapsedBorderValue(table->Style()->BorderBeforeStyle(),
+                                     table->Style()->BorderBeforeWidth(),
                                      table->ResolveColor(before_color_property),
                                      kBorderPrecedenceTable));
     if (!result.Exists())
@@ -1023,14 +1031,15 @@
   int after_color_property =
       ResolveBorderProperty(CSSPropertyWebkitBorderAfterColor);
   CollapsedBorderValue result = CollapsedBorderValue(
-      Style()->BorderAfter(), ResolveColor(after_color_property),
-      kBorderPrecedenceCell);
+      Style()->BorderAfterStyle(), Style()->BorderAfterWidth(),
+      ResolveColor(after_color_property), kBorderPrecedenceCell);
 
   if (next_cell) {
     // (2) An after cell's before border.
     result = ChooseBorder(
         result,
-        CollapsedBorderValue(next_cell->Style()->BorderBefore(),
+        CollapsedBorderValue(next_cell->Style()->BorderBeforeStyle(),
+                             next_cell->Style()->BorderBeforeWidth(),
                              next_cell->ResolveColor(before_color_property),
                              kBorderPrecedenceCell));
     if (!result.Exists())
@@ -1039,7 +1048,8 @@
 
   // (3) Our row's after border. (FIXME: Deal with rowspan!)
   result = ChooseBorder(
-      result, CollapsedBorderValue(Parent()->Style()->BorderAfter(),
+      result, CollapsedBorderValue(Parent()->Style()->BorderAfterStyle(),
+                                   Parent()->Style()->BorderAfterWidth(),
                                    Parent()->ResolveColor(after_color_property),
                                    kBorderPrecedenceRow));
   if (!result.Exists())
@@ -1049,7 +1059,8 @@
   if (next_cell) {
     result = ChooseBorder(
         result, CollapsedBorderValue(
-                    next_cell->Parent()->Style()->BorderBefore(),
+                    next_cell->Parent()->Style()->BorderBeforeStyle(),
+                    next_cell->Parent()->Style()->BorderBeforeWidth(),
                     next_cell->Parent()->ResolveColor(before_color_property),
                     kBorderPrecedenceRow));
     if (!result.Exists())
@@ -1062,7 +1073,8 @@
     // (5) Our row group's after border.
     result = ChooseBorder(
         result,
-        CollapsedBorderValue(curr_section->Style()->BorderAfter(),
+        CollapsedBorderValue(curr_section->Style()->BorderAfterStyle(),
+                             curr_section->Style()->BorderAfterWidth(),
                              curr_section->ResolveColor(after_color_property),
                              kBorderPrecedenceRowGroup));
     if (!result.Exists())
@@ -1073,7 +1085,8 @@
     if (curr_section) {
       result = ChooseBorder(
           result, CollapsedBorderValue(
-                      curr_section->Style()->BorderBefore(),
+                      curr_section->Style()->BorderBeforeStyle(),
+                      curr_section->Style()->BorderBeforeWidth(),
                       curr_section->ResolveColor(before_color_property),
                       kBorderPrecedenceRowGroup));
       if (!result.Exists())
@@ -1089,7 +1102,8 @@
     if (col_elt) {
       result = ChooseBorder(
           result,
-          CollapsedBorderValue(col_elt->Style()->BorderAfter(),
+          CollapsedBorderValue(col_elt->Style()->BorderAfterStyle(),
+                               col_elt->Style()->BorderAfterWidth(),
                                col_elt->ResolveColor(after_color_property),
                                kBorderPrecedenceColumn));
       if (!result.Exists())
@@ -1099,7 +1113,8 @@
         result = ChooseBorder(
             result,
             CollapsedBorderValue(
-                enclosing_column_group->Style()->BorderAfter(),
+                enclosing_column_group->Style()->BorderAfterStyle(),
+                enclosing_column_group->Style()->BorderAfterWidth(),
                 enclosing_column_group->ResolveColor(after_color_property),
                 kBorderPrecedenceColumnGroup));
         if (!result.Exists())
@@ -1109,7 +1124,8 @@
 
     // (9) The table's after border.
     result = ChooseBorder(
-        result, CollapsedBorderValue(table->Style()->BorderAfter(),
+        result, CollapsedBorderValue(table->Style()->BorderAfterStyle(),
+                                     table->Style()->BorderAfterWidth(),
                                      table->ResolveColor(after_color_property),
                                      kBorderPrecedenceTable));
     if (!result.Exists())
diff --git a/third_party/WebKit/Source/core/layout/LayoutTableSection.cpp b/third_party/WebKit/Source/core/layout/LayoutTableSection.cpp
index efd0a2d..3c9f5ca 100644
--- a/third_party/WebKit/Source/core/layout/LayoutTableSection.cpp
+++ b/third_party/WebKit/Source/core/layout/LayoutTableSection.cpp
@@ -1360,22 +1360,27 @@
 
   int border_width = 0;
 
-  const BorderValue& sb =
-      side == kBorderBefore ? Style()->BorderBefore() : Style()->BorderAfter();
-  if (sb.Style() == EBorderStyle::kHidden)
+  EBorderStyle section_border_style = side == kBorderBefore
+                                          ? Style()->BorderBeforeStyle()
+                                          : Style()->BorderAfterStyle();
+  if (section_border_style == EBorderStyle::kHidden)
     return -1;
-  if (ComputedStyle::BorderStyleIsVisible(sb.Style()))
-    border_width = sb.Width();
+  if (ComputedStyle::BorderStyleIsVisible(section_border_style)) {
+    border_width = side == kBorderBefore ? Style()->BorderBeforeWidth()
+                                         : Style()->BorderAfterWidth();
+  }
 
-  const BorderValue& rb = side == kBorderBefore
-                              ? FirstRow()->Style()->BorderBefore()
-                              : LastRow()->Style()->BorderAfter();
-  if (rb.Style() == EBorderStyle::kHidden)
+  EBorderStyle row_border_style = side == kBorderBefore
+                                      ? FirstRow()->Style()->BorderBeforeStyle()
+                                      : LastRow()->Style()->BorderAfterStyle();
+  float row_border_width = side == kBorderBefore
+                               ? FirstRow()->Style()->BorderBeforeWidth()
+                               : LastRow()->Style()->BorderAfterWidth();
+  if (row_border_style == EBorderStyle::kHidden)
     return -1;
-  if (ComputedStyle::BorderStyleIsVisible(rb.Style()) &&
-      rb.Width() > border_width)
-    border_width = rb.Width();
-
+  if (ComputedStyle::BorderStyleIsVisible(row_border_style) &&
+      row_border_width > border_width)
+    border_width = row_border_width;
   bool all_hidden = true;
   unsigned r = side == kBorderBefore ? 0 : grid_.size() - 1;
   unsigned n_cols = NumCols(r);
@@ -1386,33 +1391,39 @@
     const ComputedStyle& primary_cell_style =
         grid_cell.PrimaryCell()->StyleRef();
     // FIXME: Make this work with perpendicular and flipped cells.
-    const BorderValue& cb = side == kBorderBefore
-                                ? primary_cell_style.BorderBefore()
-                                : primary_cell_style.BorderAfter();
+    EBorderStyle cell_border_style =
+        side == kBorderBefore ? primary_cell_style.BorderBeforeStyle()
+                              : primary_cell_style.BorderAfterStyle();
+    float cell_border_width = side == kBorderBefore
+                                  ? primary_cell_style.BorderBeforeWidth()
+                                  : primary_cell_style.BorderAfterWidth();
     // FIXME: Don't repeat for the same col group
     LayoutTableCol* col =
         Table()->ColElementAtAbsoluteColumn(c).InnermostColOrColGroup();
     if (col) {
-      const BorderValue& gb = side == kBorderBefore
-                                  ? col->Style()->BorderBefore()
-                                  : col->Style()->BorderAfter();
-      if (gb.Style() == EBorderStyle::kHidden ||
-          cb.Style() == EBorderStyle::kHidden)
+      EBorderStyle col_border_style = side == kBorderBefore
+                                          ? col->Style()->BorderBeforeStyle()
+                                          : col->Style()->BorderAfterStyle();
+      const float col_border_width = side == kBorderBefore
+                                         ? col->Style()->BorderBeforeWidth()
+                                         : col->Style()->BorderAfterWidth();
+      if (col_border_style == EBorderStyle::kHidden ||
+          cell_border_style == EBorderStyle::kHidden)
         continue;
       all_hidden = false;
-      if (ComputedStyle::BorderStyleIsVisible(gb.Style()) &&
-          gb.Width() > border_width)
-        border_width = gb.Width();
-      if (ComputedStyle::BorderStyleIsVisible(cb.Style()) &&
-          cb.Width() > border_width)
-        border_width = cb.Width();
+      if (ComputedStyle::BorderStyleIsVisible(col_border_style) &&
+          col_border_width > border_width)
+        border_width = col_border_width;
+      if (ComputedStyle::BorderStyleIsVisible(cell_border_style) &&
+          cell_border_width > border_width)
+        border_width = cell_border_width;
     } else {
-      if (cb.Style() == EBorderStyle::kHidden)
+      if (cell_border_style == EBorderStyle::kHidden)
         continue;
       all_hidden = false;
-      if (ComputedStyle::BorderStyleIsVisible(cb.Style()) &&
-          cb.Width() > border_width)
-        border_width = cb.Width();
+      if (ComputedStyle::BorderStyleIsVisible(cell_border_style) &&
+          cell_border_width > border_width)
+        border_width = cell_border_width;
     }
   }
   if (all_hidden)
@@ -1432,23 +1443,31 @@
 
   int border_width = 0;
 
-  const BorderValue& sb =
-      side == kBorderStart ? Style()->BorderStart() : Style()->BorderEnd();
-  if (sb.Style() == EBorderStyle::kHidden)
+  EBorderStyle section_border_style = side == kBorderStart
+                                          ? Style()->BorderStartStyle()
+                                          : Style()->BorderEndStyle();
+  const float section_border_width = side == kBorderStart
+                                         ? Style()->BorderStartWidth()
+                                         : Style()->BorderEndWidth();
+  if (section_border_style == EBorderStyle::kHidden)
     return -1;
-  if (ComputedStyle::BorderStyleIsVisible(sb.Style()))
-    border_width = sb.Width();
+  if (ComputedStyle::BorderStyleIsVisible(section_border_style))
+    border_width = section_border_width;
 
   if (LayoutTableCol* col = Table()
                                 ->ColElementAtAbsoluteColumn(col_index)
                                 .InnermostColOrColGroup()) {
-    const BorderValue& gb = side == kBorderStart ? col->Style()->BorderStart()
-                                                 : col->Style()->BorderEnd();
-    if (gb.Style() == EBorderStyle::kHidden)
+    EBorderStyle col_border_style = side == kBorderStart
+                                        ? col->Style()->BorderStartStyle()
+                                        : col->Style()->BorderEndStyle();
+    const float col_border_width = side == kBorderStart
+                                       ? col->Style()->BorderStartWidth()
+                                       : col->Style()->BorderEndWidth();
+    if (col_border_style == EBorderStyle::kHidden)
       return -1;
-    if (ComputedStyle::BorderStyleIsVisible(gb.Style()) &&
-        gb.Width() > border_width)
-      border_width = gb.Width();
+    if (ComputedStyle::BorderStyleIsVisible(col_border_style) &&
+        col_border_width > border_width)
+      border_width = col_border_width;
   }
 
   bool all_hidden = true;
@@ -1464,22 +1483,28 @@
     const ComputedStyle& primary_cell_parent_style =
         grid_cell.PrimaryCell()->Parent()->StyleRef();
     // FIXME: Make this work with perpendicular and flipped cells.
-    const BorderValue& cb = side == kBorderStart
-                                ? primary_cell_style.BorderStart()
-                                : primary_cell_style.BorderEnd();
-    const BorderValue& rb = side == kBorderStart
-                                ? primary_cell_parent_style.BorderStart()
-                                : primary_cell_parent_style.BorderEnd();
-    if (cb.Style() == EBorderStyle::kHidden ||
-        rb.Style() == EBorderStyle::kHidden)
+    EBorderStyle cell_border_style = side == kBorderStart
+                                         ? primary_cell_style.BorderStartStyle()
+                                         : primary_cell_style.BorderEndStyle();
+    EBorderStyle row_border_style =
+        side == kBorderStart ? primary_cell_parent_style.BorderStartStyle()
+                             : primary_cell_parent_style.BorderEndStyle();
+    const float cell_border_width = side == kBorderStart
+                                        ? primary_cell_style.BorderStartWidth()
+                                        : primary_cell_style.BorderEndWidth();
+    const float row_border_width =
+        side == kBorderStart ? primary_cell_parent_style.BorderStartWidth()
+                             : primary_cell_parent_style.BorderEndWidth();
+    if (cell_border_style == EBorderStyle::kHidden ||
+        row_border_style == EBorderStyle::kHidden)
       continue;
     all_hidden = false;
-    if (ComputedStyle::BorderStyleIsVisible(cb.Style()) &&
-        cb.Width() > border_width)
-      border_width = cb.Width();
-    if (ComputedStyle::BorderStyleIsVisible(rb.Style()) &&
-        rb.Width() > border_width)
-      border_width = rb.Width();
+    if (ComputedStyle::BorderStyleIsVisible(cell_border_style) &&
+        cell_border_width > border_width)
+      border_width = cell_border_width;
+    if (ComputedStyle::BorderStyleIsVisible(row_border_style) &&
+        row_border_width > border_width)
+      border_width = row_border_width;
   }
   if (all_hidden)
     return -1;
diff --git a/third_party/WebKit/Source/core/layout/LayoutTreeAsText.cpp b/third_party/WebKit/Source/core/layout/LayoutTreeAsText.cpp
index 9f618ed..e26e12c 100644
--- a/third_party/WebKit/Source/core/layout/LayoutTreeAsText.cpp
+++ b/third_party/WebKit/Source/core/layout/LayoutTreeAsText.cpp
@@ -218,7 +218,7 @@
         ts << o.ResolveColor(CSSPropertyBorderTopColor) << ")";
       }
 
-      if (o.Style()->BorderRight() != prev_border) {
+      if (!o.Style()->BorderRightEquals(prev_border)) {
         prev_border = o.Style()->BorderRight();
         if (!box.BorderRight()) {
           ts << " none";
@@ -229,7 +229,7 @@
         }
       }
 
-      if (o.Style()->BorderBottom() != prev_border) {
+      if (!o.Style()->BorderBottomEquals(prev_border)) {
         prev_border = box.Style()->BorderBottom();
         if (!box.BorderBottom()) {
           ts << " none";
@@ -240,7 +240,7 @@
         }
       }
 
-      if (o.Style()->BorderLeft() != prev_border) {
+      if (!o.Style()->BorderLeftEquals(prev_border)) {
         prev_border = o.Style()->BorderLeft();
         if (!box.BorderLeft()) {
           ts << " none";
diff --git a/third_party/WebKit/Source/core/loader/EmptyClients.h b/third_party/WebKit/Source/core/loader/EmptyClients.h
index be1ec1f..f6469c8 100644
--- a/third_party/WebKit/Source/core/loader/EmptyClients.h
+++ b/third_party/WebKit/Source/core/loader/EmptyClients.h
@@ -32,6 +32,7 @@
 #include <memory>
 
 #include "core/CoreExport.h"
+#include "core/editing/spellcheck/SpellCheckerClient.h"
 #include "core/frame/ContentSettingsClient.h"
 #include "core/frame/LocalFrameClient.h"
 #include "core/frame/RemoteFrameClient.h"
@@ -39,7 +40,6 @@
 #include "core/page/ContextMenuClient.h"
 #include "core/page/EditorClient.h"
 #include "core/page/Page.h"
-#include "core/page/SpellCheckerClient.h"
 #include "platform/DragImage.h"
 #include "platform/WebFrameScheduler.h"
 #include "platform/geometry/FloatPoint.h"
diff --git a/third_party/WebKit/Source/core/loader/FrameFetchContextTest.cpp b/third_party/WebKit/Source/core/loader/FrameFetchContextTest.cpp
index 1b4fc8e..17d1675 100644
--- a/third_party/WebKit/Source/core/loader/FrameFetchContextTest.cpp
+++ b/third_party/WebKit/Source/core/loader/FrameFetchContextTest.cpp
@@ -292,7 +292,7 @@
     fetch_context->ModifyRequestForCSP(resource_request);
 
     EXPECT_EQ(expected_required_csp,
-              resource_request.HttpHeaderField(HTTPNames::Required_CSP));
+              resource_request.HttpHeaderField(HTTPNames::Sec_Required_CSP));
   }
 
   void SetFrameOwnerBasedOnFrameType(WebURLRequest::FrameType frame_type,
diff --git a/third_party/WebKit/Source/core/loader/FrameLoader.cpp b/third_party/WebKit/Source/core/loader/FrameLoader.cpp
index 8eb7392..3ad3d197 100644
--- a/third_party/WebKit/Source/core/loader/FrameLoader.cpp
+++ b/third_party/WebKit/Source/core/loader/FrameLoader.cpp
@@ -1572,7 +1572,8 @@
   if (RuntimeEnabledFeatures::embedderCSPEnforcementEnabled() &&
       !RequiredCSP().IsEmpty()) {
     DCHECK(ContentSecurityPolicy::IsValidCSPAttr(RequiredCSP().GetString()));
-    resource_request.SetHTTPHeaderField(HTTPNames::Required_CSP, RequiredCSP());
+    resource_request.SetHTTPHeaderField(HTTPNames::Sec_Required_CSP,
+                                        RequiredCSP());
   }
 
   // Tack an 'Upgrade-Insecure-Requests' header to outgoing navigational
diff --git a/third_party/WebKit/Source/core/loader/resource/FontResource.cpp b/third_party/WebKit/Source/core/loader/resource/FontResource.cpp
index cd2eb1ba..dc74069 100644
--- a/third_party/WebKit/Source/core/loader/resource/FontResource.cpp
+++ b/third_party/WebKit/Source/core/loader/resource/FontResource.cpp
@@ -69,7 +69,7 @@
 static void RecordPackageFormatHistogram(FontPackageFormat format) {
   DEFINE_THREAD_SAFE_STATIC_LOCAL(
       EnumerationHistogram, package_format_histogram,
-      new EnumerationHistogram("WebFont.PackageFormat", kPackageFormatEnumMax));
+      ("WebFont.PackageFormat", kPackageFormatEnumMax));
   package_format_histogram.Count(format);
 }
 
diff --git a/third_party/WebKit/Source/core/origin_trials/OriginTrialContext.cpp b/third_party/WebKit/Source/core/origin_trials/OriginTrialContext.cpp
index 36f979bd..8bacc337 100644
--- a/third_party/WebKit/Source/core/origin_trials/OriginTrialContext.cpp
+++ b/third_party/WebKit/Source/core/origin_trials/OriginTrialContext.cpp
@@ -31,9 +31,8 @@
 static EnumerationHistogram& TokenValidationResultHistogram() {
   DEFINE_THREAD_SAFE_STATIC_LOCAL(
       EnumerationHistogram, histogram,
-      new EnumerationHistogram(
-          "OriginTrials.ValidationResult",
-          static_cast<int>(WebOriginTrialTokenStatus::kLast)));
+      ("OriginTrials.ValidationResult",
+       static_cast<int>(WebOriginTrialTokenStatus::kLast)));
   return histogram;
 }
 
diff --git a/third_party/WebKit/Source/core/page/BUILD.gn b/third_party/WebKit/Source/core/page/BUILD.gn
index 8adf61e..791b81393 100644
--- a/third_party/WebKit/Source/core/page/BUILD.gn
+++ b/third_party/WebKit/Source/core/page/BUILD.gn
@@ -60,7 +60,6 @@
     "ScopedPageSuspender.h",
     "SpatialNavigation.cpp",
     "SpatialNavigation.h",
-    "SpellCheckerClient.h",
     "TouchAdjustment.cpp",
     "TouchAdjustment.h",
     "TouchDisambiguation.cpp",
diff --git a/third_party/WebKit/Source/core/style/ComputedStyle.cpp b/third_party/WebKit/Source/core/style/ComputedStyle.cpp
index 3bb53f5..cee3e96 100644
--- a/third_party/WebKit/Source/core/style/ComputedStyle.cpp
+++ b/third_party/WebKit/Source/core/style/ComputedStyle.cpp
@@ -2135,6 +2135,44 @@
   return IsHorizontalWritingMode() ? BorderBottomWidth() : BorderLeftWidth();
 }
 
+EBorderStyle ComputedStyle::BorderBeforeStyle() const {
+  switch (GetWritingMode()) {
+    case WritingMode::kHorizontalTb:
+      return BorderTopStyle();
+    case WritingMode::kVerticalLr:
+      return BorderLeftStyle();
+    case WritingMode::kVerticalRl:
+      return BorderRightStyle();
+  }
+  NOTREACHED();
+  return BorderTopStyle();
+}
+
+EBorderStyle ComputedStyle::BorderAfterStyle() const {
+  switch (GetWritingMode()) {
+    case WritingMode::kHorizontalTb:
+      return BorderBottomStyle();
+    case WritingMode::kVerticalLr:
+      return BorderRightStyle();
+    case WritingMode::kVerticalRl:
+      return BorderLeftStyle();
+  }
+  NOTREACHED();
+  return BorderBottomStyle();
+}
+
+EBorderStyle ComputedStyle::BorderStartStyle() const {
+  if (IsHorizontalWritingMode())
+    return IsLeftToRightDirection() ? BorderLeftStyle() : BorderRightStyle();
+  return IsLeftToRightDirection() ? BorderTopStyle() : BorderBottomStyle();
+}
+
+EBorderStyle ComputedStyle::BorderEndStyle() const {
+  if (IsHorizontalWritingMode())
+    return IsLeftToRightDirection() ? BorderRightStyle() : BorderLeftStyle();
+  return IsLeftToRightDirection() ? BorderBottomStyle() : BorderTopStyle();
+}
+
 void ComputedStyle::SetMarginStart(const Length& margin) {
   if (IsHorizontalWritingMode()) {
     if (IsLeftToRightDirection())
diff --git a/third_party/WebKit/Source/core/style/ComputedStyle.h b/third_party/WebKit/Source/core/style/ComputedStyle.h
index a2e98be..2e37d8a 100644
--- a/third_party/WebKit/Source/core/style/ComputedStyle.h
+++ b/third_party/WebKit/Source/core/style/ComputedStyle.h
@@ -2640,6 +2640,7 @@
   BorderValue BorderAfter() const;
   BorderValue BorderStart() const;
   BorderValue BorderEnd() const;
+
   float BorderAfterWidth() const;
   float BorderBeforeWidth() const;
   float BorderEndWidth() const;
@@ -2647,6 +2648,11 @@
   float BorderOverWidth() const;
   float BorderUnderWidth() const;
 
+  EBorderStyle BorderAfterStyle() const;
+  EBorderStyle BorderBeforeStyle() const;
+  EBorderStyle BorderEndStyle() const;
+  EBorderStyle BorderStartStyle() const;
+
   bool HasBorderFill() const {
     return BorderImage().HasImage() && BorderImage().Fill();
   }
@@ -2667,10 +2673,10 @@
     return false;
   }
   bool HasBorderColorReferencingCurrentColor() const {
-    return (BorderLeft().NonZero() && BorderLeftColor().IsCurrentColor()) ||
-           (BorderRight().NonZero() && BorderRightColor().IsCurrentColor()) ||
-           (BorderTop().NonZero() && BorderTopColor().IsCurrentColor()) ||
-           (BorderBottom().NonZero() && BorderBottomColor().IsCurrentColor());
+    return (BorderLeftNonZero() && BorderLeftColor().IsCurrentColor()) ||
+           (BorderRightNonZero() && BorderRightColor().IsCurrentColor()) ||
+           (BorderTopNonZero() && BorderTopColor().IsCurrentColor()) ||
+           (BorderBottomNonZero() && BorderBottomColor().IsCurrentColor());
   }
 
   bool RadiiEqual(const ComputedStyle& o) const {
@@ -2686,6 +2692,12 @@
            BorderLeftColor() == o.BorderLeftColor() &&
            BorderLeftColorIsCurrentColor() == o.BorderLeftColorIsCurrentColor();
   }
+  bool BorderLeftEquals(const BorderValue& o) const {
+    return BorderLeftWidthInternal().ToFloat() == o.Width() &&
+           BorderLeftStyle() == o.Style() &&
+           BorderLeftColor() == o.GetColor() &&
+           BorderLeftColorIsCurrentColor() == o.ColorIsCurrentColor();
+  }
 
   bool BorderLeftVisuallyEqual(const ComputedStyle& o) const {
     if (BorderLeftStyle() == EBorderStyle::kNone &&
@@ -2704,6 +2716,12 @@
            BorderRightColorIsCurrentColor() ==
                o.BorderRightColorIsCurrentColor();
   }
+  bool BorderRightEquals(const BorderValue& o) const {
+    return BorderRightWidthInternal().ToFloat() == o.Width() &&
+           BorderRightStyle() == o.Style() &&
+           BorderRightColor() == o.GetColor() &&
+           BorderRightColorIsCurrentColor() == o.ColorIsCurrentColor();
+  }
 
   bool BorderRightVisuallyEqual(const ComputedStyle& o) const {
     if (BorderRightStyle() == EBorderStyle::kNone &&
@@ -2731,6 +2749,11 @@
            BorderTopColor() == o.BorderTopColor() &&
            BorderTopColorIsCurrentColor() == o.BorderTopColorIsCurrentColor();
   }
+  bool BorderTopEquals(const BorderValue& o) const {
+    return BorderTopWidthInternal().ToFloat() == o.Width() &&
+           BorderTopStyle() == o.Style() && BorderTopColor() == o.GetColor() &&
+           BorderTopColorIsCurrentColor() == o.ColorIsCurrentColor();
+  }
 
   bool BorderBottomVisuallyEqual(const ComputedStyle& o) const {
     if (BorderBottomStyle() == EBorderStyle::kNone &&
@@ -2749,6 +2772,12 @@
            BorderBottomColorIsCurrentColor() ==
                o.BorderBottomColorIsCurrentColor();
   }
+  bool BorderBottomEquals(const BorderValue& o) const {
+    return BorderBottomWidthInternal().ToFloat() == o.Width() &&
+           BorderBottomStyle() == o.Style() &&
+           BorderBottomColor() == o.GetColor() &&
+           BorderBottomColorIsCurrentColor() == o.ColorIsCurrentColor();
+  }
 
   bool BorderEquals(const ComputedStyle& o) const {
     return BorderLeftEquals(o) && BorderRightEquals(o) && BorderTopEquals(o) &&
@@ -2781,25 +2810,25 @@
     SetBorderTopStyle(EBorderStyle::kNone);
     SetBorderTopWidth(3);
     SetBorderTopColorInternal(0);
-    SetBorderTopColorInternal(true);
+    SetBorderTopColorIsCurrentColor(true);
   }
   void ResetBorderRight() {
     SetBorderRightStyle(EBorderStyle::kNone);
     SetBorderRightWidth(3);
     SetBorderRightColorInternal(0);
-    SetBorderRightColorInternal(true);
+    SetBorderRightColorIsCurrentColor(true);
   }
   void ResetBorderBottom() {
     SetBorderBottomStyle(EBorderStyle::kNone);
     SetBorderBottomWidth(3);
     SetBorderBottomColorInternal(0);
-    SetBorderBottomColorInternal(true);
+    SetBorderBottomColorIsCurrentColor(true);
   }
   void ResetBorderLeft() {
     SetBorderLeftStyle(EBorderStyle::kNone);
     SetBorderLeftWidth(3);
     SetBorderLeftColorInternal(0);
-    SetBorderLeftColorInternal(true);
+    SetBorderLeftColorIsCurrentColor(true);
   }
 
   void SetBorderRadius(const LengthSize& s) {
diff --git a/third_party/WebKit/Source/core/svg/SVGElement.cpp b/third_party/WebKit/Source/core/svg/SVGElement.cpp
index d3bc529..4ff98319 100644
--- a/third_party/WebKit/Source/core/svg/SVGElement.cpp
+++ b/third_party/WebKit/Source/core/svg/SVGElement.cpp
@@ -1178,7 +1178,7 @@
   // This static is atomically initialized to dodge a warning about
   // a race when dumping debug data for a layer.
   DEFINE_THREAD_SAFE_STATIC_LOCAL(HashSet<QualifiedName>, animatable_attributes,
-                                  new HashSet<QualifiedName>({
+                                  ({
                                       SVGNames::amplitudeAttr,
                                       SVGNames::azimuthAttr,
                                       SVGNames::baseFrequencyAttr,
diff --git a/third_party/WebKit/Source/core/timing/MemoryInfo.cpp b/third_party/WebKit/Source/core/timing/MemoryInfo.cpp
index 0d6c8780..4b7d9a8d 100644
--- a/third_party/WebKit/Source/core/timing/MemoryInfo.cpp
+++ b/third_party/WebKit/Source/core/timing/MemoryInfo.cpp
@@ -68,8 +68,7 @@
 
   static HeapSizeCache& ForCurrentThread() {
     DEFINE_THREAD_SAFE_STATIC_LOCAL(ThreadSpecific<HeapSizeCache>,
-                                    heap_size_cache,
-                                    new ThreadSpecific<HeapSizeCache>);
+                                    heap_size_cache, ());
     return *heap_size_cache;
   }
 
diff --git a/third_party/WebKit/Source/core/timing/PerformanceUserTiming.cpp b/third_party/WebKit/Source/core/timing/PerformanceUserTiming.cpp
index 64341631bc..ff0fba5d 100644
--- a/third_party/WebKit/Source/core/timing/PerformanceUserTiming.cpp
+++ b/third_party/WebKit/Source/core/timing/PerformanceUserTiming.cpp
@@ -41,38 +41,34 @@
 
 using RestrictedKeyMap = HashMap<String, NavigationTimingFunction>;
 
-RestrictedKeyMap* CreateRestrictedKeyMap() {
-  RestrictedKeyMap* map = new RestrictedKeyMap();
-  map->insert("navigationStart", &PerformanceTiming::navigationStart);
-  map->insert("unloadEventStart", &PerformanceTiming::unloadEventStart);
-  map->insert("unloadEventEnd", &PerformanceTiming::unloadEventEnd);
-  map->insert("redirectStart", &PerformanceTiming::redirectStart);
-  map->insert("redirectEnd", &PerformanceTiming::redirectEnd);
-  map->insert("fetchStart", &PerformanceTiming::fetchStart);
-  map->insert("domainLookupStart", &PerformanceTiming::domainLookupStart);
-  map->insert("domainLookupEnd", &PerformanceTiming::domainLookupEnd);
-  map->insert("connectStart", &PerformanceTiming::connectStart);
-  map->insert("connectEnd", &PerformanceTiming::connectEnd);
-  map->insert("secureConnectionStart",
-              &PerformanceTiming::secureConnectionStart);
-  map->insert("requestStart", &PerformanceTiming::requestStart);
-  map->insert("responseStart", &PerformanceTiming::responseStart);
-  map->insert("responseEnd", &PerformanceTiming::responseEnd);
-  map->insert("domLoading", &PerformanceTiming::domLoading);
-  map->insert("domInteractive", &PerformanceTiming::domInteractive);
-  map->insert("domContentLoadedEventStart",
-              &PerformanceTiming::domContentLoadedEventStart);
-  map->insert("domContentLoadedEventEnd",
-              &PerformanceTiming::domContentLoadedEventEnd);
-  map->insert("domComplete", &PerformanceTiming::domComplete);
-  map->insert("loadEventStart", &PerformanceTiming::loadEventStart);
-  map->insert("loadEventEnd", &PerformanceTiming::loadEventEnd);
-  return map;
-}
-
 const RestrictedKeyMap& GetRestrictedKeyMap() {
-  DEFINE_THREAD_SAFE_STATIC_LOCAL(RestrictedKeyMap, map,
-                                  CreateRestrictedKeyMap());
+  DEFINE_THREAD_SAFE_STATIC_LOCAL(
+      RestrictedKeyMap, map,
+      ({
+          {"navigationStart", &PerformanceTiming::navigationStart},
+          {"unloadEventStart", &PerformanceTiming::unloadEventStart},
+          {"unloadEventEnd", &PerformanceTiming::unloadEventEnd},
+          {"redirectStart", &PerformanceTiming::redirectStart},
+          {"redirectEnd", &PerformanceTiming::redirectEnd},
+          {"fetchStart", &PerformanceTiming::fetchStart},
+          {"domainLookupStart", &PerformanceTiming::domainLookupStart},
+          {"domainLookupEnd", &PerformanceTiming::domainLookupEnd},
+          {"connectStart", &PerformanceTiming::connectStart},
+          {"connectEnd", &PerformanceTiming::connectEnd},
+          {"secureConnectionStart", &PerformanceTiming::secureConnectionStart},
+          {"requestStart", &PerformanceTiming::requestStart},
+          {"responseStart", &PerformanceTiming::responseStart},
+          {"responseEnd", &PerformanceTiming::responseEnd},
+          {"domLoading", &PerformanceTiming::domLoading},
+          {"domInteractive", &PerformanceTiming::domInteractive},
+          {"domContentLoadedEventStart",
+           &PerformanceTiming::domContentLoadedEventStart},
+          {"domContentLoadedEventEnd",
+           &PerformanceTiming::domContentLoadedEventEnd},
+          {"domComplete", &PerformanceTiming::domComplete},
+          {"loadEventStart", &PerformanceTiming::loadEventStart},
+          {"loadEventEnd", &PerformanceTiming::loadEventEnd},
+      }));
   return map;
 }
 
@@ -118,9 +114,9 @@
   double start_time = performance_->now();
   PerformanceEntry* entry = PerformanceMark::Create(mark_name, start_time);
   InsertPerformanceEntry(marks_map_, *entry);
-  DEFINE_THREAD_SAFE_STATIC_LOCAL(
-      CustomCountHistogram, user_timing_mark_histogram,
-      new CustomCountHistogram("PLT.UserTiming_Mark", 0, 600000, 100));
+  DEFINE_THREAD_SAFE_STATIC_LOCAL(CustomCountHistogram,
+                                  user_timing_mark_histogram,
+                                  ("PLT.UserTiming_Mark", 0, 600000, 100));
   user_timing_mark_histogram.Count(static_cast<int>(start_time));
   return entry;
 }
@@ -198,8 +194,7 @@
   if (end_time >= start_time) {
     DEFINE_THREAD_SAFE_STATIC_LOCAL(
         CustomCountHistogram, measure_duration_histogram,
-        new CustomCountHistogram("PLT.UserTiming_MeasureDuration", 0, 600000,
-                                 100));
+        ("PLT.UserTiming_MeasureDuration", 0, 600000, 100));
     measure_duration_histogram.Count(static_cast<int>(end_time - start_time));
   }
   return entry;
diff --git a/third_party/WebKit/Source/core/workers/WorkerBackingThread.cpp b/third_party/WebKit/Source/core/workers/WorkerBackingThread.cpp
index d2709fe..d78c45bd 100644
--- a/third_party/WebKit/Source/core/workers/WorkerBackingThread.cpp
+++ b/third_party/WebKit/Source/core/workers/WorkerBackingThread.cpp
@@ -21,7 +21,7 @@
 namespace blink {
 
 static Mutex& IsolatesMutex() {
-  DEFINE_THREAD_SAFE_STATIC_LOCAL(Mutex, mutex, new Mutex);
+  DEFINE_THREAD_SAFE_STATIC_LOCAL(Mutex, mutex, ());
   return mutex;
 }
 
diff --git a/third_party/WebKit/Source/core/workers/WorkerThread.cpp b/third_party/WebKit/Source/core/workers/WorkerThread.cpp
index d778af6b..2a16f04 100644
--- a/third_party/WebKit/Source/core/workers/WorkerThread.cpp
+++ b/third_party/WebKit/Source/core/workers/WorkerThread.cpp
@@ -67,7 +67,7 @@
 const long long kForcibleTerminationDelayInMs = 2000;  // 2 secs
 
 static Mutex& ThreadSetMutex() {
-  DEFINE_THREAD_SAFE_STATIC_LOCAL(Mutex, mutex, new Mutex);
+  DEFINE_THREAD_SAFE_STATIC_LOCAL(Mutex, mutex, ());
   return mutex;
 }
 
@@ -102,8 +102,7 @@
   DCHECK_NE(ExitCode::kNotTerminated, exit_code_);
   DEFINE_THREAD_SAFE_STATIC_LOCAL(
       EnumerationHistogram, exit_code_histogram,
-      new EnumerationHistogram("WorkerThread.ExitCode",
-                               static_cast<int>(ExitCode::kLastEnum)));
+      ("WorkerThread.ExitCode", static_cast<int>(ExitCode::kLastEnum)));
   exit_code_histogram.Count(static_cast<int>(exit_code_));
 }
 
@@ -583,8 +582,7 @@
   {
     DEFINE_THREAD_SAFE_STATIC_LOCAL(
         CustomCountHistogram, scoped_us_counter,
-        new CustomCountHistogram("WorkerThread.DebuggerTask.Time", 0, 10000000,
-                                 50));
+        ("WorkerThread.DebuggerTask.Time", 0, 10000000, 50));
     ScopedUsHistogramTimer timer(scoped_us_counter);
     (*task)();
   }
diff --git a/third_party/WebKit/Source/core/workers/WorkletThreadHolder.h b/third_party/WebKit/Source/core/workers/WorkletThreadHolder.h
index badd0e2..8ae64a32 100644
--- a/third_party/WebKit/Source/core/workers/WorkletThreadHolder.h
+++ b/third_party/WebKit/Source/core/workers/WorkletThreadHolder.h
@@ -76,7 +76,7 @@
   ~WorkletThreadHolder() {}
 
   static Mutex& HolderInstanceMutex() {
-    DEFINE_THREAD_SAFE_STATIC_LOCAL(Mutex, holder_mutex, new Mutex);
+    DEFINE_THREAD_SAFE_STATIC_LOCAL(Mutex, holder_mutex, ());
     return holder_mutex;
   }
 
diff --git a/third_party/WebKit/Source/core/xmlhttprequest/XMLHttpRequest.cpp b/third_party/WebKit/Source/core/xmlhttprequest/XMLHttpRequest.cpp
index 00cceac..cab8dce 100644
--- a/third_party/WebKit/Source/core/xmlhttprequest/XMLHttpRequest.cpp
+++ b/third_party/WebKit/Source/core/xmlhttprequest/XMLHttpRequest.cpp
@@ -1364,9 +1364,8 @@
 
   DEFINE_THREAD_SAFE_STATIC_LOCAL(
       EnumerationHistogram, header_value_category_histogram,
-      new EnumerationHistogram(
-          "Blink.XHR.setRequestHeader.HeaderValueCategoryInRFC7230",
-          kHeaderValueCategoryByRFC7230End));
+      ("Blink.XHR.setRequestHeader.HeaderValueCategoryInRFC7230",
+       kHeaderValueCategoryByRFC7230End));
   header_value_category_histogram.Count(header_value_category);
 }
 
diff --git a/third_party/WebKit/Source/modules/bluetooth/BluetoothUUID.cpp b/third_party/WebKit/Source/modules/bluetooth/BluetoothUUID.cpp
index 497b1c1a5..bd8d00bf 100644
--- a/third_party/WebKit/Source/modules/bluetooth/BluetoothUUID.cpp
+++ b/third_party/WebKit/Source/modules/bluetooth/BluetoothUUID.cpp
@@ -21,285 +21,278 @@
 enum class GATTAttribute { kService, kCharacteristic, kDescriptor };
 
 NameToAssignedNumberMap* GetAssignedNumberToServiceNameMap() {
-  DEFINE_THREAD_SAFE_STATIC_LOCAL(NameToAssignedNumberMap, services_map, []() {
-    // https://www.bluetooth.com/specifications/gatt/services
-    NameToAssignedNumberMap* services = new NameToAssignedNumberMap();
-    services->insert("generic_access", 0x1800);
-    services->insert("generic_attribute", 0x1801);
-    services->insert("immediate_alert", 0x1802);
-    services->insert("link_loss", 0x1803);
-    services->insert("tx_power", 0x1804);
-    services->insert("current_time", 0x1805);
-    services->insert("reference_time_update", 0x1806);
-    services->insert("next_dst_change", 0x1807);
-    services->insert("glucose", 0x1808);
-    services->insert("health_thermometer", 0x1809);
-    services->insert("device_information", 0x180A);
-    services->insert("heart_rate", 0x180D);
-    services->insert("phone_alert_status", 0x180E);
-    services->insert("battery_service", 0x180F);
-    services->insert("blood_pressure", 0x1810);
-    services->insert("alert_notification", 0x1811);
-    services->insert("human_interface_device", 0x1812);
-    services->insert("scan_parameters", 0x1813);
-    services->insert("running_speed_and_cadence", 0x1814);
-    services->insert("automation_io", 0x1815);
-    services->insert("cycling_speed_and_cadence", 0x1816);
-    services->insert("cycling_power", 0x1818);
-    services->insert("location_and_navigation", 0x1819);
-    services->insert("environmental_sensing", 0x181A);
-    services->insert("body_composition", 0x181B);
-    services->insert("user_data", 0x181C);
-    services->insert("weight_scale", 0x181D);
-    services->insert("bond_management", 0x181E);
-    services->insert("continuous_glucose_monitoring", 0x181F);
-    services->insert("fitness_machine", 0x1826);
-    services->insert("internet_protocol_support", 0x1820);
-    services->insert("indoor_positioning", 0x1821);
-    services->insert("pulse_oximeter", 0x1822);
-    services->insert("http_proxy", 0x1823);
-    services->insert("transport_discovery", 0x1824);
-    services->insert("object_transfer", 0x1825);
-    return services;
-  }());
+  DEFINE_THREAD_SAFE_STATIC_LOCAL(
+      NameToAssignedNumberMap, services_map,
+      ({
+          // https://www.bluetooth.com/specifications/gatt/services
+          {"generic_access", 0x1800},
+          {"generic_attribute", 0x1801},
+          {"immediate_alert", 0x1802},
+          {"link_loss", 0x1803},
+          {"tx_power", 0x1804},
+          {"current_time", 0x1805},
+          {"reference_time_update", 0x1806},
+          {"next_dst_change", 0x1807},
+          {"glucose", 0x1808},
+          {"health_thermometer", 0x1809},
+          {"device_information", 0x180A},
+          {"heart_rate", 0x180D},
+          {"phone_alert_status", 0x180E},
+          {"battery_service", 0x180F},
+          {"blood_pressure", 0x1810},
+          {"alert_notification", 0x1811},
+          {"human_interface_device", 0x1812},
+          {"scan_parameters", 0x1813},
+          {"running_speed_and_cadence", 0x1814},
+          {"automation_io", 0x1815},
+          {"cycling_speed_and_cadence", 0x1816},
+          {"cycling_power", 0x1818},
+          {"location_and_navigation", 0x1819},
+          {"environmental_sensing", 0x181A},
+          {"body_composition", 0x181B},
+          {"user_data", 0x181C},
+          {"weight_scale", 0x181D},
+          {"bond_management", 0x181E},
+          {"continuous_glucose_monitoring", 0x181F},
+          {"fitness_machine", 0x1826},
+          {"internet_protocol_support", 0x1820},
+          {"indoor_positioning", 0x1821},
+          {"pulse_oximeter", 0x1822},
+          {"http_proxy", 0x1823},
+          {"transport_discovery", 0x1824},
+          {"object_transfer", 0x1825},
+      }));
 
   return &services_map;
 }
 
 NameToAssignedNumberMap* GetAssignedNumberForCharacteristicNameMap() {
   DEFINE_THREAD_SAFE_STATIC_LOCAL(
-      NameToAssignedNumberMap, characteristics_map, []() {
-        // https://www.bluetooth.com/specifications/gatt/characteristics
-        NameToAssignedNumberMap* characteristics =
-            new NameToAssignedNumberMap();
-        characteristics->insert("gap.device_name", 0x2A00);
-        characteristics->insert("gap.appearance", 0x2A01);
-        characteristics->insert("gap.peripheral_privacy_flag", 0x2A02);
-        characteristics->insert("gap.reconnection_address", 0x2A03);
-        characteristics->insert(
-            "gap.peripheral_preferred_connection_parameters", 0x2A04);
-        characteristics->insert("gatt.service_changed", 0x2A05);
-        characteristics->insert("alert_level", 0x2A06);
-        characteristics->insert("tx_power_level", 0x2A07);
-        characteristics->insert("date_time", 0x2A08);
-        characteristics->insert("day_of_week", 0x2A09);
-        characteristics->insert("day_date_time", 0x2A0A);
-        characteristics->insert("exact_time_256", 0x2A0C);
-        characteristics->insert("dst_offset", 0x2A0D);
-        characteristics->insert("time_zone", 0x2A0E);
-        characteristics->insert("local_time_information", 0x2A0F);
-        characteristics->insert("time_with_dst", 0x2A11);
-        characteristics->insert("time_accuracy", 0x2A12);
-        characteristics->insert("time_source", 0x2A13);
-        characteristics->insert("reference_time_information", 0x2A14);
-        characteristics->insert("time_update_control_point", 0x2A16);
-        characteristics->insert("time_update_state", 0x2A17);
-        characteristics->insert("glucose_measurement", 0x2A18);
-        characteristics->insert("battery_level", 0x2A19);
-        characteristics->insert("temperature_measurement", 0x2A1C);
-        characteristics->insert("temperature_type", 0x2A1D);
-        characteristics->insert("intermediate_temperature", 0x2A1E);
-        characteristics->insert("measurement_interval", 0x2A21);
-        characteristics->insert("boot_keyboard_input_report", 0x2A22);
-        characteristics->insert("system_id", 0x2A23);
-        characteristics->insert("model_number_string", 0x2A24);
-        characteristics->insert("serial_number_string", 0x2A25);
-        characteristics->insert("firmware_revision_string", 0x2A26);
-        characteristics->insert("hardware_revision_string", 0x2A27);
-        characteristics->insert("software_revision_string", 0x2A28);
-        characteristics->insert("manufacturer_name_string", 0x2A29);
-        characteristics->insert(
-            "ieee_11073-20601_regulatory_certification_data_list", 0x2A2A);
-        characteristics->insert("current_time", 0x2A2B);
-        characteristics->insert("magnetic_declination", 0x2A2C);
-        characteristics->insert("scan_refresh", 0x2A31);
-        characteristics->insert("boot_keyboard_output_report", 0x2A32);
-        characteristics->insert("boot_mouse_input_report", 0x2A33);
-        characteristics->insert("glucose_measurement_context", 0x2A34);
-        characteristics->insert("blood_pressure_measurement", 0x2A35);
-        characteristics->insert("intermediate_cuff_pressure", 0x2A36);
-        characteristics->insert("heart_rate_measurement", 0x2A37);
-        characteristics->insert("body_sensor_location", 0x2A38);
-        characteristics->insert("heart_rate_control_point", 0x2A39);
-        characteristics->insert("alert_status", 0x2A3F);
-        characteristics->insert("ringer_control_point", 0x2A40);
-        characteristics->insert("ringer_setting", 0x2A41);
-        characteristics->insert("alert_category_id_bit_mask", 0x2A42);
-        characteristics->insert("alert_category_id", 0x2A43);
-        characteristics->insert("alert_notification_control_point", 0x2A44);
-        characteristics->insert("unread_alert_status", 0x2A45);
-        characteristics->insert("new_alert", 0x2A46);
-        characteristics->insert("supported_new_alert_category", 0x2A47);
-        characteristics->insert("supported_unread_alert_category", 0x2A48);
-        characteristics->insert("blood_pressure_feature", 0x2A49);
-        characteristics->insert("hid_information", 0x2A4A);
-        characteristics->insert("report_map", 0x2A4B);
-        characteristics->insert("hid_control_point", 0x2A4C);
-        characteristics->insert("report", 0x2A4D);
-        characteristics->insert("protocol_mode", 0x2A4E);
-        characteristics->insert("scan_interval_window", 0x2A4F);
-        characteristics->insert("pnp_id", 0x2A50);
-        characteristics->insert("glucose_feature", 0x2A51);
-        characteristics->insert("record_access_control_point", 0x2A52);
-        characteristics->insert("rsc_measurement", 0x2A53);
-        characteristics->insert("rsc_feature", 0x2A54);
-        characteristics->insert("sc_control_point", 0x2A55);
-        characteristics->insert("digital", 0x2A56);
-        characteristics->insert("analog", 0x2A58);
-        characteristics->insert("aggregate", 0x2A5A);
-        characteristics->insert("csc_measurement", 0x2A5B);
-        characteristics->insert("csc_feature", 0x2A5C);
-        characteristics->insert("sensor_location", 0x2A5D);
-        characteristics->insert("plx_spot_check_measurement", 0x2A5E);
-        characteristics->insert("plx_continuous_measurement", 0x2A5F);
-        characteristics->insert("plx_features", 0x2A60);
-        characteristics->insert("cycling_power_measurement", 0x2A63);
-        characteristics->insert("cycling_power_vector", 0x2A64);
-        characteristics->insert("cycling_power_feature", 0x2A65);
-        characteristics->insert("cycling_power_control_point", 0x2A66);
-        characteristics->insert("location_and_speed", 0x2A67);
-        characteristics->insert("navigation", 0x2A68);
-        characteristics->insert("position_quality", 0x2A69);
-        characteristics->insert("ln_feature", 0x2A6A);
-        characteristics->insert("ln_control_point", 0x2A6B);
-        characteristics->insert("elevation", 0x2A6C);
-        characteristics->insert("pressure", 0x2A6D);
-        characteristics->insert("temperature", 0x2A6E);
-        characteristics->insert("humidity", 0x2A6F);
-        characteristics->insert("true_wind_speed", 0x2A70);
-        characteristics->insert("true_wind_direction", 0x2A71);
-        characteristics->insert("apparent_wind_speed", 0x2A72);
-        characteristics->insert("apparent_wind_direction", 0x2A73);
-        characteristics->insert("gust_factor", 0x2A74);
-        characteristics->insert("pollen_concentration", 0x2A75);
-        characteristics->insert("uv_index", 0x2A76);
-        characteristics->insert("irradiance", 0x2A77);
-        characteristics->insert("rainfall", 0x2A78);
-        characteristics->insert("wind_chill", 0x2A79);
-        characteristics->insert("heat_index", 0x2A7A);
-        characteristics->insert("dew_point", 0x2A7B);
-        characteristics->insert("descriptor_value_changed", 0x2A7D);
-        characteristics->insert("aerobic_heart_rate_lower_limit", 0x2A7E);
-        characteristics->insert("aerobic_threshold", 0x2A7F);
-        characteristics->insert("age", 0x2A80);
-        characteristics->insert("anaerobic_heart_rate_lower_limit", 0x2A81);
-        characteristics->insert("anaerobic_heart_rate_upper_limit", 0x2A82);
-        characteristics->insert("anaerobic_threshold", 0x2A83);
-        characteristics->insert("aerobic_heart_rate_upper_limit", 0x2A84);
-        characteristics->insert("date_of_birth", 0x2A85);
-        characteristics->insert("date_of_threshold_assessment", 0x2A86);
-        characteristics->insert("email_address", 0x2A87);
-        characteristics->insert("fat_burn_heart_rate_lower_limit", 0x2A88);
-        characteristics->insert("fat_burn_heart_rate_upper_limit", 0x2A89);
-        characteristics->insert("first_name", 0x2A8A);
-        characteristics->insert("five_zone_heart_rate_limits", 0x2A8B);
-        characteristics->insert("gender", 0x2A8C);
-        characteristics->insert("heart_rate_max", 0x2A8D);
-        characteristics->insert("height", 0x2A8E);
-        characteristics->insert("hip_circumference", 0x2A8F);
-        characteristics->insert("last_name", 0x2A90);
-        characteristics->insert("maximum_recommended_heart_rate", 0x2A91);
-        characteristics->insert("resting_heart_rate", 0x2A92);
-        characteristics->insert(
-            "sport_type_for_aerobic_and_anaerobic_thresholds", 0x2A93);
-        characteristics->insert("three_zone_heart_rate_limits", 0x2A94);
-        characteristics->insert("two_zone_heart_rate_limit", 0x2A95);
-        characteristics->insert("vo2_max", 0x2A96);
-        characteristics->insert("waist_circumference", 0x2A97);
-        characteristics->insert("weight", 0x2A98);
-        characteristics->insert("database_change_increment", 0x2A99);
-        characteristics->insert("user_index", 0x2A9A);
-        characteristics->insert("body_composition_feature", 0x2A9B);
-        characteristics->insert("body_composition_measurement", 0x2A9C);
-        characteristics->insert("weight_measurement", 0x2A9D);
-        characteristics->insert("weight_scale_feature", 0x2A9E);
-        characteristics->insert("user_control_point", 0x2A9F);
-        characteristics->insert("magnetic_flux_density_2D", 0x2AA0);
-        characteristics->insert("magnetic_flux_density_3D", 0x2AA1);
-        characteristics->insert("language", 0x2AA2);
-        characteristics->insert("barometric_pressure_trend", 0x2AA3);
-        characteristics->insert("bond_management_control_point", 0x2AA4);
-        characteristics->insert("bond_management_feature", 0x2AA5);
-        characteristics->insert("gap.central_address_resolution_support",
-                                0x2AA6);
-        characteristics->insert("cgm_measurement", 0x2AA7);
-        characteristics->insert("cgm_feature", 0x2AA8);
-        characteristics->insert("cgm_status", 0x2AA9);
-        characteristics->insert("cgm_session_start_time", 0x2AAA);
-        characteristics->insert("cgm_session_run_time", 0x2AAB);
-        characteristics->insert("cgm_specific_ops_control_point", 0x2AAC);
-        characteristics->insert("indoor_positioning_configuration", 0x2AAD);
-        characteristics->insert("latitude", 0x2AAE);
-        characteristics->insert("longitude", 0x2AAF);
-        characteristics->insert("local_north_coordinate", 0x2AB0);
-        characteristics->insert("local_east_coordinate.xml", 0x2AB1);
-        characteristics->insert("floor_number", 0x2AB2);
-        characteristics->insert("altitude", 0x2AB3);
-        characteristics->insert("uncertainty", 0x2AB4);
-        characteristics->insert("location_name", 0x2AB5);
-        characteristics->insert("uri", 0x2AB6);
-        characteristics->insert("http_headers", 0x2AB7);
-        characteristics->insert("http_status_code", 0x2AB8);
-        characteristics->insert("http_entity_body", 0x2AB9);
-        characteristics->insert("http_control_point", 0x2ABA);
-        characteristics->insert("https_security", 0x2ABB);
-        characteristics->insert("tds_control_point", 0x2ABC);
-        characteristics->insert("ots_feature", 0x2ABD);
-        characteristics->insert("object_name", 0x2ABE);
-        characteristics->insert("object_type", 0x2ABF);
-        characteristics->insert("object_size", 0x2AC0);
-        characteristics->insert("object_first_created", 0x2AC1);
-        characteristics->insert("object_last_modified", 0x2AC2);
-        characteristics->insert("object_id", 0x2AC3);
-        characteristics->insert("object_properties", 0x2AC4);
-        characteristics->insert("object_action_control_point", 0x2AC5);
-        characteristics->insert("object_list_control_point", 0x2AC6);
-        characteristics->insert("object_list_filter", 0x2AC7);
-        characteristics->insert("object_changed", 0x2AC8);
-        characteristics->insert("resolvable_private_address_only", 0x2AC9);
-        characteristics->insert("fitness_machine_feature", 0x2ACC);
-        characteristics->insert("treadmill_data", 0x2ACD);
-        characteristics->insert("cross_trainer_data", 0x2ACE);
-        characteristics->insert("step_climber_data", 0x2ACF);
-        characteristics->insert("stair_climber_data", 0x2AD0);
-        characteristics->insert("rower_data", 0x2AD1);
-        characteristics->insert("indoor_bike_data", 0x2AD2);
-        characteristics->insert("training_status", 0x2AD3);
-        characteristics->insert("supported_speed_range", 0x2AD4);
-        characteristics->insert("supported_inclination_range", 0x2AD5);
-        characteristics->insert("supported_resistance_level_range", 0x2AD6);
-        characteristics->insert("supported_heart_rate_range", 0x2AD7);
-        characteristics->insert("supported_power_range", 0x2AD8);
-        characteristics->insert("fitness_machine_control_point", 0x2AD9);
-        characteristics->insert("fitness_machine_status", 0x2ADA);
-        return characteristics;
-      }());
+      NameToAssignedNumberMap, characteristics_map,
+      ({
+          // https://www.bluetooth.com/specifications/gatt/characteristics
+          {"gap.device_name", 0x2A00},
+          {"gap.appearance", 0x2A01},
+          {"gap.peripheral_privacy_flag", 0x2A02},
+          {"gap.reconnection_address", 0x2A03},
+          {"gap.peripheral_preferred_connection_parameters", 0x2A04},
+          {"gatt.service_changed", 0x2A05},
+          {"alert_level", 0x2A06},
+          {"tx_power_level", 0x2A07},
+          {"date_time", 0x2A08},
+          {"day_of_week", 0x2A09},
+          {"day_date_time", 0x2A0A},
+          {"exact_time_256", 0x2A0C},
+          {"dst_offset", 0x2A0D},
+          {"time_zone", 0x2A0E},
+          {"local_time_information", 0x2A0F},
+          {"time_with_dst", 0x2A11},
+          {"time_accuracy", 0x2A12},
+          {"time_source", 0x2A13},
+          {"reference_time_information", 0x2A14},
+          {"time_update_control_point", 0x2A16},
+          {"time_update_state", 0x2A17},
+          {"glucose_measurement", 0x2A18},
+          {"battery_level", 0x2A19},
+          {"temperature_measurement", 0x2A1C},
+          {"temperature_type", 0x2A1D},
+          {"intermediate_temperature", 0x2A1E},
+          {"measurement_interval", 0x2A21},
+          {"boot_keyboard_input_report", 0x2A22},
+          {"system_id", 0x2A23},
+          {"model_number_string", 0x2A24},
+          {"serial_number_string", 0x2A25},
+          {"firmware_revision_string", 0x2A26},
+          {"hardware_revision_string", 0x2A27},
+          {"software_revision_string", 0x2A28},
+          {"manufacturer_name_string", 0x2A29},
+          {"ieee_11073-20601_regulatory_certification_data_list", 0x2A2A},
+          {"current_time", 0x2A2B},
+          {"magnetic_declination", 0x2A2C},
+          {"scan_refresh", 0x2A31},
+          {"boot_keyboard_output_report", 0x2A32},
+          {"boot_mouse_input_report", 0x2A33},
+          {"glucose_measurement_context", 0x2A34},
+          {"blood_pressure_measurement", 0x2A35},
+          {"intermediate_cuff_pressure", 0x2A36},
+          {"heart_rate_measurement", 0x2A37},
+          {"body_sensor_location", 0x2A38},
+          {"heart_rate_control_point", 0x2A39},
+          {"alert_status", 0x2A3F},
+          {"ringer_control_point", 0x2A40},
+          {"ringer_setting", 0x2A41},
+          {"alert_category_id_bit_mask", 0x2A42},
+          {"alert_category_id", 0x2A43},
+          {"alert_notification_control_point", 0x2A44},
+          {"unread_alert_status", 0x2A45},
+          {"new_alert", 0x2A46},
+          {"supported_new_alert_category", 0x2A47},
+          {"supported_unread_alert_category", 0x2A48},
+          {"blood_pressure_feature", 0x2A49},
+          {"hid_information", 0x2A4A},
+          {"report_map", 0x2A4B},
+          {"hid_control_point", 0x2A4C},
+          {"report", 0x2A4D},
+          {"protocol_mode", 0x2A4E},
+          {"scan_interval_window", 0x2A4F},
+          {"pnp_id", 0x2A50},
+          {"glucose_feature", 0x2A51},
+          {"record_access_control_point", 0x2A52},
+          {"rsc_measurement", 0x2A53},
+          {"rsc_feature", 0x2A54},
+          {"sc_control_point", 0x2A55},
+          {"digital", 0x2A56},
+          {"analog", 0x2A58},
+          {"aggregate", 0x2A5A},
+          {"csc_measurement", 0x2A5B},
+          {"csc_feature", 0x2A5C},
+          {"sensor_location", 0x2A5D},
+          {"plx_spot_check_measurement", 0x2A5E},
+          {"plx_continuous_measurement", 0x2A5F},
+          {"plx_features", 0x2A60},
+          {"cycling_power_measurement", 0x2A63},
+          {"cycling_power_vector", 0x2A64},
+          {"cycling_power_feature", 0x2A65},
+          {"cycling_power_control_point", 0x2A66},
+          {"location_and_speed", 0x2A67},
+          {"navigation", 0x2A68},
+          {"position_quality", 0x2A69},
+          {"ln_feature", 0x2A6A},
+          {"ln_control_point", 0x2A6B},
+          {"elevation", 0x2A6C},
+          {"pressure", 0x2A6D},
+          {"temperature", 0x2A6E},
+          {"humidity", 0x2A6F},
+          {"true_wind_speed", 0x2A70},
+          {"true_wind_direction", 0x2A71},
+          {"apparent_wind_speed", 0x2A72},
+          {"apparent_wind_direction", 0x2A73},
+          {"gust_factor", 0x2A74},
+          {"pollen_concentration", 0x2A75},
+          {"uv_index", 0x2A76},
+          {"irradiance", 0x2A77},
+          {"rainfall", 0x2A78},
+          {"wind_chill", 0x2A79},
+          {"heat_index", 0x2A7A},
+          {"dew_point", 0x2A7B},
+          {"descriptor_value_changed", 0x2A7D},
+          {"aerobic_heart_rate_lower_limit", 0x2A7E},
+          {"aerobic_threshold", 0x2A7F},
+          {"age", 0x2A80},
+          {"anaerobic_heart_rate_lower_limit", 0x2A81},
+          {"anaerobic_heart_rate_upper_limit", 0x2A82},
+          {"anaerobic_threshold", 0x2A83},
+          {"aerobic_heart_rate_upper_limit", 0x2A84},
+          {"date_of_birth", 0x2A85},
+          {"date_of_threshold_assessment", 0x2A86},
+          {"email_address", 0x2A87},
+          {"fat_burn_heart_rate_lower_limit", 0x2A88},
+          {"fat_burn_heart_rate_upper_limit", 0x2A89},
+          {"first_name", 0x2A8A},
+          {"five_zone_heart_rate_limits", 0x2A8B},
+          {"gender", 0x2A8C},
+          {"heart_rate_max", 0x2A8D},
+          {"height", 0x2A8E},
+          {"hip_circumference", 0x2A8F},
+          {"last_name", 0x2A90},
+          {"maximum_recommended_heart_rate", 0x2A91},
+          {"resting_heart_rate", 0x2A92},
+          {"sport_type_for_aerobic_and_anaerobic_thresholds", 0x2A93},
+          {"three_zone_heart_rate_limits", 0x2A94},
+          {"two_zone_heart_rate_limit", 0x2A95},
+          {"vo2_max", 0x2A96},
+          {"waist_circumference", 0x2A97},
+          {"weight", 0x2A98},
+          {"database_change_increment", 0x2A99},
+          {"user_index", 0x2A9A},
+          {"body_composition_feature", 0x2A9B},
+          {"body_composition_measurement", 0x2A9C},
+          {"weight_measurement", 0x2A9D},
+          {"weight_scale_feature", 0x2A9E},
+          {"user_control_point", 0x2A9F},
+          {"magnetic_flux_density_2D", 0x2AA0},
+          {"magnetic_flux_density_3D", 0x2AA1},
+          {"language", 0x2AA2},
+          {"barometric_pressure_trend", 0x2AA3},
+          {"bond_management_control_point", 0x2AA4},
+          {"bond_management_feature", 0x2AA5},
+          {"gap.central_address_resolution_support", 0x2AA6},
+          {"cgm_measurement", 0x2AA7},
+          {"cgm_feature", 0x2AA8},
+          {"cgm_status", 0x2AA9},
+          {"cgm_session_start_time", 0x2AAA},
+          {"cgm_session_run_time", 0x2AAB},
+          {"cgm_specific_ops_control_point", 0x2AAC},
+          {"indoor_positioning_configuration", 0x2AAD},
+          {"latitude", 0x2AAE},
+          {"longitude", 0x2AAF},
+          {"local_north_coordinate", 0x2AB0},
+          {"local_east_coordinate.xml", 0x2AB1},
+          {"floor_number", 0x2AB2},
+          {"altitude", 0x2AB3},
+          {"uncertainty", 0x2AB4},
+          {"location_name", 0x2AB5},
+          {"uri", 0x2AB6},
+          {"http_headers", 0x2AB7},
+          {"http_status_code", 0x2AB8},
+          {"http_entity_body", 0x2AB9},
+          {"http_control_point", 0x2ABA},
+          {"https_security", 0x2ABB},
+          {"tds_control_point", 0x2ABC},
+          {"ots_feature", 0x2ABD},
+          {"object_name", 0x2ABE},
+          {"object_type", 0x2ABF},
+          {"object_size", 0x2AC0},
+          {"object_first_created", 0x2AC1},
+          {"object_last_modified", 0x2AC2},
+          {"object_id", 0x2AC3},
+          {"object_properties", 0x2AC4},
+          {"object_action_control_point", 0x2AC5},
+          {"object_list_control_point", 0x2AC6},
+          {"object_list_filter", 0x2AC7},
+          {"object_changed", 0x2AC8},
+          {"resolvable_private_address_only", 0x2AC9},
+          {"fitness_machine_feature", 0x2ACC},
+          {"treadmill_data", 0x2ACD},
+          {"cross_trainer_data", 0x2ACE},
+          {"step_climber_data", 0x2ACF},
+          {"stair_climber_data", 0x2AD0},
+          {"rower_data", 0x2AD1},
+          {"indoor_bike_data", 0x2AD2},
+          {"training_status", 0x2AD3},
+          {"supported_speed_range", 0x2AD4},
+          {"supported_inclination_range", 0x2AD5},
+          {"supported_resistance_level_range", 0x2AD6},
+          {"supported_heart_rate_range", 0x2AD7},
+          {"supported_power_range", 0x2AD8},
+          {"fitness_machine_control_point", 0x2AD9},
+          {"fitness_machine_status", 0x2ADA},
+      }));
 
   return &characteristics_map;
 }
 
 NameToAssignedNumberMap* GetAssignedNumberForDescriptorNameMap() {
   DEFINE_THREAD_SAFE_STATIC_LOCAL(
-      NameToAssignedNumberMap, descriptors_map, []() {
-        // https://www.bluetooth.com/specifications/gatt/descriptors
-        NameToAssignedNumberMap* descriptors = new NameToAssignedNumberMap();
-        descriptors->insert("gatt.characteristic_extended_properties", 0x2900);
-        descriptors->insert("gatt.characteristic_user_description", 0x2901);
-        descriptors->insert("gatt.client_characteristic_configuration", 0x2902);
-        descriptors->insert("gatt.server_characteristic_configuration", 0x2903);
-        descriptors->insert("gatt.characteristic_presentation_format", 0x2904);
-        descriptors->insert("gatt.characteristic_aggregate_format", 0x2905);
-        descriptors->insert("valid_range", 0x2906);
-        descriptors->insert("external_report_reference", 0x2907);
-        descriptors->insert("report_reference", 0x2908);
-        descriptors->insert("number_of_digitals", 0x2909);
-        descriptors->insert("value_trigger_setting", 0x290A);
-        descriptors->insert("es_configuration", 0x290B);
-        descriptors->insert("es_measurement", 0x290C);
-        descriptors->insert("es_trigger_setting", 0x290D);
-        descriptors->insert("time_trigger_setting", 0x290E);
-        return descriptors;
-      }());
+      NameToAssignedNumberMap, descriptors_map,
+      ({
+          // https://www.bluetooth.com/specifications/gatt/descriptors
+          {"gatt.characteristic_extended_properties", 0x2900},
+          {"gatt.characteristic_user_description", 0x2901},
+          {"gatt.client_characteristic_configuration", 0x2902},
+          {"gatt.server_characteristic_configuration", 0x2903},
+          {"gatt.characteristic_presentation_format", 0x2904},
+          {"gatt.characteristic_aggregate_format", 0x2905},
+          {"valid_range", 0x2906},
+          {"external_report_reference", 0x2907},
+          {"report_reference", 0x2908},
+          {"number_of_digitals", 0x2909},
+          {"value_trigger_setting", 0x290A},
+          {"es_configuration", 0x290B},
+          {"es_measurement", 0x290C},
+          {"es_trigger_setting", 0x290D},
+          {"time_trigger_setting", 0x290E},
+      }));
 
   return &descriptors_map;
 }
diff --git a/third_party/WebKit/Source/modules/broadcastchannel/BroadcastChannel.cpp b/third_party/WebKit/Source/modules/broadcastchannel/BroadcastChannel.cpp
index 1aa0de5..ac0d8b1 100644
--- a/third_party/WebKit/Source/modules/broadcastchannel/BroadcastChannel.cpp
+++ b/third_party/WebKit/Source/modules/broadcastchannel/BroadcastChannel.cpp
@@ -24,8 +24,7 @@
 // associated interfaces, ensuring proper message ordering.
 mojom::blink::BroadcastChannelProviderPtr& GetThreadSpecificProvider() {
   DEFINE_THREAD_SAFE_STATIC_LOCAL(
-      ThreadSpecific<mojom::blink::BroadcastChannelProviderPtr>, provider,
-      new ThreadSpecific<mojom::blink::BroadcastChannelProviderPtr>);
+      ThreadSpecific<mojom::blink::BroadcastChannelProviderPtr>, provider, ());
   if (!provider.IsSet()) {
     Platform::Current()->GetInterfaceProvider()->GetInterface(
         mojo::MakeRequest(&*provider));
diff --git a/third_party/WebKit/Source/modules/cachestorage/Cache.cpp b/third_party/WebKit/Source/modules/cachestorage/Cache.cpp
index 4a8dd9bf..1115f90 100644
--- a/third_party/WebKit/Source/modules/cachestorage/Cache.cpp
+++ b/third_party/WebKit/Source/modules/cachestorage/Cache.cpp
@@ -198,10 +198,9 @@
       type = ResponseType::kOpaqueRedirectType;
       break;
   }
-  DEFINE_THREAD_SAFE_STATIC_LOCAL(
-      EnumerationHistogram, response_type_histogram,
-      new EnumerationHistogram("ServiceWorkerCache.Cache.AddResponseType",
-                               static_cast<int>(ResponseType::kEnumMax)));
+  DEFINE_THREAD_SAFE_STATIC_LOCAL(EnumerationHistogram, response_type_histogram,
+                                  ("ServiceWorkerCache.Cache.AddResponseType",
+                                   static_cast<int>(ResponseType::kEnumMax)));
   response_type_histogram.Count(static_cast<int>(type));
 };
 
diff --git a/third_party/WebKit/Source/modules/canvas2d/BaseRenderingContext2D.cpp b/third_party/WebKit/Source/modules/canvas2d/BaseRenderingContext2D.cpp
index 4fbe110..beca187 100644
--- a/third_party/WebKit/Source/modules/canvas2d/BaseRenderingContext2D.cpp
+++ b/third_party/WebKit/Source/modules/canvas2d/BaseRenderingContext2D.cpp
@@ -1214,97 +1214,81 @@
     if (image_source->IsVideoElement()) {
       DEFINE_THREAD_SAFE_STATIC_LOCAL(
           CustomCountHistogram, scoped_us_counter_video_gpu,
-          new CustomCountHistogram("Blink.Canvas.DrawImage.Video.GPU", 0,
-                                   10000000, 50));
+          ("Blink.Canvas.DrawImage.Video.GPU", 0, 10000000, 50));
       timer.emplace(scoped_us_counter_video_gpu);
     } else if (image_source->IsCanvasElement()) {
       DEFINE_THREAD_SAFE_STATIC_LOCAL(
           CustomCountHistogram, scoped_us_counter_canvas_gpu,
-          new CustomCountHistogram("Blink.Canvas.DrawImage.Canvas.GPU", 0,
-                                   10000000, 50));
+          ("Blink.Canvas.DrawImage.Canvas.GPU", 0, 10000000, 50));
       timer.emplace(scoped_us_counter_canvas_gpu);
     } else if (image_source->IsSVGSource()) {
       DEFINE_THREAD_SAFE_STATIC_LOCAL(
           CustomCountHistogram, scoped_us_counter_svggpu,
-          new CustomCountHistogram("Blink.Canvas.DrawImage.SVG.GPU", 0,
-                                   10000000, 50));
+          ("Blink.Canvas.DrawImage.SVG.GPU", 0, 10000000, 50));
       timer.emplace(scoped_us_counter_svggpu);
     } else if (image_source->IsImageBitmap()) {
       DEFINE_THREAD_SAFE_STATIC_LOCAL(
           CustomCountHistogram, scoped_us_counter_image_bitmap_gpu,
-          new CustomCountHistogram("Blink.Canvas.DrawImage.ImageBitmap.GPU", 0,
-                                   10000000, 50));
+          ("Blink.Canvas.DrawImage.ImageBitmap.GPU", 0, 10000000, 50));
       timer.emplace(scoped_us_counter_image_bitmap_gpu);
     } else {
       DEFINE_THREAD_SAFE_STATIC_LOCAL(
           CustomCountHistogram, scoped_us_counter_others_gpu,
-          new CustomCountHistogram("Blink.Canvas.DrawImage.Others.GPU", 0,
-                                   10000000, 50));
+          ("Blink.Canvas.DrawImage.Others.GPU", 0, 10000000, 50));
       timer.emplace(scoped_us_counter_others_gpu);
     }
   } else if (GetImageBuffer() && GetImageBuffer()->IsRecording()) {
     if (image_source->IsVideoElement()) {
       DEFINE_THREAD_SAFE_STATIC_LOCAL(
           CustomCountHistogram, scoped_us_counter_video_display_list,
-          new CustomCountHistogram("Blink.Canvas.DrawImage.Video.DisplayList",
-                                   0, 10000000, 50));
+          ("Blink.Canvas.DrawImage.Video.DisplayList", 0, 10000000, 50));
       timer.emplace(scoped_us_counter_video_display_list);
     } else if (image_source->IsCanvasElement()) {
       DEFINE_THREAD_SAFE_STATIC_LOCAL(
           CustomCountHistogram, scoped_us_counter_canvas_display_list,
-          new CustomCountHistogram("Blink.Canvas.DrawImage.Canvas.DisplayList",
-                                   0, 10000000, 50));
+          ("Blink.Canvas.DrawImage.Canvas.DisplayList", 0, 10000000, 50));
       timer.emplace(scoped_us_counter_canvas_display_list);
     } else if (image_source->IsSVGSource()) {
       DEFINE_THREAD_SAFE_STATIC_LOCAL(
           CustomCountHistogram, scoped_us_counter_svg_display_list,
-          new CustomCountHistogram("Blink.Canvas.DrawImage.SVG.DisplayList", 0,
-                                   10000000, 50));
+          ("Blink.Canvas.DrawImage.SVG.DisplayList", 0, 10000000, 50));
       timer.emplace(scoped_us_counter_svg_display_list);
     } else if (image_source->IsImageBitmap()) {
       DEFINE_THREAD_SAFE_STATIC_LOCAL(
           CustomCountHistogram, scoped_us_counter_image_bitmap_display_list,
-          new CustomCountHistogram(
-              "Blink.Canvas.DrawImage.ImageBitmap.DisplayList", 0, 10000000,
-              50));
+          ("Blink.Canvas.DrawImage.ImageBitmap.DisplayList", 0, 10000000, 50));
       timer.emplace(scoped_us_counter_image_bitmap_display_list);
     } else {
       DEFINE_THREAD_SAFE_STATIC_LOCAL(
           CustomCountHistogram, scoped_us_counter_others_display_list,
-          new CustomCountHistogram("Blink.Canvas.DrawImage.Others.DisplayList",
-                                   0, 10000000, 50));
+          ("Blink.Canvas.DrawImage.Others.DisplayList", 0, 10000000, 50));
       timer.emplace(scoped_us_counter_others_display_list);
     }
   } else {
     if (image_source->IsVideoElement()) {
       DEFINE_THREAD_SAFE_STATIC_LOCAL(
           CustomCountHistogram, scoped_us_counter_video_cpu,
-          new CustomCountHistogram("Blink.Canvas.DrawImage.Video.CPU", 0,
-                                   10000000, 50));
+          ("Blink.Canvas.DrawImage.Video.CPU", 0, 10000000, 50));
       timer.emplace(scoped_us_counter_video_cpu);
     } else if (image_source->IsCanvasElement()) {
       DEFINE_THREAD_SAFE_STATIC_LOCAL(
           CustomCountHistogram, scoped_us_counter_canvas_cpu,
-          new CustomCountHistogram("Blink.Canvas.DrawImage.Canvas.CPU", 0,
-                                   10000000, 50));
+          ("Blink.Canvas.DrawImage.Canvas.CPU", 0, 10000000, 50));
       timer.emplace(scoped_us_counter_canvas_cpu);
     } else if (image_source->IsSVGSource()) {
       DEFINE_THREAD_SAFE_STATIC_LOCAL(
           CustomCountHistogram, scoped_us_counter_svgcpu,
-          new CustomCountHistogram("Blink.Canvas.DrawImage.SVG.CPU", 0,
-                                   10000000, 50));
+          ("Blink.Canvas.DrawImage.SVG.CPU", 0, 10000000, 50));
       timer.emplace(scoped_us_counter_svgcpu);
     } else if (image_source->IsImageBitmap()) {
       DEFINE_THREAD_SAFE_STATIC_LOCAL(
           CustomCountHistogram, scoped_us_counter_image_bitmap_cpu,
-          new CustomCountHistogram("Blink.Canvas.DrawImage.ImageBitmap.CPU", 0,
-                                   10000000, 50));
+          ("Blink.Canvas.DrawImage.ImageBitmap.CPU", 0, 10000000, 50));
       timer.emplace(scoped_us_counter_image_bitmap_cpu);
     } else {
       DEFINE_THREAD_SAFE_STATIC_LOCAL(
           CustomCountHistogram, scoped_us_counter_others_cpu,
-          new CustomCountHistogram("Blink.Canvas.DrawImage.Others.CPU", 0,
-                                   10000000, 50));
+          ("Blink.Canvas.DrawImage.Others.CPU", 0, 10000000, 50));
       timer.emplace(scoped_us_counter_others_cpu);
     }
   }
@@ -1618,20 +1602,17 @@
   if (GetImageBuffer() && GetImageBuffer()->IsAccelerated()) {
     DEFINE_THREAD_SAFE_STATIC_LOCAL(
         CustomCountHistogram, scoped_us_counter_gpu,
-        new CustomCountHistogram("Blink.Canvas.GetImageData.GPU", 0, 10000000,
-                                 50));
+        ("Blink.Canvas.GetImageData.GPU", 0, 10000000, 50));
     timer.emplace(scoped_us_counter_gpu);
   } else if (GetImageBuffer() && GetImageBuffer()->IsRecording()) {
     DEFINE_THREAD_SAFE_STATIC_LOCAL(
         CustomCountHistogram, scoped_us_counter_display_list,
-        new CustomCountHistogram("Blink.Canvas.GetImageData.DisplayList", 0,
-                                 10000000, 50));
+        ("Blink.Canvas.GetImageData.DisplayList", 0, 10000000, 50));
     timer.emplace(scoped_us_counter_display_list);
   } else {
     DEFINE_THREAD_SAFE_STATIC_LOCAL(
         CustomCountHistogram, scoped_us_counter_cpu,
-        new CustomCountHistogram("Blink.Canvas.GetImageData.CPU", 0, 10000000,
-                                 50));
+        ("Blink.Canvas.GetImageData.CPU", 0, 10000000, 50));
     timer.emplace(scoped_us_counter_cpu);
   }
 
@@ -1730,20 +1711,17 @@
   if (GetImageBuffer() && GetImageBuffer()->IsAccelerated()) {
     DEFINE_THREAD_SAFE_STATIC_LOCAL(
         CustomCountHistogram, scoped_us_counter_gpu,
-        new CustomCountHistogram("Blink.Canvas.PutImageData.GPU", 0, 10000000,
-                                 50));
+        ("Blink.Canvas.PutImageData.GPU", 0, 10000000, 50));
     timer.emplace(scoped_us_counter_gpu);
   } else if (GetImageBuffer() && GetImageBuffer()->IsRecording()) {
     DEFINE_THREAD_SAFE_STATIC_LOCAL(
         CustomCountHistogram, scoped_us_counter_display_list,
-        new CustomCountHistogram("Blink.Canvas.PutImageData.DisplayList", 0,
-                                 10000000, 50));
+        ("Blink.Canvas.PutImageData.DisplayList", 0, 10000000, 50));
     timer.emplace(scoped_us_counter_display_list);
   } else {
     DEFINE_THREAD_SAFE_STATIC_LOCAL(
         CustomCountHistogram, scoped_us_counter_cpu,
-        new CustomCountHistogram("Blink.Canvas.PutImageData.CPU", 0, 10000000,
-                                 50));
+        ("Blink.Canvas.PutImageData.CPU", 0, 10000000, 50));
     timer.emplace(scoped_us_counter_cpu);
   }
 
diff --git a/third_party/WebKit/Source/modules/encryptedmedia/NavigatorRequestMediaKeySystemAccess.cpp b/third_party/WebKit/Source/modules/encryptedmedia/NavigatorRequestMediaKeySystemAccess.cpp
index 155a145..9b2f5e9 100644
--- a/third_party/WebKit/Source/modules/encryptedmedia/NavigatorRequestMediaKeySystemAccess.cpp
+++ b/third_party/WebKit/Source/modules/encryptedmedia/NavigatorRequestMediaKeySystemAccess.cpp
@@ -244,8 +244,7 @@
   if (has_video_capabilities) {
     DEFINE_THREAD_SAFE_STATIC_LOCAL(
         EnumerationHistogram, empty_robustness_histogram,
-        new EnumerationHistogram(
-            "Media.EME.Widevine.VideoCapability.HasEmptyRobustness", 2));
+        ("Media.EME.Widevine.VideoCapability.HasEmptyRobustness", 2));
     empty_robustness_histogram.Count(has_empty_robustness);
   }
 
diff --git a/third_party/WebKit/Source/modules/indexeddb/IDBDatabase.cpp b/third_party/WebKit/Source/modules/indexeddb/IDBDatabase.cpp
index 4c1ed09..b137bbd 100644
--- a/third_party/WebKit/Source/modules/indexeddb/IDBDatabase.cpp
+++ b/third_party/WebKit/Source/modules/indexeddb/IDBDatabase.cpp
@@ -592,8 +592,7 @@
 void IDBDatabase::RecordApiCallsHistogram(IndexedDatabaseMethods method) {
   DEFINE_THREAD_SAFE_STATIC_LOCAL(
       EnumerationHistogram, api_calls_histogram,
-      new EnumerationHistogram("WebCore.IndexedDB.FrontEndAPICalls",
-                               kIDBMethodsMax));
+      ("WebCore.IndexedDB.FrontEndAPICalls", kIDBMethodsMax));
   api_calls_histogram.Count(method);
 }
 
diff --git a/third_party/WebKit/Source/modules/indexeddb/IDBObjectStore.cpp b/third_party/WebKit/Source/modules/indexeddb/IDBObjectStore.cpp
index 02a187d..3ee7671c 100644
--- a/third_party/WebKit/Source/modules/indexeddb/IDBObjectStore.cpp
+++ b/third_party/WebKit/Source/modules/indexeddb/IDBObjectStore.cpp
@@ -300,9 +300,8 @@
 
   DEFINE_THREAD_SAFE_STATIC_LOCAL(
       EnumerationHistogram, key_type_histogram,
-      new EnumerationHistogram(
-          "WebCore.IndexedDB.ObjectStore.IndexEntry.KeyType",
-          static_cast<int>(IDBKey::kTypeEnumMax)));
+      ("WebCore.IndexedDB.ObjectStore.IndexEntry.KeyType",
+       static_cast<int>(IDBKey::kTypeEnumMax)));
 
   if (!index_metadata.multi_entry ||
       index_key->GetType() != IDBKey::kArrayType) {
@@ -479,8 +478,8 @@
   if (key && uses_in_line_keys) {
     DEFINE_THREAD_SAFE_STATIC_LOCAL(
         EnumerationHistogram, key_type_histogram,
-        new EnumerationHistogram("WebCore.IndexedDB.ObjectStore.Record.KeyType",
-                                 static_cast<int>(IDBKey::kTypeEnumMax)));
+        ("WebCore.IndexedDB.ObjectStore.Record.KeyType",
+         static_cast<int>(IDBKey::kTypeEnumMax)));
     key_type_histogram.Count(static_cast<int>(key->GetType()));
   }
 
diff --git a/third_party/WebKit/Source/modules/notifications/NotificationImageLoader.cpp b/third_party/WebKit/Source/modules/notifications/NotificationImageLoader.cpp
index 3b29da7..d80b5dde 100644
--- a/third_party/WebKit/Source/modules/notifications/NotificationImageLoader.cpp
+++ b/third_party/WebKit/Source/modules/notifications/NotificationImageLoader.cpp
@@ -22,10 +22,10 @@
 
 #define NOTIFICATION_PER_TYPE_HISTOGRAM_COUNTS(metric, type_name, value, max) \
   case NotificationImageLoader::Type::k##type_name: {                         \
-    DEFINE_THREAD_SAFE_STATIC_LOCAL(                                          \
-        CustomCountHistogram, metric##type_name##Histogram,                   \
-        new CustomCountHistogram("Notifications." #metric "." #type_name,     \
-                                 1 /* min */, max, 50 /* buckets */));        \
+    DEFINE_THREAD_SAFE_STATIC_LOCAL(CustomCountHistogram,                     \
+                                    metric##type_name##Histogram,             \
+                                    ("Notifications." #metric "." #type_name, \
+                                     1 /* min */, max, 50 /* buckets */));    \
     metric##type_name##Histogram.Count(value);                                \
     break;                                                                    \
   }
diff --git a/third_party/WebKit/Source/modules/notifications/ServiceWorkerRegistrationNotifications.cpp b/third_party/WebKit/Source/modules/notifications/ServiceWorkerRegistrationNotifications.cpp
index cd24f367..17358b3 100644
--- a/third_party/WebKit/Source/modules/notifications/ServiceWorkerRegistrationNotifications.cpp
+++ b/third_party/WebKit/Source/modules/notifications/ServiceWorkerRegistrationNotifications.cpp
@@ -100,8 +100,7 @@
   //     17+  -> overflow bucket.
   DEFINE_THREAD_SAFE_STATIC_LOCAL(
       EnumerationHistogram, notification_count_histogram,
-      new EnumerationHistogram(
-          "Notifications.PersistentNotificationActionCount", 17));
+      ("Notifications.PersistentNotificationActionCount", 17));
   notification_count_histogram.Count(options.actions().size());
 
   ScriptPromiseResolver* resolver = ScriptPromiseResolver::Create(script_state);
diff --git a/third_party/WebKit/Source/modules/serviceworkers/ServiceWorkerGlobalScope.cpp b/third_party/WebKit/Source/modules/serviceworkers/ServiceWorkerGlobalScope.cpp
index b00dda9..2c86ff3 100644
--- a/third_party/WebKit/Source/modules/serviceworkers/ServiceWorkerGlobalScope.cpp
+++ b/third_party/WebKit/Source/modules/serviceworkers/ServiceWorkerGlobalScope.cpp
@@ -121,20 +121,17 @@
 }
 
 void ServiceWorkerGlobalScope::DidEvaluateWorkerScript() {
-  DEFINE_THREAD_SAFE_STATIC_LOCAL(
-      CustomCountHistogram, script_count_histogram,
-      new CustomCountHistogram("ServiceWorker.ScriptCount", 1, 1000, 50));
+  DEFINE_THREAD_SAFE_STATIC_LOCAL(CustomCountHistogram, script_count_histogram,
+                                  ("ServiceWorker.ScriptCount", 1, 1000, 50));
   script_count_histogram.Count(script_count_);
   DEFINE_THREAD_SAFE_STATIC_LOCAL(
       CustomCountHistogram, script_total_size_histogram,
-      new CustomCountHistogram("ServiceWorker.ScriptTotalSize", 1000, 5000000,
-                               50));
+      ("ServiceWorker.ScriptTotalSize", 1000, 5000000, 50));
   script_total_size_histogram.Count(script_total_size_);
   if (script_cached_metadata_total_size_) {
     DEFINE_THREAD_SAFE_STATIC_LOCAL(
         CustomCountHistogram, cached_metadata_histogram,
-        new CustomCountHistogram("ServiceWorker.ScriptCachedMetadataTotalSize",
-                                 1000, 50000000, 50));
+        ("ServiceWorker.ScriptCachedMetadataTotalSize", 1000, 50000000, 50));
     cached_metadata_histogram.Count(script_cached_metadata_total_size_);
   }
   did_evaluate_script_ = true;
diff --git a/third_party/WebKit/Source/modules/webdatabase/Database.cpp b/third_party/WebKit/Source/modules/webdatabase/Database.cpp
index 0c4e7ff9..f3d2844 100644
--- a/third_party/WebKit/Source/modules/webdatabase/Database.cpp
+++ b/third_party/WebKit/Source/modules/webdatabase/Database.cpp
@@ -167,7 +167,7 @@
 
 // FIXME: move all guid-related functions to a DatabaseVersionTracker class.
 static RecursiveMutex& GuidMutex() {
-  DEFINE_THREAD_SAFE_STATIC_LOCAL(RecursiveMutex, mutex, new RecursiveMutex);
+  DEFINE_THREAD_SAFE_STATIC_LOCAL(RecursiveMutex, mutex, ());
   return mutex;
 }
 
diff --git a/third_party/WebKit/Source/modules/webdatabase/DatabaseAuthorizer.cpp b/third_party/WebKit/Source/modules/webdatabase/DatabaseAuthorizer.cpp
index ea08141c..4ca0605 100644
--- a/third_party/WebKit/Source/modules/webdatabase/DatabaseAuthorizer.cpp
+++ b/third_party/WebKit/Source/modules/webdatabase/DatabaseAuthorizer.cpp
@@ -69,7 +69,7 @@
 const FunctionNameList& WhitelistedFunctions() {
   DEFINE_THREAD_SAFE_STATIC_LOCAL(
       FunctionNameList, list,
-      new FunctionNameList({
+      ({
           // SQLite functions used to help implement some operations
           // ALTER TABLE helpers
           "sqlite_rename_table", "sqlite_rename_trigger",
diff --git a/third_party/WebKit/Source/modules/webdatabase/DatabaseTracker.cpp b/third_party/WebKit/Source/modules/webdatabase/DatabaseTracker.cpp
index 62bd8b4..46f13165 100644
--- a/third_party/WebKit/Source/modules/webdatabase/DatabaseTracker.cpp
+++ b/third_party/WebKit/Source/modules/webdatabase/DatabaseTracker.cpp
@@ -61,8 +61,7 @@
 }
 
 DatabaseTracker& DatabaseTracker::Tracker() {
-  DEFINE_THREAD_SAFE_STATIC_LOCAL(DatabaseTracker, tracker,
-                                  new DatabaseTracker);
+  DEFINE_THREAD_SAFE_STATIC_LOCAL(DatabaseTracker, tracker, ());
   return tracker;
 }
 
diff --git a/third_party/WebKit/Source/modules/webdatabase/QuotaTracker.cpp b/third_party/WebKit/Source/modules/webdatabase/QuotaTracker.cpp
index 6fda1f97..8a5cd21 100644
--- a/third_party/WebKit/Source/modules/webdatabase/QuotaTracker.cpp
+++ b/third_party/WebKit/Source/modules/webdatabase/QuotaTracker.cpp
@@ -39,7 +39,7 @@
 namespace blink {
 
 QuotaTracker& QuotaTracker::Instance() {
-  DEFINE_THREAD_SAFE_STATIC_LOCAL(QuotaTracker, tracker, new QuotaTracker);
+  DEFINE_THREAD_SAFE_STATIC_LOCAL(QuotaTracker, tracker, ());
   return tracker;
 }
 
diff --git a/third_party/WebKit/Source/modules/webgl/WebGLRenderingContextBase.cpp b/third_party/WebKit/Source/modules/webgl/WebGLRenderingContextBase.cpp
index d0af592d..ebfc767 100644
--- a/third_party/WebKit/Source/modules/webgl/WebGLRenderingContextBase.cpp
+++ b/third_party/WebKit/Source/modules/webgl/WebGLRenderingContextBase.cpp
@@ -128,9 +128,8 @@
 using WebGLRenderingContextBaseSet =
     PersistentHeapHashSet<WeakMember<WebGLRenderingContextBase>>;
 WebGLRenderingContextBaseSet& ActiveContexts() {
-  DEFINE_THREAD_SAFE_STATIC_LOCAL(
-      ThreadSpecific<WebGLRenderingContextBaseSet>, active_contexts,
-      new ThreadSpecific<WebGLRenderingContextBaseSet>());
+  DEFINE_THREAD_SAFE_STATIC_LOCAL(ThreadSpecific<WebGLRenderingContextBaseSet>,
+                                  active_contexts, ());
   if (!active_contexts.IsSet())
     active_contexts->RegisterAsStaticReference();
   return *active_contexts;
@@ -139,9 +138,8 @@
 using WebGLRenderingContextBaseMap =
     PersistentHeapHashMap<WeakMember<WebGLRenderingContextBase>, int>;
 WebGLRenderingContextBaseMap& ForciblyEvictedContexts() {
-  DEFINE_THREAD_SAFE_STATIC_LOCAL(
-      ThreadSpecific<WebGLRenderingContextBaseMap>, forcibly_evicted_contexts,
-      new ThreadSpecific<WebGLRenderingContextBaseMap>());
+  DEFINE_THREAD_SAFE_STATIC_LOCAL(ThreadSpecific<WebGLRenderingContextBaseMap>,
+                                  forcibly_evicted_contexts, ());
   if (!forcibly_evicted_contexts.IsSet())
     forcibly_evicted_contexts->RegisterAsStaticReference();
   return *forcibly_evicted_contexts;
diff --git a/third_party/WebKit/Source/modules/websockets/DOMWebSocket.cpp b/third_party/WebKit/Source/modules/websockets/DOMWebSocket.cpp
index 1988352..192aeb2 100644
--- a/third_party/WebKit/Source/modules/websockets/DOMWebSocket.cpp
+++ b/third_party/WebKit/Source/modules/websockets/DOMWebSocket.cpp
@@ -423,8 +423,7 @@
 void DOMWebSocket::LogBinaryTypeChangesAfterOpen() {
   DEFINE_THREAD_SAFE_STATIC_LOCAL(
       CustomCountHistogram, binary_type_changes_histogram,
-      new CustomCountHistogram("WebCore.WebSocket.BinaryTypeChangesAfterOpen",
-                               1, 1024, 10));
+      ("WebCore.WebSocket.BinaryTypeChangesAfterOpen", 1, 1024, 10));
   DVLOG(3) << "WebSocket " << static_cast<void*>(this)
            << " logBinaryTypeChangesAfterOpen() logging "
            << binary_type_changes_after_open_;
@@ -781,8 +780,7 @@
 void DOMWebSocket::RecordSendTypeHistogram(WebSocketSendType type) {
   DEFINE_THREAD_SAFE_STATIC_LOCAL(
       EnumerationHistogram, send_type_histogram,
-      new EnumerationHistogram("WebCore.WebSocket.SendType",
-                               kWebSocketSendTypeMax));
+      ("WebCore.WebSocket.SendType", kWebSocketSendTypeMax));
   send_type_histogram.Count(type);
 }
 
@@ -794,9 +792,8 @@
     case kWebSocketSendTypeArrayBuffer: {
       DEFINE_THREAD_SAFE_STATIC_LOCAL(
           CustomCountHistogram, array_buffer_message_size_histogram,
-          new CustomCountHistogram(
-              "WebCore.WebSocket.MessageSize.Send.ArrayBuffer", 1,
-              kMaxByteSizeForHistogram, kBucketCountForMessageSizeHistogram));
+          ("WebCore.WebSocket.MessageSize.Send.ArrayBuffer", 1,
+           kMaxByteSizeForHistogram, kBucketCountForMessageSizeHistogram));
       array_buffer_message_size_histogram.Count(size_to_count);
       return;
     }
@@ -804,9 +801,8 @@
     case kWebSocketSendTypeArrayBufferView: {
       DEFINE_THREAD_SAFE_STATIC_LOCAL(
           CustomCountHistogram, array_buffer_view_message_size_histogram,
-          new CustomCountHistogram(
-              "WebCore.WebSocket.MessageSize.Send.ArrayBufferView", 1,
-              kMaxByteSizeForHistogram, kBucketCountForMessageSizeHistogram));
+          ("WebCore.WebSocket.MessageSize.Send.ArrayBufferView", 1,
+           kMaxByteSizeForHistogram, kBucketCountForMessageSizeHistogram));
       array_buffer_view_message_size_histogram.Count(size_to_count);
       return;
     }
@@ -814,9 +810,8 @@
     case kWebSocketSendTypeBlob: {
       DEFINE_THREAD_SAFE_STATIC_LOCAL(
           CustomCountHistogram, blob_message_size_histogram,
-          new CustomCountHistogram("WebCore.WebSocket.MessageSize.Send.Blob", 1,
-                                   kMaxByteSizeForHistogram,
-                                   kBucketCountForMessageSizeHistogram));
+          ("WebCore.WebSocket.MessageSize.Send.Blob", 1,
+           kMaxByteSizeForHistogram, kBucketCountForMessageSizeHistogram));
       blob_message_size_histogram.Count(size_to_count);
       return;
     }
@@ -829,8 +824,7 @@
 void DOMWebSocket::RecordReceiveTypeHistogram(WebSocketReceiveType type) {
   DEFINE_THREAD_SAFE_STATIC_LOCAL(
       EnumerationHistogram, receive_type_histogram,
-      new EnumerationHistogram("WebCore.WebSocket.ReceiveType",
-                               kWebSocketReceiveTypeMax));
+      ("WebCore.WebSocket.ReceiveType", kWebSocketReceiveTypeMax));
   receive_type_histogram.Count(type);
 }
 
@@ -842,9 +836,8 @@
     case kWebSocketReceiveTypeArrayBuffer: {
       DEFINE_THREAD_SAFE_STATIC_LOCAL(
           CustomCountHistogram, array_buffer_message_size_histogram,
-          new CustomCountHistogram(
-              "WebCore.WebSocket.MessageSize.Receive.ArrayBuffer", 1,
-              kMaxByteSizeForHistogram, kBucketCountForMessageSizeHistogram));
+          ("WebCore.WebSocket.MessageSize.Receive.ArrayBuffer", 1,
+           kMaxByteSizeForHistogram, kBucketCountForMessageSizeHistogram));
       array_buffer_message_size_histogram.Count(size_to_count);
       return;
     }
@@ -852,9 +845,8 @@
     case kWebSocketReceiveTypeBlob: {
       DEFINE_THREAD_SAFE_STATIC_LOCAL(
           CustomCountHistogram, blob_message_size_histogram,
-          new CustomCountHistogram("WebCore.WebSocket.MessageSize.Receive.Blob",
-                                   1, kMaxByteSizeForHistogram,
-                                   kBucketCountForMessageSizeHistogram));
+          ("WebCore.WebSocket.MessageSize.Receive.Blob", 1,
+           kMaxByteSizeForHistogram, kBucketCountForMessageSizeHistogram));
       blob_message_size_histogram.Count(size_to_count);
       return;
     }
diff --git a/third_party/WebKit/Source/platform/BUILD.gn b/third_party/WebKit/Source/platform/BUILD.gn
index e3caa04..bd93aa17 100644
--- a/third_party/WebKit/Source/platform/BUILD.gn
+++ b/third_party/WebKit/Source/platform/BUILD.gn
@@ -1341,6 +1341,8 @@
     "scheduler/renderer/renderer_web_scheduler_impl.h",
     "scheduler/renderer/task_cost_estimator.cc",
     "scheduler/renderer/task_cost_estimator.h",
+    "scheduler/renderer/task_duration_metric_reporter.cc",
+    "scheduler/renderer/task_duration_metric_reporter.h",
     "scheduler/renderer/task_queue_throttler.cc",
     "scheduler/renderer/task_queue_throttler.h",
     "scheduler/renderer/throttled_time_domain.cc",
@@ -1921,6 +1923,7 @@
     "scheduler/renderer/render_widget_signals_unittest.cc",
     "scheduler/renderer/renderer_scheduler_impl_unittest.cc",
     "scheduler/renderer/task_cost_estimator_unittest.cc",
+    "scheduler/renderer/task_duration_metric_reporter_unittest.cc",
     "scheduler/renderer/task_queue_throttler_unittest.cc",
     "scheduler/renderer/user_model_unittest.cc",
     "scheduler/renderer/web_frame_scheduler_impl_unittest.cc",
diff --git a/third_party/WebKit/Source/platform/audio/HRTFElevation.cpp b/third_party/WebKit/Source/platform/audio/HRTFElevation.cpp
index bb1f4cc0..79566dc 100644
--- a/third_party/WebKit/Source/platform/audio/HRTFElevation.cpp
+++ b/third_party/WebKit/Source/platform/audio/HRTFElevation.cpp
@@ -68,9 +68,8 @@
 static PassRefPtr<AudioBus> GetConcatenatedImpulseResponsesForSubject(
     const String& subject_name) {
   typedef HashMap<String, RefPtr<AudioBus>> AudioBusMap;
-  DEFINE_THREAD_SAFE_STATIC_LOCAL(AudioBusMap, audio_bus_map,
-                                  new AudioBusMap());
-  DEFINE_THREAD_SAFE_STATIC_LOCAL(Mutex, mutex, new Mutex());
+  DEFINE_THREAD_SAFE_STATIC_LOCAL(AudioBusMap, audio_bus_map, ());
+  DEFINE_THREAD_SAFE_STATIC_LOCAL(Mutex, mutex, ());
 
   MutexLocker locker(mutex);
   RefPtr<AudioBus> bus;
diff --git a/third_party/WebKit/Source/platform/bindings/DOMWrapperWorld.cpp b/third_party/WebKit/Source/platform/bindings/DOMWrapperWorld.cpp
index 80cb8da..25e0608 100644
--- a/third_party/WebKit/Source/platform/bindings/DOMWrapperWorld.cpp
+++ b/third_party/WebKit/Source/platform/bindings/DOMWrapperWorld.cpp
@@ -47,8 +47,7 @@
 // (see https://crbug.com/704778#c6).
 using WorldMap = HashMap<int, DOMWrapperWorld*>;
 static WorldMap& GetWorldMap() {
-  DEFINE_THREAD_SAFE_STATIC_LOCAL(ThreadSpecific<WorldMap>, map,
-                                  new ThreadSpecific<WorldMap>);
+  DEFINE_THREAD_SAFE_STATIC_LOCAL(ThreadSpecific<WorldMap>, map, ());
   return *map;
 }
 
@@ -262,8 +261,7 @@
 
 // static
 int DOMWrapperWorld::GenerateWorldIdForType(WorldType world_type) {
-  DEFINE_THREAD_SAFE_STATIC_LOCAL(ThreadSpecific<int>, next_world_id,
-                                  new ThreadSpecific<int>);
+  DEFINE_THREAD_SAFE_STATIC_LOCAL(ThreadSpecific<int>, next_world_id, ());
   if (!next_world_id.IsSet())
     *next_world_id = WorldId::kUnspecifiedWorldIdStart;
   switch (world_type) {
diff --git a/third_party/WebKit/Source/platform/blob/BlobRegistry.cpp b/third_party/WebKit/Source/platform/blob/BlobRegistry.cpp
index a672b2b..b00d4ce 100644
--- a/third_party/WebKit/Source/platform/blob/BlobRegistry.cpp
+++ b/third_party/WebKit/Source/platform/blob/BlobRegistry.cpp
@@ -66,11 +66,10 @@
 static ThreadSpecific<BlobURLOriginMap>& OriginMap() {
   // We want to create the BlobOriginMap exactly once because it is shared by
   // all the threads.
-  DEFINE_THREAD_SAFE_STATIC_LOCAL(BlobOriginMap, cache, new BlobOriginMap);
+  DEFINE_THREAD_SAFE_STATIC_LOCAL(BlobOriginMap, cache, ());
   (void)cache;  // BlobOriginMap's constructor does the interesting work.
 
-  DEFINE_THREAD_SAFE_STATIC_LOCAL(ThreadSpecific<BlobURLOriginMap>, map,
-                                  new ThreadSpecific<BlobURLOriginMap>);
+  DEFINE_THREAD_SAFE_STATIC_LOCAL(ThreadSpecific<BlobURLOriginMap>, map, ());
   return map;
 }
 
diff --git a/third_party/WebKit/Source/platform/fonts/ScriptRunIterator.cpp b/third_party/WebKit/Source/platform/fonts/ScriptRunIterator.cpp
index 74ae66f..37b2b3f 100644
--- a/third_party/WebKit/Source/platform/fonts/ScriptRunIterator.cpp
+++ b/third_party/WebKit/Source/platform/fonts/ScriptRunIterator.cpp
@@ -109,7 +109,7 @@
 
 const ICUScriptData* ICUScriptData::Instance() {
   DEFINE_THREAD_SAFE_STATIC_LOCAL(const ICUScriptData, icu_script_data_instance,
-                                  (new ICUScriptData()));
+                                  ());
   return &icu_script_data_instance;
 }
 
diff --git a/third_party/WebKit/Source/platform/fonts/ScriptRunIteratorTest.cpp b/third_party/WebKit/Source/platform/fonts/ScriptRunIteratorTest.cpp
index 50c80972..52631ff 100644
--- a/third_party/WebKit/Source/platform/fonts/ScriptRunIteratorTest.cpp
+++ b/third_party/WebKit/Source/platform/fonts/ScriptRunIteratorTest.cpp
@@ -30,9 +30,7 @@
   ~MockScriptData() override {}
 
   static const MockScriptData* Instance() {
-    DEFINE_THREAD_SAFE_STATIC_LOCAL(const MockScriptData, mock_script_data,
-                                    (new MockScriptData()));
-
+    DEFINE_THREAD_SAFE_STATIC_LOCAL(const MockScriptData, mock_script_data, ());
     return &mock_script_data;
   }
 
diff --git a/third_party/WebKit/Source/platform/fonts/WebFontDecoder.cpp b/third_party/WebKit/Source/platform/fonts/WebFontDecoder.cpp
index 4eda8c6e..9e3a878 100644
--- a/third_party/WebKit/Source/platform/fonts/WebFontDecoder.cpp
+++ b/third_party/WebKit/Source/platform/fonts/WebFontDecoder.cpp
@@ -150,8 +150,7 @@
     if (data[0] == 'w' && data[1] == 'O' && data[2] == 'F' && data[3] == 'F') {
       DEFINE_THREAD_SAFE_STATIC_LOCAL(
           CustomCountHistogram, woff_histogram,
-          new CustomCountHistogram("WebFont.DecodeSpeed.WOFF", 1000, 300000,
-                                   50));
+          ("WebFont.DecodeSpeed.WOFF", 1000, 300000, 50));
       woff_histogram.Count(kb_per_second);
       return;
     }
@@ -159,8 +158,7 @@
     if (data[0] == 'w' && data[1] == 'O' && data[2] == 'F' && data[3] == '2') {
       DEFINE_THREAD_SAFE_STATIC_LOCAL(
           CustomCountHistogram, woff2_histogram,
-          new CustomCountHistogram("WebFont.DecodeSpeed.WOFF2", 1000, 300000,
-                                   50));
+          ("WebFont.DecodeSpeed.WOFF2", 1000, 300000, 50));
       woff2_histogram.Count(kb_per_second);
       return;
     }
@@ -168,7 +166,7 @@
 
   DEFINE_THREAD_SAFE_STATIC_LOCAL(
       CustomCountHistogram, sfnt_histogram,
-      new CustomCountHistogram("WebFont.DecodeSpeed.SFNT", 1000, 300000, 50));
+      ("WebFont.DecodeSpeed.SFNT", 1000, 300000, 50));
   sfnt_histogram.Count(kb_per_second);
 }
 
diff --git a/third_party/WebKit/Source/platform/graphics/BitmapImageMetrics.cpp b/third_party/WebKit/Source/platform/graphics/BitmapImageMetrics.cpp
index 196f3bc..2925a576 100644
--- a/third_party/WebKit/Source/platform/graphics/BitmapImageMetrics.cpp
+++ b/third_party/WebKit/Source/platform/graphics/BitmapImageMetrics.cpp
@@ -29,8 +29,7 @@
 
   DEFINE_THREAD_SAFE_STATIC_LOCAL(
       EnumerationHistogram, decoded_image_type_histogram,
-      new EnumerationHistogram("Blink.DecodedImageType",
-                               kDecodedImageTypeEnumEnd));
+      ("Blink.DecodedImageType", kDecodedImageTypeEnumEnd));
   decoded_image_type_histogram.Count(decoded_image_type);
 }
 
@@ -38,35 +37,30 @@
     const ImageOrientationEnum orientation) {
   DEFINE_THREAD_SAFE_STATIC_LOCAL(
       EnumerationHistogram, orientation_histogram,
-      new EnumerationHistogram("Blink.DecodedImage.Orientation",
-                               kImageOrientationEnumEnd));
+      ("Blink.DecodedImage.Orientation", kImageOrientationEnumEnd));
   orientation_histogram.Count(orientation);
 }
 
 void BitmapImageMetrics::CountImageGammaAndGamut(SkColorSpace* color_space) {
-  DEFINE_THREAD_SAFE_STATIC_LOCAL(
-      EnumerationHistogram, gamma_named_histogram,
-      new EnumerationHistogram("Blink.ColorSpace.Source", kGammaEnd));
+  DEFINE_THREAD_SAFE_STATIC_LOCAL(EnumerationHistogram, gamma_named_histogram,
+                                  ("Blink.ColorSpace.Source", kGammaEnd));
   gamma_named_histogram.Count(GetColorSpaceGamma(color_space));
 
   DEFINE_THREAD_SAFE_STATIC_LOCAL(
       EnumerationHistogram, gamut_named_histogram,
-      new EnumerationHistogram("Blink.ColorGamut.Source",
-                               static_cast<int>(ColorSpaceGamut::kEnd)));
+      ("Blink.ColorGamut.Source", static_cast<int>(ColorSpaceGamut::kEnd)));
   gamut_named_histogram.Count(
       static_cast<int>(ColorSpaceUtilities::GetColorSpaceGamut(color_space)));
 }
 
 void BitmapImageMetrics::CountOutputGammaAndGamut(SkColorSpace* color_space) {
-  DEFINE_THREAD_SAFE_STATIC_LOCAL(
-      EnumerationHistogram, gamma_named_histogram,
-      new EnumerationHistogram("Blink.ColorSpace.Destination", kGammaEnd));
+  DEFINE_THREAD_SAFE_STATIC_LOCAL(EnumerationHistogram, gamma_named_histogram,
+                                  ("Blink.ColorSpace.Destination", kGammaEnd));
   gamma_named_histogram.Count(GetColorSpaceGamma(color_space));
 
-  DEFINE_THREAD_SAFE_STATIC_LOCAL(
-      EnumerationHistogram, gamut_named_histogram,
-      new EnumerationHistogram("Blink.ColorGamut.Destination",
-                               static_cast<int>(ColorSpaceGamut::kEnd)));
+  DEFINE_THREAD_SAFE_STATIC_LOCAL(EnumerationHistogram, gamut_named_histogram,
+                                  ("Blink.ColorGamut.Destination",
+                                   static_cast<int>(ColorSpaceGamut::kEnd)));
   gamut_named_histogram.Count(
       static_cast<int>(ColorSpaceUtilities::GetColorSpaceGamut(color_space)));
 }
diff --git a/third_party/WebKit/Source/platform/graphics/CanvasMetrics.cpp b/third_party/WebKit/Source/platform/graphics/CanvasMetrics.cpp
index 4d1a5c56..269d13f 100644
--- a/third_party/WebKit/Source/platform/graphics/CanvasMetrics.cpp
+++ b/third_party/WebKit/Source/platform/graphics/CanvasMetrics.cpp
@@ -14,8 +14,7 @@
     const CanvasContextUsage canvas_context_usage) {
   DEFINE_THREAD_SAFE_STATIC_LOCAL(
       EnumerationHistogram, usage_histogram,
-      new EnumerationHistogram("WebCore.CanvasContextUsage",
-                               CanvasContextUsage::kNumberOfUsages));
+      ("WebCore.CanvasContextUsage", CanvasContextUsage::kNumberOfUsages));
   usage_histogram.Count(canvas_context_usage);
 }
 
diff --git a/third_party/WebKit/Source/platform/graphics/ImageDecodingStore.cpp b/third_party/WebKit/Source/platform/graphics/ImageDecodingStore.cpp
index 03293e2..9693a02 100644
--- a/third_party/WebKit/Source/platform/graphics/ImageDecodingStore.cpp
+++ b/third_party/WebKit/Source/platform/graphics/ImageDecodingStore.cpp
@@ -52,8 +52,7 @@
 }
 
 ImageDecodingStore& ImageDecodingStore::Instance() {
-  DEFINE_THREAD_SAFE_STATIC_LOCAL(ImageDecodingStore, store,
-                                  ImageDecodingStore::Create().release());
+  DEFINE_THREAD_SAFE_STATIC_LOCAL(ImageDecodingStore, store, ());
   return store;
 }
 
diff --git a/third_party/WebKit/Source/platform/graphics/OffscreenCanvasFrameDispatcherImpl.cpp b/third_party/WebKit/Source/platform/graphics/OffscreenCanvasFrameDispatcherImpl.cpp
index 6991a67..554d3bd9 100644
--- a/third_party/WebKit/Source/platform/graphics/OffscreenCanvasFrameDispatcherImpl.cpp
+++ b/third_party/WebKit/Source/platform/graphics/OffscreenCanvasFrameDispatcherImpl.cpp
@@ -264,8 +264,7 @@
   OffscreenCanvasCommitType commit_type;
   DEFINE_THREAD_SAFE_STATIC_LOCAL(
       EnumerationHistogram, commit_type_histogram,
-      new EnumerationHistogram("OffscreenCanvas.CommitType",
-                               kOffscreenCanvasCommitTypeCount));
+      ("OffscreenCanvas.CommitType", kOffscreenCanvasCommitTypeCount));
   if (image->IsTextureBacked()) {
     if (Platform::Current()->IsGPUCompositingEnabled() &&
         !is_web_gl_software_rendering) {
@@ -341,9 +340,8 @@
         DEFINE_THREAD_SAFE_STATIC_LOCAL(
             CustomCountHistogram,
             commit_gpu_canvas_gpu_compositing_worker_timer,
-            new CustomCountHistogram(
-                "Blink.Canvas.OffscreenCommit.GPUCanvasGPUCompositingWorker", 0,
-                10000000, 50));
+            ("Blink.Canvas.OffscreenCommit.GPUCanvasGPUCompositingWorker", 0,
+             10000000, 50));
         commit_gpu_canvas_gpu_compositing_worker_timer.Count(elapsed_time *
                                                              1000000.0);
       }
@@ -361,9 +359,9 @@
         DEFINE_THREAD_SAFE_STATIC_LOCAL(
             CustomCountHistogram,
             commit_gpu_canvas_software_compositing_worker_timer,
-            new CustomCountHistogram("Blink.Canvas.OffscreenCommit."
-                                     "GPUCanvasSoftwareCompositingWorker",
-                                     0, 10000000, 50));
+            ("Blink.Canvas.OffscreenCommit."
+             "GPUCanvasSoftwareCompositingWorker",
+             0, 10000000, 50));
         commit_gpu_canvas_software_compositing_worker_timer.Count(elapsed_time *
                                                                   1000000.0);
       }
@@ -381,9 +379,9 @@
         DEFINE_THREAD_SAFE_STATIC_LOCAL(
             CustomCountHistogram,
             commit_software_canvas_gpu_compositing_worker_timer,
-            new CustomCountHistogram("Blink.Canvas.OffscreenCommit."
-                                     "SoftwareCanvasGPUCompositingWorker",
-                                     0, 10000000, 50));
+            ("Blink.Canvas.OffscreenCommit."
+             "SoftwareCanvasGPUCompositingWorker",
+             0, 10000000, 50));
         commit_software_canvas_gpu_compositing_worker_timer.Count(elapsed_time *
                                                                   1000000.0);
       }
@@ -402,9 +400,9 @@
         DEFINE_THREAD_SAFE_STATIC_LOCAL(
             CustomCountHistogram,
             commit_software_canvas_software_compositing_worker_timer,
-            new CustomCountHistogram("Blink.Canvas.OffscreenCommit."
-                                     "SoftwareCanvasSoftwareCompositingWorker",
-                                     0, 10000000, 50));
+            ("Blink.Canvas.OffscreenCommit."
+             "SoftwareCanvasSoftwareCompositingWorker",
+             0, 10000000, 50));
         commit_software_canvas_software_compositing_worker_timer.Count(
             elapsed_time * 1000000.0);
       }
diff --git a/third_party/WebKit/Source/platform/graphics/RecordingImageBufferSurface.cpp b/third_party/WebKit/Source/platform/graphics/RecordingImageBufferSurface.cpp
index 45a340d..1ef03ecb 100644
--- a/third_party/WebKit/Source/platform/graphics/RecordingImageBufferSurface.cpp
+++ b/third_party/WebKit/Source/platform/graphics/RecordingImageBufferSurface.cpp
@@ -92,8 +92,7 @@
 
   DEFINE_THREAD_SAFE_STATIC_LOCAL(
       EnumerationHistogram, canvas_fallback_histogram,
-      new EnumerationHistogram("Canvas.DisplayListFallbackReason",
-                               kFallbackReasonCount));
+      ("Canvas.DisplayListFallbackReason", kFallbackReasonCount));
   canvas_fallback_histogram.Count(reason);
 
   fallback_surface_ = WTF::WrapUnique(new UnacceleratedImageBufferSurface(
diff --git a/third_party/WebKit/Source/platform/graphics/gpu/SharedGpuContext.cpp b/third_party/WebKit/Source/platform/graphics/gpu/SharedGpuContext.cpp
index 8b580b27..a006cf5 100644
--- a/third_party/WebKit/Source/platform/graphics/gpu/SharedGpuContext.cpp
+++ b/third_party/WebKit/Source/platform/graphics/gpu/SharedGpuContext.cpp
@@ -16,8 +16,7 @@
 
 SharedGpuContext* SharedGpuContext::GetInstanceForCurrentThread() {
   DEFINE_THREAD_SAFE_STATIC_LOCAL(ThreadSpecific<SharedGpuContext>,
-                                  thread_specific_instance,
-                                  new ThreadSpecific<SharedGpuContext>);
+                                  thread_specific_instance, ());
   return thread_specific_instance;
 }
 
diff --git a/third_party/WebKit/Source/platform/heap/GCInfo.cpp b/third_party/WebKit/Source/platform/heap/GCInfo.cpp
index 6b5fda67..cb3b9d08 100644
--- a/third_party/WebKit/Source/platform/heap/GCInfo.cpp
+++ b/third_party/WebKit/Source/platform/heap/GCInfo.cpp
@@ -21,7 +21,7 @@
   DCHECK(gc_info);
   DCHECK(gc_info_index_slot);
   // Keep a global GCInfoTable lock while allocating a new slot.
-  DEFINE_THREAD_SAFE_STATIC_LOCAL(Mutex, mutex, new Mutex);
+  DEFINE_THREAD_SAFE_STATIC_LOCAL(Mutex, mutex, ());
   MutexLocker locker(mutex);
 
   // If more than one thread ends up allocating a slot for
diff --git a/third_party/WebKit/Source/platform/heap/Heap.cpp b/third_party/WebKit/Source/platform/heap/Heap.cpp
index 0d2bf24a..85b9c1cc 100644
--- a/third_party/WebKit/Source/platform/heap/Heap.cpp
+++ b/third_party/WebKit/Source/platform/heap/Heap.cpp
@@ -77,8 +77,7 @@
 
 CrossThreadPersistentRegion& ProcessHeap::GetCrossThreadPersistentRegion() {
   DEFINE_THREAD_SAFE_STATIC_LOCAL(CrossThreadPersistentRegion,
-                                  persistent_region,
-                                  new CrossThreadPersistentRegion());
+                                  persistent_region, ());
   return persistent_region;
 }
 
@@ -377,8 +376,7 @@
   double time_for_weak_processing = WTF::CurrentTimeMS() - start_time;
   DEFINE_THREAD_SAFE_STATIC_LOCAL(
       CustomCountHistogram, weak_processing_time_histogram,
-      new CustomCountHistogram("BlinkGC.TimeForGlobalWeakProcessing", 1,
-                               10 * 1000, 50));
+      ("BlinkGC.TimeForGlobalWeakProcessing", 1, 10 * 1000, 50));
   weak_processing_time_histogram.Count(time_for_weak_processing);
 }
 
@@ -401,8 +399,7 @@
     // we've ever seen.
     DEFINE_THREAD_SAFE_STATIC_LOCAL(
         EnumerationHistogram, commited_size_histogram,
-        new EnumerationHistogram("BlinkGC.CommittedSize",
-                                 supported_max_size_in_mb));
+        ("BlinkGC.CommittedSize", supported_max_size_in_mb));
     commited_size_histogram.Count(size_in_mb);
     observed_max_size_in_mb = size_in_mb;
   }
diff --git a/third_party/WebKit/Source/platform/heap/HeapCompact.cpp b/third_party/WebKit/Source/platform/heap/HeapCompact.cpp
index 1b06389..8f30fa23 100644
--- a/third_party/WebKit/Source/platform/heap/HeapCompact.cpp
+++ b/third_party/WebKit/Source/platform/heap/HeapCompact.cpp
@@ -431,15 +431,13 @@
       WTF::CurrentTimeMS() - start_compaction_time_ms_;
   DEFINE_THREAD_SAFE_STATIC_LOCAL(
       CustomCountHistogram, time_for_heap_compaction_histogram,
-      new CustomCountHistogram("BlinkGC.TimeForHeapCompaction", 1, 10 * 1000,
-                               50));
+      ("BlinkGC.TimeForHeapCompaction", 1, 10 * 1000, 50));
   time_for_heap_compaction_histogram.Count(time_for_heap_compaction);
   start_compaction_time_ms_ = 0;
 
   DEFINE_THREAD_SAFE_STATIC_LOCAL(
       CustomCountHistogram, object_size_freed_by_heap_compaction,
-      new CustomCountHistogram("BlinkGC.ObjectSizeFreedByHeapCompaction", 1,
-                               4 * 1024 * 1024, 50));
+      ("BlinkGC.ObjectSizeFreedByHeapCompaction", 1, 4 * 1024 * 1024, 50));
   object_size_freed_by_heap_compaction.Count(freed_size_ / 1024);
 
 #if DEBUG_LOG_HEAP_COMPACTION_RUNNING_TIME
diff --git a/third_party/WebKit/Source/platform/heap/HeapTest.cpp b/third_party/WebKit/Source/platform/heap/HeapTest.cpp
index d0cb211..ba638be 100644
--- a/third_party/WebKit/Source/platform/heap/HeapTest.cpp
+++ b/third_party/WebKit/Source/platform/heap/HeapTest.cpp
@@ -5406,13 +5406,12 @@
 }
 
 static Mutex& MainThreadMutex() {
-  DEFINE_THREAD_SAFE_STATIC_LOCAL(Mutex, main_mutex, new Mutex);
+  DEFINE_THREAD_SAFE_STATIC_LOCAL(Mutex, main_mutex, ());
   return main_mutex;
 }
 
 static ThreadCondition& MainThreadCondition() {
-  DEFINE_THREAD_SAFE_STATIC_LOCAL(ThreadCondition, main_condition,
-                                  new ThreadCondition);
+  DEFINE_THREAD_SAFE_STATIC_LOCAL(ThreadCondition, main_condition, ());
   return main_condition;
 }
 
@@ -5426,13 +5425,12 @@
 }
 
 static Mutex& WorkerThreadMutex() {
-  DEFINE_THREAD_SAFE_STATIC_LOCAL(Mutex, worker_mutex, new Mutex);
+  DEFINE_THREAD_SAFE_STATIC_LOCAL(Mutex, worker_mutex, ());
   return worker_mutex;
 }
 
 static ThreadCondition& WorkerThreadCondition() {
-  DEFINE_THREAD_SAFE_STATIC_LOCAL(ThreadCondition, worker_condition,
-                                  new ThreadCondition);
+  DEFINE_THREAD_SAFE_STATIC_LOCAL(ThreadCondition, worker_condition, ());
   return worker_condition;
 }
 
@@ -5744,8 +5742,7 @@
 }
 
 static RecursiveMutex& GetRecursiveMutex() {
-  DEFINE_THREAD_SAFE_STATIC_LOCAL(RecursiveMutex, recursive_mutex,
-                                  new RecursiveMutex);
+  DEFINE_THREAD_SAFE_STATIC_LOCAL(RecursiveMutex, recursive_mutex, ());
   return recursive_mutex;
 }
 
@@ -6542,8 +6539,7 @@
 
   static IntWrapper& ThreadSpecificIntWrapper() {
     DEFINE_THREAD_SAFE_STATIC_LOCAL(ThreadSpecific<Persistent<IntWrapper>>,
-                                    int_wrapper,
-                                    new ThreadSpecific<Persistent<IntWrapper>>);
+                                    int_wrapper, ());
     Persistent<IntWrapper>& handle = *int_wrapper;
     if (!handle) {
       handle = new IntWrapper(42);
@@ -6588,7 +6584,7 @@
 ThreadedClearOnShutdownTester::WeakHeapObjectSet&
 ThreadedClearOnShutdownTester::GetWeakHeapObjectSet() {
   DEFINE_THREAD_SAFE_STATIC_LOCAL(ThreadSpecific<WeakHeapObjectSet>, singleton,
-                                  new ThreadSpecific<WeakHeapObjectSet>);
+                                  ());
   if (!singleton.IsSet())
     singleton->RegisterAsStaticReference();
 
@@ -6597,8 +6593,7 @@
 
 ThreadedClearOnShutdownTester::HeapObjectSet&
 ThreadedClearOnShutdownTester::GetHeapObjectSet() {
-  DEFINE_THREAD_SAFE_STATIC_LOCAL(ThreadSpecific<HeapObjectSet>, singleton,
-                                  new ThreadSpecific<HeapObjectSet>);
+  DEFINE_THREAD_SAFE_STATIC_LOCAL(ThreadSpecific<HeapObjectSet>, singleton, ());
   if (!singleton.IsSet())
     singleton->RegisterAsStaticReference();
 
diff --git a/third_party/WebKit/Source/platform/heap/ThreadState.cpp b/third_party/WebKit/Source/platform/heap/ThreadState.cpp
index c92f21c..4ea6db5 100644
--- a/third_party/WebKit/Source/platform/heap/ThreadState.cpp
+++ b/third_party/WebKit/Source/platform/heap/ThreadState.cpp
@@ -1520,24 +1520,21 @@
 
       DEFINE_THREAD_SAFE_STATIC_LOCAL(
           CustomCountHistogram, marking_time_histogram,
-          new CustomCountHistogram("BlinkGC.CollectGarbage", 0, 10 * 1000, 50));
+          ("BlinkGC.CollectGarbage", 0, 10 * 1000, 50));
       marking_time_histogram.Count(marking_time_in_milliseconds);
       DEFINE_THREAD_SAFE_STATIC_LOCAL(
           CustomCountHistogram, total_object_space_histogram,
-          new CustomCountHistogram("BlinkGC.TotalObjectSpace", 0,
-                                   4 * 1024 * 1024, 50));
+          ("BlinkGC.TotalObjectSpace", 0, 4 * 1024 * 1024, 50));
       total_object_space_histogram.Count(
           ProcessHeap::TotalAllocatedObjectSize() / 1024);
       DEFINE_THREAD_SAFE_STATIC_LOCAL(
           CustomCountHistogram, total_allocated_space_histogram,
-          new CustomCountHistogram("BlinkGC.TotalAllocatedSpace", 0,
-                                   4 * 1024 * 1024, 50));
+          ("BlinkGC.TotalAllocatedSpace", 0, 4 * 1024 * 1024, 50));
       total_allocated_space_histogram.Count(ProcessHeap::TotalAllocatedSpace() /
                                             1024);
       DEFINE_THREAD_SAFE_STATIC_LOCAL(
           EnumerationHistogram, gc_reason_histogram,
-          new EnumerationHistogram("BlinkGC.GCReason",
-                                   BlinkGC::kLastGCReason + 1));
+          ("BlinkGC.GCReason", BlinkGC::kLastGCReason + 1));
       gc_reason_histogram.Count(reason);
 
       Heap().last_gc_reason_ = reason;
diff --git a/third_party/WebKit/Source/platform/image-encoders/ImageEncoderUtils.cpp b/third_party/WebKit/Source/platform/image-encoders/ImageEncoderUtils.cpp
index fc7ca7a..d08d763 100644
--- a/third_party/WebKit/Source/platform/image-encoders/ImageEncoderUtils.cpp
+++ b/third_party/WebKit/Source/platform/image-encoders/ImageEncoderUtils.cpp
@@ -54,24 +54,22 @@
   }
 
   if (encode_reason == kEncodeReasonToDataURL) {
-    DEFINE_THREAD_SAFE_STATIC_LOCAL(
-        EnumerationHistogram, to_data_url_image_format_histogram,
-        new EnumerationHistogram("Canvas.RequestedImageMimeTypes_toDataURL",
-                                 kNumberOfRequestedImageMimeTypes));
+    DEFINE_THREAD_SAFE_STATIC_LOCAL(EnumerationHistogram,
+                                    to_data_url_image_format_histogram,
+                                    ("Canvas.RequestedImageMimeTypes_toDataURL",
+                                     kNumberOfRequestedImageMimeTypes));
     to_data_url_image_format_histogram.Count(image_format);
   } else if (encode_reason == kEncodeReasonToBlobCallback) {
     DEFINE_THREAD_SAFE_STATIC_LOCAL(
         EnumerationHistogram, to_blob_callback_image_format_histogram,
-        new EnumerationHistogram(
-            "Canvas.RequestedImageMimeTypes_toBlobCallback",
-            kNumberOfRequestedImageMimeTypes));
+        ("Canvas.RequestedImageMimeTypes_toBlobCallback",
+         kNumberOfRequestedImageMimeTypes));
     to_blob_callback_image_format_histogram.Count(image_format);
   } else if (encode_reason == kEncodeReasonConvertToBlobPromise) {
     DEFINE_THREAD_SAFE_STATIC_LOCAL(
         EnumerationHistogram, convert_to_blob_promise_image_format_histogram,
-        new EnumerationHistogram(
-            "Canvas.RequestedImageMimeTypes_convertToBlobPromise",
-            kNumberOfRequestedImageMimeTypes));
+        ("Canvas.RequestedImageMimeTypes_convertToBlobPromise",
+         kNumberOfRequestedImageMimeTypes));
     convert_to_blob_promise_image_format_histogram.Count(image_format);
   }
 
diff --git a/third_party/WebKit/Source/platform/loader/fetch/CrossOriginAccessControl.cpp b/third_party/WebKit/Source/platform/loader/fetch/CrossOriginAccessControl.cpp
index 7da357cd..9e02d7b 100644
--- a/third_party/WebKit/Source/platform/loader/fetch/CrossOriginAccessControl.cpp
+++ b/third_party/WebKit/Source/platform/loader/fetch/CrossOriginAccessControl.cpp
@@ -47,10 +47,10 @@
 bool IsOnAccessControlResponseHeaderWhitelist(const String& name) {
   DEFINE_THREAD_SAFE_STATIC_LOCAL(
       HTTPHeaderSet, allowed_cross_origin_response_headers,
-      (new HTTPHeaderSet({
+      ({
           "cache-control", "content-language", "content-type", "expires",
           "last-modified", "pragma",
-      })));
+      }));
   return allowed_cross_origin_response_headers.Contains(name);
 }
 
@@ -215,15 +215,12 @@
     const ResourceResponse& response,
     const SecurityOrigin* security_origin,
     WebURLRequest::RequestContext context) {
-  DEFINE_THREAD_SAFE_STATIC_LOCAL(
-      AtomicString, allow_origin_header_name,
-      (new AtomicString("access-control-allow-origin")));
-  DEFINE_THREAD_SAFE_STATIC_LOCAL(
-      AtomicString, allow_credentials_header_name,
-      (new AtomicString("access-control-allow-credentials")));
-  DEFINE_THREAD_SAFE_STATIC_LOCAL(
-      AtomicString, allow_suborigin_header_name,
-      (new AtomicString("access-control-allow-suborigin")));
+  DEFINE_THREAD_SAFE_STATIC_LOCAL(AtomicString, allow_origin_header_name,
+                                  ("access-control-allow-origin"));
+  DEFINE_THREAD_SAFE_STATIC_LOCAL(AtomicString, allow_credentials_header_name,
+                                  ("access-control-allow-credentials"));
+  DEFINE_THREAD_SAFE_STATIC_LOCAL(AtomicString, allow_suborigin_header_name,
+                                  ("access-control-allow-suborigin"));
 
   switch (status) {
     case kInvalidResponse: {
diff --git a/third_party/WebKit/Source/platform/loader/fetch/FetchUtils.cpp b/third_party/WebKit/Source/platform/loader/fetch/FetchUtils.cpp
index 87ca6c59..5580e6d 100644
--- a/third_party/WebKit/Source/platform/loader/fetch/FetchUtils.cpp
+++ b/third_party/WebKit/Source/platform/loader/fetch/FetchUtils.cpp
@@ -69,8 +69,7 @@
 }
 
 const ForbiddenHeaderNames& ForbiddenHeaderNames::Get() {
-  DEFINE_THREAD_SAFE_STATIC_LOCAL(const ForbiddenHeaderNames, instance,
-                                  new ForbiddenHeaderNames);
+  DEFINE_THREAD_SAFE_STATIC_LOCAL(const ForbiddenHeaderNames, instance, ());
   return instance;
 }
 
diff --git a/third_party/WebKit/Source/platform/loader/fetch/ResourceFetcher.cpp b/third_party/WebKit/Source/platform/loader/fetch/ResourceFetcher.cpp
index c2b85c7..d0aa112 100644
--- a/third_party/WebKit/Source/platform/loader/fetch/ResourceFetcher.cpp
+++ b/third_party/WebKit/Source/platform/loader/fetch/ResourceFetcher.cpp
@@ -70,14 +70,13 @@
   kSriResourceIntegrityMismatchEventCount
 };
 
-#define DEFINE_SINGLE_RESOURCE_HISTOGRAM(prefix, name)                         \
-  case Resource::k##name: {                                                    \
-    DEFINE_THREAD_SAFE_STATIC_LOCAL(                                           \
-        EnumerationHistogram, resource_histogram,                              \
-        new EnumerationHistogram(                                              \
-            "Blink.MemoryCache.RevalidationPolicy." prefix #name, kLoad + 1)); \
-    resource_histogram.Count(policy);                                          \
-    break;                                                                     \
+#define DEFINE_SINGLE_RESOURCE_HISTOGRAM(prefix, name)                      \
+  case Resource::k##name: {                                                 \
+    DEFINE_THREAD_SAFE_STATIC_LOCAL(                                        \
+        EnumerationHistogram, resource_histogram,                           \
+        ("Blink.MemoryCache.RevalidationPolicy." prefix #name, kLoad + 1)); \
+    resource_histogram.Count(policy);                                       \
+    break;                                                                  \
   }
 
 #define DEFINE_RESOURCE_HISTOGRAM(prefix)                    \
@@ -113,10 +112,9 @@
 
 void RecordSriResourceIntegrityMismatchEvent(
     SriResourceIntegrityMismatchEvent event) {
-  DEFINE_THREAD_SAFE_STATIC_LOCAL(
-      EnumerationHistogram, integrity_histogram,
-      new EnumerationHistogram("sri.resource_integrity_mismatch_event",
-                               kSriResourceIntegrityMismatchEventCount));
+  DEFINE_THREAD_SAFE_STATIC_LOCAL(EnumerationHistogram, integrity_histogram,
+                                  ("sri.resource_integrity_mismatch_event",
+                                   kSriResourceIntegrityMismatchEventCount));
   integrity_histogram.Count(event);
 }
 
diff --git a/third_party/WebKit/Source/platform/network/HTTPNames.json5 b/third_party/WebKit/Source/platform/network/HTTPNames.json5
index 2de7537..0c166a8 100644
--- a/third_party/WebKit/Source/platform/network/HTTPNames.json5
+++ b/third_party/WebKit/Source/platform/network/HTTPNames.json5
@@ -51,8 +51,8 @@
     "Referer",
     "Referrer-Policy",
     "Refresh",
-    "Required-CSP",
     "Resource-Freshness",
+    "Sec-Required-CSP",
     "Server-Timing",
     "SourceMap",
     "Suborigin",
diff --git a/third_party/WebKit/Source/platform/network/NetworkStateNotifier.cpp b/third_party/WebKit/Source/platform/network/NetworkStateNotifier.cpp
index 46d6824..ed45db0 100644
--- a/third_party/WebKit/Source/platform/network/NetworkStateNotifier.cpp
+++ b/third_party/WebKit/Source/platform/network/NetworkStateNotifier.cpp
@@ -42,7 +42,7 @@
 
 NetworkStateNotifier& GetNetworkStateNotifier() {
   DEFINE_THREAD_SAFE_STATIC_LOCAL(NetworkStateNotifier, network_state_notifier,
-                                  new NetworkStateNotifier);
+                                  ());
   return network_state_notifier;
 }
 
diff --git a/third_party/WebKit/Source/platform/scheduler/child/worker_scheduler_impl.cc b/third_party/WebKit/Source/platform/scheduler/child/worker_scheduler_impl.cc
index 51d629e..196009b4 100644
--- a/third_party/WebKit/Source/platform/scheduler/child/worker_scheduler_impl.cc
+++ b/third_party/WebKit/Source/platform/scheduler/child/worker_scheduler_impl.cc
@@ -141,9 +141,8 @@
 void WorkerSchedulerImpl::DidProcessTask(TaskQueue* task_queue,
                                          double start_time,
                                          double end_time) {
-  DEFINE_THREAD_SAFE_STATIC_LOCAL(
-      CustomCountHistogram, task_time_counter,
-      new CustomCountHistogram("WorkerThread.Task.Time", 0, 10000000, 50));
+  DEFINE_THREAD_SAFE_STATIC_LOCAL(CustomCountHistogram, task_time_counter,
+                                  ("WorkerThread.Task.Time", 0, 10000000, 50));
   task_time_counter.Count((end_time - start_time) *
                           base::Time::kMicrosecondsPerSecond);
 
diff --git a/third_party/WebKit/Source/platform/scheduler/renderer/renderer_scheduler_impl.cc b/third_party/WebKit/Source/platform/scheduler/renderer/renderer_scheduler_impl.cc
index 2f708ac..046364da8 100644
--- a/third_party/WebKit/Source/platform/scheduler/renderer/renderer_scheduler_impl.cc
+++ b/third_party/WebKit/Source/platform/scheduler/renderer/renderer_scheduler_impl.cc
@@ -221,12 +221,11 @@
       is_audio_playing(false),
       rail_mode_observer(nullptr),
       wake_up_budget_pool(nullptr),
-      task_duration_per_queue_type_histogram(base::Histogram::FactoryGet(
-          "RendererScheduler.TaskDurationPerQueueType2",
-          1,
-          static_cast<int>(TaskQueue::QueueType::COUNT),
-          static_cast<int>(TaskQueue::QueueType::COUNT) + 1,
-          base::HistogramBase::kUmaTargetedHistogramFlag)) {
+      task_duration_reporter("RendererScheduler.TaskDurationPerQueueType2"),
+      foreground_task_duration_reporter(
+          "RendererScheduler.TaskDurationPerQueueType2.Foreground"),
+      background_task_duration_reporter(
+          "RendererScheduler.TaskDurationPerQueueType2.Background") {
   foreground_main_thread_load_tracker.Resume(now);
 }
 
@@ -1862,22 +1861,14 @@
                             static_cast<int>(queue_type),
                             static_cast<int>(TaskQueue::QueueType::COUNT));
 
-  RecordTaskDurationPerQueueType(queue_type, duration);
-}
+  GetMainThreadOnly().task_duration_reporter.RecordTask(queue_type, duration);
 
-void RendererSchedulerImpl::RecordTaskDurationPerQueueType(
-    TaskQueue::QueueType queue_type,
-    base::TimeDelta duration) {
-  // Report only whole milliseconds to avoid overflow.
-  base::TimeDelta& unreported_duration =
-      GetMainThreadOnly()
-          .unreported_task_duration[static_cast<int>(queue_type)];
-  unreported_duration += duration;
-  int64_t milliseconds = unreported_duration.InMilliseconds();
-  if (milliseconds > 0) {
-    unreported_duration -= base::TimeDelta::FromMilliseconds(milliseconds);
-    GetMainThreadOnly().task_duration_per_queue_type_histogram->AddCount(
-        static_cast<int>(queue_type), static_cast<int>(milliseconds));
+  if (GetMainThreadOnly().renderer_backgrounded) {
+    GetMainThreadOnly().background_task_duration_reporter.RecordTask(queue_type,
+                                                                     duration);
+  } else {
+    GetMainThreadOnly().foreground_task_duration_reporter.RecordTask(queue_type,
+                                                                     duration);
   }
 }
 
diff --git a/third_party/WebKit/Source/platform/scheduler/renderer/renderer_scheduler_impl.h b/third_party/WebKit/Source/platform/scheduler/renderer/renderer_scheduler_impl.h
index 00c85c4d..3da44a2 100644
--- a/third_party/WebKit/Source/platform/scheduler/renderer/renderer_scheduler_impl.h
+++ b/third_party/WebKit/Source/platform/scheduler/renderer/renderer_scheduler_impl.h
@@ -24,6 +24,7 @@
 #include "platform/scheduler/renderer/idle_time_estimator.h"
 #include "platform/scheduler/renderer/render_widget_signals.h"
 #include "platform/scheduler/renderer/task_cost_estimator.h"
+#include "platform/scheduler/renderer/task_duration_metric_reporter.h"
 #include "platform/scheduler/renderer/user_model.h"
 #include "platform/scheduler/renderer/web_view_scheduler_impl.h"
 #include "public/platform/scheduler/renderer/renderer_scheduler.h"
@@ -32,7 +33,6 @@
 namespace trace_event {
 class ConvertableToTraceFormat;
 }
-class HistogramBase;
 }
 
 namespace blink {
@@ -303,6 +303,8 @@
     DISALLOW_COPY_AND_ASSIGN(PollableNeedsUpdateFlag);
   };
 
+  class TaskDurationMetricTracker;
+
   // IdleHelper::Delegate implementation:
   bool CanEnterLongIdlePeriod(
       base::TimeTicks now,
@@ -411,9 +413,6 @@
                          base::TimeTicks start_time,
                          base::TimeTicks end_time);
 
-  void RecordTaskDurationPerQueueType(TaskQueue::QueueType queue_type,
-                                      base::TimeDelta duration);
-
   SchedulerHelper helper_;
   IdleHelper idle_helper_;
   IdleCanceledDelayedTaskSweeper idle_canceled_delayed_task_sweeper_;
@@ -496,10 +495,9 @@
     std::set<WebViewSchedulerImpl*> web_view_schedulers;  // Not owned.
     RAILModeObserver* rail_mode_observer;                 // Not owned.
     WakeUpBudgetPool* wake_up_budget_pool;                // Not owned.
-    std::array<base::TimeDelta,
-               static_cast<size_t>(TaskQueue::QueueType::COUNT)>
-        unreported_task_duration;
-    base::HistogramBase* task_duration_per_queue_type_histogram;
+    TaskDurationMetricReporter task_duration_reporter;
+    TaskDurationMetricReporter foreground_task_duration_reporter;
+    TaskDurationMetricReporter background_task_duration_reporter;
   };
 
   struct AnyThread {
diff --git a/third_party/WebKit/Source/platform/scheduler/renderer/task_duration_metric_reporter.cc b/third_party/WebKit/Source/platform/scheduler/renderer/task_duration_metric_reporter.cc
new file mode 100644
index 0000000..d0f1f45
--- /dev/null
+++ b/third_party/WebKit/Source/platform/scheduler/renderer/task_duration_metric_reporter.cc
@@ -0,0 +1,41 @@
+// Copyright 2017 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 "platform/scheduler/renderer/task_duration_metric_reporter.h"
+
+#include "base/metrics/histogram.h"
+
+namespace blink {
+namespace scheduler {
+
+TaskDurationMetricReporter::TaskDurationMetricReporter(const char* metric_name)
+    : TaskDurationMetricReporter(base::Histogram::FactoryGet(
+          metric_name,
+          1,
+          static_cast<int>(TaskQueue::QueueType::COUNT),
+          static_cast<int>(TaskQueue::QueueType::COUNT) + 1,
+          base::HistogramBase::kUmaTargetedHistogramFlag)) {}
+
+TaskDurationMetricReporter::TaskDurationMetricReporter(
+    base::HistogramBase* histogram)
+    : task_duration_per_queue_type_histogram_(histogram) {}
+
+TaskDurationMetricReporter::~TaskDurationMetricReporter() {}
+
+void TaskDurationMetricReporter::RecordTask(TaskQueue::QueueType queue_type,
+                                            base::TimeDelta duration) {
+  // Report only whole milliseconds to avoid overflow.
+  base::TimeDelta& unreported_duration =
+      unreported_task_duration_[static_cast<int>(queue_type)];
+  unreported_duration += duration;
+  int64_t milliseconds = unreported_duration.InMilliseconds();
+  if (milliseconds > 0) {
+    unreported_duration -= base::TimeDelta::FromMilliseconds(milliseconds);
+    task_duration_per_queue_type_histogram_->AddCount(
+        static_cast<int>(queue_type), static_cast<int>(milliseconds));
+  }
+}
+
+}  // namespace scheduler
+}  // namespace blink
diff --git a/third_party/WebKit/Source/platform/scheduler/renderer/task_duration_metric_reporter.h b/third_party/WebKit/Source/platform/scheduler/renderer/task_duration_metric_reporter.h
new file mode 100644
index 0000000..f305e7f0
--- /dev/null
+++ b/third_party/WebKit/Source/platform/scheduler/renderer/task_duration_metric_reporter.h
@@ -0,0 +1,48 @@
+// Copyright 2017 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef THIRD_PARTY_WEBKIT_SOURCE_PLATFORM_SCHEDULER_RENDERER_TASK_DURATION_METRIC_REPORTER_H_
+#define THIRD_PARTY_WEBKIT_SOURCE_PLATFORM_SCHEDULER_RENDERER_TASK_DURATION_METRIC_REPORTER_H_
+
+#include <array>
+
+#include "base/gtest_prod_util.h"
+#include "base/macros.h"
+#include "base/time/time.h"
+#include "platform/PlatformExport.h"
+#include "platform/scheduler/base/task_queue.h"
+
+namespace base {
+class HistogramBase;
+}
+
+namespace blink {
+namespace scheduler {
+
+// A helper class to report task duration split by queue type.
+// Aggregates small tasks internally and reports only whole milliseconds.
+class PLATFORM_EXPORT TaskDurationMetricReporter {
+ public:
+  explicit TaskDurationMetricReporter(const char* metric_name);
+  ~TaskDurationMetricReporter();
+
+  void RecordTask(TaskQueue::QueueType queue_type,
+                  base::TimeDelta time_duration);
+
+ private:
+  FRIEND_TEST_ALL_PREFIXES(TaskDurationMetricReporterTest, Test);
+
+  TaskDurationMetricReporter(base::HistogramBase* histogram);
+
+  std::array<base::TimeDelta, static_cast<size_t>(TaskQueue::QueueType::COUNT)>
+      unreported_task_duration_;
+  base::HistogramBase* task_duration_per_queue_type_histogram_;
+
+  DISALLOW_COPY_AND_ASSIGN(TaskDurationMetricReporter);
+};
+
+}  // namespace scheduler
+}  // namespace blink
+
+#endif  // THIRD_PARTY_WEBKIT_SOURCE_PLATFORM_SCHEDULER_RENDERER_TASK_DURATION_METRIC_REPORTER_H_
diff --git a/third_party/WebKit/Source/platform/scheduler/renderer/task_duration_metric_reporter_unittest.cc b/third_party/WebKit/Source/platform/scheduler/renderer/task_duration_metric_reporter_unittest.cc
new file mode 100644
index 0000000..52eba2a6
--- /dev/null
+++ b/third_party/WebKit/Source/platform/scheduler/renderer/task_duration_metric_reporter_unittest.cc
@@ -0,0 +1,81 @@
+// Copyright 2017 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 "platform/scheduler/renderer/task_duration_metric_reporter.h"
+
+#include "base/memory/ptr_util.h"
+#include "base/metrics/histogram_base.h"
+#include "base/metrics/histogram_samples.h"
+#include "base/values.h"
+#include "testing/gmock/include/gmock/gmock.h"
+#include "testing/gtest/include/gtest/gtest.h"
+
+namespace blink {
+namespace scheduler {
+
+namespace {
+
+using testing::_;
+using testing::Mock;
+
+class FakeHistogram : public base::HistogramBase {
+ public:
+  FakeHistogram() : base::HistogramBase("fake") {}
+  ~FakeHistogram() override = default;
+
+  MOCK_METHOD2(AddCount, void(base::HistogramBase::Sample, int));
+  MOCK_CONST_METHOD0(name_hash, uint64_t());
+  MOCK_CONST_METHOD0(GetHistogramType, base::HistogramType());
+  MOCK_CONST_METHOD3(HasConstructionArguments,
+                     bool(base::HistogramBase::Sample,
+                          base::HistogramBase::Sample,
+                          uint32_t));
+  MOCK_METHOD1(Add, void(base::HistogramBase::Sample));
+  MOCK_METHOD1(AddSamples, void(const base::HistogramSamples&));
+  MOCK_CONST_METHOD0(SnapshotSamples,
+                     std::unique_ptr<base::HistogramSamples>());
+  MOCK_METHOD0(SnapshotDelta, std::unique_ptr<base::HistogramSamples>());
+  MOCK_CONST_METHOD0(SnapshotFinalDelta,
+                     std::unique_ptr<base::HistogramSamples>());
+  MOCK_METHOD1(AddSamplesFromPickle, bool(base::PickleIterator*));
+  MOCK_CONST_METHOD1(WriteHTMLGraph, void(std::string*));
+  MOCK_CONST_METHOD1(WriteAscii, void(std::string*));
+  MOCK_CONST_METHOD1(SerializeInfoImpl, bool(base::Pickle*));
+  MOCK_CONST_METHOD1(GetParameters, void(base::DictionaryValue*));
+  MOCK_CONST_METHOD3(GetCountAndBucketData,
+                     void(base::HistogramBase::Count*,
+                          int64_t*,
+                          base::ListValue*));
+};
+
+}  // namespace
+
+TEST(TaskDurationMetricReporterTest, Test) {
+  FakeHistogram histogram;
+
+  TaskDurationMetricReporter metric_reporter(&histogram);
+
+  EXPECT_CALL(histogram, AddCount(2, 3));
+  metric_reporter.RecordTask(static_cast<TaskQueue::QueueType>(2),
+                             base::TimeDelta::FromMicroseconds(3400));
+  Mock::VerifyAndClearExpectations(&histogram);
+
+  EXPECT_CALL(histogram, AddCount(_, _)).Times(0);
+  metric_reporter.RecordTask(static_cast<TaskQueue::QueueType>(2),
+                             base::TimeDelta::FromMicroseconds(300));
+  Mock::VerifyAndClearExpectations(&histogram);
+
+  EXPECT_CALL(histogram, AddCount(2, 1));
+  metric_reporter.RecordTask(static_cast<TaskQueue::QueueType>(2),
+                             base::TimeDelta::FromMicroseconds(800));
+  Mock::VerifyAndClearExpectations(&histogram);
+
+  EXPECT_CALL(histogram, AddCount(2, 16));
+  metric_reporter.RecordTask(static_cast<TaskQueue::QueueType>(2),
+                             base::TimeDelta::FromMicroseconds(15600));
+  Mock::VerifyAndClearExpectations(&histogram);
+}
+
+}  // namespace scheduler
+}  // namespace blink
diff --git a/third_party/WebKit/Source/platform/wtf/Assertions.cpp b/third_party/WebKit/Source/platform/wtf/Assertions.cpp
index 58785d6..20c783c 100644
--- a/third_party/WebKit/Source/platform/wtf/Assertions.cpp
+++ b/third_party/WebKit/Source/platform/wtf/Assertions.cpp
@@ -208,8 +208,7 @@
 }
 
 ScopedLogger*& ScopedLogger::Current() {
-  DEFINE_THREAD_SAFE_STATIC_LOCAL(ThreadSpecific<ScopedLogger*>, ref,
-                                  new ThreadSpecific<ScopedLogger*>);
+  DEFINE_THREAD_SAFE_STATIC_LOCAL(ThreadSpecific<ScopedLogger*>, ref, ());
   return *ref;
 }
 
diff --git a/third_party/WebKit/Source/platform/wtf/HashTable.cpp b/third_party/WebKit/Source/platform/wtf/HashTable.cpp
index 11e479a..80bfa6a 100644
--- a/third_party/WebKit/Source/platform/wtf/HashTable.cpp
+++ b/third_party/WebKit/Source/platform/wtf/HashTable.cpp
@@ -27,12 +27,12 @@
 namespace WTF {
 
 static Mutex& hashTableStatsMutex() {
-  DEFINE_THREAD_SAFE_STATIC_LOCAL(Mutex, mutex, new Mutex);
+  DEFINE_THREAD_SAFE_STATIC_LOCAL(Mutex, mutex, ());
   return mutex;
 }
 
 HashTableStats& HashTableStats::instance() {
-  DEFINE_THREAD_SAFE_STATIC_LOCAL(HashTableStats, stats, new HashTableStats);
+  DEFINE_THREAD_SAFE_STATIC_LOCAL(HashTableStats, stats, ());
   return stats;
 }
 
diff --git a/third_party/WebKit/Source/platform/wtf/StdLibExtras.h b/third_party/WebKit/Source/platform/wtf/StdLibExtras.h
index 10abe45..2232e78 100644
--- a/third_party/WebKit/Source/platform/wtf/StdLibExtras.h
+++ b/third_party/WebKit/Source/platform/wtf/StdLibExtras.h
@@ -57,8 +57,9 @@
 // multiple threads.
 //
 // TODO: rename as DEFINE_CROSS_THREAD_STATIC_LOCAL() ?
-#define DEFINE_THREAD_SAFE_STATIC_LOCAL(Type, Name, Initializer) \
-  static WTF::StaticSingleton<Type> s_##Name(Initializer);       \
+#define DEFINE_THREAD_SAFE_STATIC_LOCAL(Type, Name, Arguments) \
+  static WTF::StaticSingleton<Type> s_##Name(                  \
+      new WTF::StaticSingleton<Type>::WrapperType Arguments);  \
   Type& Name = s_##Name.Get(true)
 
 namespace blink {
diff --git a/third_party/WebKit/Source/platform/wtf/text/TextEncoding.cpp b/third_party/WebKit/Source/platform/wtf/text/TextEncoding.cpp
index 8e71a3f..95fd28f 100644
--- a/third_party/WebKit/Source/platform/wtf/text/TextEncoding.cpp
+++ b/third_party/WebKit/Source/platform/wtf/text/TextEncoding.cpp
@@ -38,7 +38,7 @@
 
 static const TextEncoding& UTF7Encoding() {
   DEFINE_THREAD_SAFE_STATIC_LOCAL(const TextEncoding, global_utf7_encoding,
-                                  new TextEncoding("UTF-7"));
+                                  ("UTF-7"));
   return global_utf7_encoding;
 }
 
@@ -132,62 +132,57 @@
 
 const TextEncoding& ASCIIEncoding() {
   DEFINE_THREAD_SAFE_STATIC_LOCAL(const TextEncoding, global_ascii_encoding,
-                                  new TextEncoding("ASCII"));
+                                  ("ASCII"));
   return global_ascii_encoding;
 }
 
 const TextEncoding& Latin1Encoding() {
   DEFINE_THREAD_SAFE_STATIC_LOCAL(const TextEncoding, global_latin1_encoding,
-                                  new TextEncoding("latin1"));
+                                  ("latin1"));
   return global_latin1_encoding;
 }
 
 const TextEncoding& UTF16BigEndianEncoding() {
-  DEFINE_THREAD_SAFE_STATIC_LOCAL(const TextEncoding,
-                                  global_utf16_big_endian_encoding,
-                                  new TextEncoding("UTF-16BE"));
+  DEFINE_THREAD_SAFE_STATIC_LOCAL(
+      const TextEncoding, global_utf16_big_endian_encoding, ("UTF-16BE"));
   return global_utf16_big_endian_encoding;
 }
 
 const TextEncoding& UTF16LittleEndianEncoding() {
-  DEFINE_THREAD_SAFE_STATIC_LOCAL(const TextEncoding,
-                                  global_utf16_little_endian_encoding,
-                                  new TextEncoding("UTF-16LE"));
+  DEFINE_THREAD_SAFE_STATIC_LOCAL(
+      const TextEncoding, global_utf16_little_endian_encoding, ("UTF-16LE"));
   return global_utf16_little_endian_encoding;
 }
 
 // UTF-32 is UTF-32LE with an implicit BOM.
 const TextEncoding& UTF32Encoding() {
   DEFINE_THREAD_SAFE_STATIC_LOCAL(const TextEncoding, global_utf32_encoding,
-                                  new TextEncoding("UTF-32"));
+                                  ("UTF-32"));
   return global_utf32_encoding;
 }
 
 const TextEncoding& UTF32BigEndianEncoding() {
-  DEFINE_THREAD_SAFE_STATIC_LOCAL(const TextEncoding,
-                                  global_utf32_big_endian_encoding,
-                                  new TextEncoding("UTF-32BE"));
+  DEFINE_THREAD_SAFE_STATIC_LOCAL(
+      const TextEncoding, global_utf32_big_endian_encoding, ("UTF-32BE"));
   return global_utf32_big_endian_encoding;
 }
 
 const TextEncoding& UTF32LittleEndianEncoding() {
-  DEFINE_THREAD_SAFE_STATIC_LOCAL(const TextEncoding,
-                                  global_utf32_little_endian_encoding,
-                                  new TextEncoding("UTF-32LE"));
+  DEFINE_THREAD_SAFE_STATIC_LOCAL(
+      const TextEncoding, global_utf32_little_endian_encoding, ("UTF-32LE"));
   return global_utf32_little_endian_encoding;
 }
 
 const TextEncoding& UTF8Encoding() {
   DEFINE_THREAD_SAFE_STATIC_LOCAL(const TextEncoding, global_utf8_encoding,
-                                  new TextEncoding("UTF-8"));
+                                  ("UTF-8"));
   DCHECK(global_utf8_encoding.IsValid());
   return global_utf8_encoding;
 }
 
 const TextEncoding& WindowsLatin1Encoding() {
-  DEFINE_THREAD_SAFE_STATIC_LOCAL(const TextEncoding,
-                                  global_windows_latin1_encoding,
-                                  new TextEncoding("WinLatin1"));
+  DEFINE_THREAD_SAFE_STATIC_LOCAL(
+      const TextEncoding, global_windows_latin1_encoding, ("WinLatin1"));
   return global_windows_latin1_encoding;
 }
 
diff --git a/third_party/WebKit/Source/platform/wtf/text/icu/CollatorICU.cpp b/third_party/WebKit/Source/platform/wtf/text/icu/CollatorICU.cpp
index 2e73b74..0a601c6 100644
--- a/third_party/WebKit/Source/platform/wtf/text/icu/CollatorICU.cpp
+++ b/third_party/WebKit/Source/platform/wtf/text/icu/CollatorICU.cpp
@@ -44,7 +44,7 @@
 static UCollator* g_cached_collator;
 static char g_cached_equivalent_locale[Collator::kUlocFullnameCapacity];
 static Mutex& CachedCollatorMutex() {
-  DEFINE_THREAD_SAFE_STATIC_LOCAL(Mutex, mutex, new Mutex);
+  DEFINE_THREAD_SAFE_STATIC_LOCAL(Mutex, mutex, ());
   return mutex;
 }
 
diff --git a/third_party/WebKit/Source/web/BUILD.gn b/third_party/WebKit/Source/web/BUILD.gn
index c2442c88..8f5004f7 100644
--- a/third_party/WebKit/Source/web/BUILD.gn
+++ b/third_party/WebKit/Source/web/BUILD.gn
@@ -95,14 +95,10 @@
     "ServiceWorkerGlobalScopeClientImpl.h",
     "ServiceWorkerGlobalScopeProxy.cpp",
     "ServiceWorkerGlobalScopeProxy.h",
-    "SpellCheckerClientImpl.cpp",
-    "SpellCheckerClientImpl.h",
     "StorageClientImpl.cpp",
     "StorageClientImpl.h",
     "StorageQuotaClientImpl.cpp",
     "StorageQuotaClientImpl.h",
-    "TextCheckerClientImpl.cpp",
-    "TextCheckerClientImpl.h",
     "TextFinder.cpp",
     "TextFinder.h",
     "UserMediaClientImpl.cpp",
@@ -171,9 +167,6 @@
     "WebSharedWorkerReportingProxyImpl.cpp",
     "WebSharedWorkerReportingProxyImpl.h",
     "WebSurroundingText.cpp",
-    "WebTextCheckingCompletionImpl.cpp",
-    "WebTextCheckingCompletionImpl.h",
-    "WebTextCheckingResult.cpp",
     "WebUserMediaRequest.cpp",
     "WebViewImpl.cpp",
     "WebViewImpl.h",
diff --git a/third_party/WebKit/Source/web/WebLocalFrameImpl.cpp b/third_party/WebKit/Source/web/WebLocalFrameImpl.cpp
index 351cab7..acb981d 100644
--- a/third_party/WebKit/Source/web/WebLocalFrameImpl.cpp
+++ b/third_party/WebKit/Source/web/WebLocalFrameImpl.cpp
@@ -119,6 +119,7 @@
 #include "core/editing/markers/DocumentMarkerController.h"
 #include "core/editing/serializers/Serialization.h"
 #include "core/editing/spellcheck/SpellChecker.h"
+#include "core/editing/spellcheck/TextCheckerClientImpl.h"
 #include "core/exported/SharedWorkerRepositoryClientImpl.h"
 #include "core/exported/WebAssociatedURLLoaderImpl.h"
 #include "core/exported/WebDataSourceImpl.h"
@@ -227,7 +228,6 @@
 #include "public/web/WebTreeScopeType.h"
 #include "skia/ext/platform_canvas.h"
 #include "web/RemoteFrameOwner.h"
-#include "web/TextCheckerClientImpl.h"
 #include "web/TextFinder.h"
 #include "web/WebDevToolsAgentImpl.h"
 #include "web/WebFrameWidgetImpl.h"
diff --git a/third_party/WebKit/Source/web/WebViewImpl.h b/third_party/WebKit/Source/web/WebViewImpl.h
index 25b9b84..126cc4a 100644
--- a/third_party/WebKit/Source/web/WebViewImpl.h
+++ b/third_party/WebKit/Source/web/WebViewImpl.h
@@ -32,6 +32,7 @@
 #define WebViewImpl_h
 
 #include <memory>
+#include "core/editing/spellcheck/SpellCheckerClientImpl.h"
 #include "core/exported/WebViewBase.h"
 #include "core/frame/ResizeViewportAnchor.h"
 #include "core/page/ChromeClient.h"
@@ -65,7 +66,6 @@
 #include "web/ContextMenuClientImpl.h"
 #include "web/EditorClientImpl.h"
 #include "web/MediaKeysClientImpl.h"
-#include "web/SpellCheckerClientImpl.h"
 #include "web/StorageClientImpl.h"
 #include "web/WebExport.h"
 #include "web/WebPagePopupImpl.h"
diff --git a/third_party/WebKit/Tools/Scripts/webkitpy/w3c/test_exporter.py b/third_party/WebKit/Tools/Scripts/webkitpy/w3c/test_exporter.py
index aef7c617..194a2b1 100644
--- a/third_party/WebKit/Tools/Scripts/webkitpy/w3c/test_exporter.py
+++ b/third_party/WebKit/Tools/Scripts/webkitpy/w3c/test_exporter.py
@@ -216,8 +216,8 @@
             response_data = self.wpt_github.create_pr(branch_name, cl.subject, message)
             _log.debug('Create PR response: %s', response_data)
 
-            data, status_code = self.wpt_github.add_label(response_data['number'])
-            _log.info('Add label response (status %s): %s', status_code, data)
+            self.wpt_github.add_label(response_data['number'])
+            self.wpt_github.add_label(response_data['number'], 'do not merge yet')
 
             cl.post_comment((
                 'Exportable changes to web-platform-tests were detected in this CL '
diff --git a/third_party/WebKit/Tools/Scripts/webkitpy/w3c/test_exporter_unittest.py b/third_party/WebKit/Tools/Scripts/webkitpy/w3c/test_exporter_unittest.py
index 0278dfe..c0241d4 100644
--- a/third_party/WebKit/Tools/Scripts/webkitpy/w3c/test_exporter_unittest.py
+++ b/third_party/WebKit/Tools/Scripts/webkitpy/w3c/test_exporter_unittest.py
@@ -80,15 +80,15 @@
             'pr_with_position',
             'pr_with_change_id',
             'create_pr',
-            'add_label',
+            'add_label "default"',
             'pr_with_position',
             'pr_with_change_id',
             'create_pr',
-            'add_label',
+            'add_label "default"',
             'pr_with_position',
             'pr_with_change_id',
             'create_pr',
-            'add_label',
+            'add_label "default"',
         ])
         self.assertEqual(test_exporter.wpt_github.pull_requests_created, [
             ('chromium-export-c881563d73', 'older fake text', 'older fake text'),
@@ -141,7 +141,7 @@
             'merge_pull_request',
             'pr_with_position',
             'create_pr',
-            'add_label',
+            'add_label "default"',
             'pr_with_position',
             'pr_with_position',
             'get_pr_branch',
@@ -178,7 +178,8 @@
         self.assertEqual(test_exporter.wpt_github.calls, [
             'pr_with_change_id',
             'create_pr',
-            'add_label',
+            'add_label "default"',
+            'add_label "do not merge yet"',
         ])
         self.assertEqual(test_exporter.wpt_github.pull_requests_created, [
             ('chromium-export-cl-1',
diff --git a/third_party/WebKit/Tools/Scripts/webkitpy/w3c/wpt_github.py b/third_party/WebKit/Tools/Scripts/webkitpy/w3c/wpt_github.py
index b0f59ca..c6bc6aa 100644
--- a/third_party/WebKit/Tools/Scripts/webkitpy/w3c/wpt_github.py
+++ b/third_party/WebKit/Tools/Scripts/webkitpy/w3c/wpt_github.py
@@ -102,13 +102,13 @@
 
         return data
 
-    def add_label(self, number):
+    def add_label(self, number, label=EXPORT_LABEL):
         path = '/repos/%s/%s/issues/%d/labels' % (
             WPT_GH_ORG,
             WPT_GH_REPO_NAME,
             number
         )
-        body = [EXPORT_LABEL]
+        body = [label]
         return self.request(path, method='POST', body=body)
 
     def in_flight_pull_requests(self):
diff --git a/third_party/WebKit/Tools/Scripts/webkitpy/w3c/wpt_github_mock.py b/third_party/WebKit/Tools/Scripts/webkitpy/w3c/wpt_github_mock.py
index 9060d20..8f40df1 100644
--- a/third_party/WebKit/Tools/Scripts/webkitpy/w3c/wpt_github_mock.py
+++ b/third_party/WebKit/Tools/Scripts/webkitpy/w3c/wpt_github_mock.py
@@ -47,8 +47,8 @@
     def delete_remote_branch(self, _):
         self.calls.append('delete_remote_branch')
 
-    def add_label(self, _):
-        self.calls.append('add_label')
+    def add_label(self, _, label='default'):
+        self.calls.append('add_label "%s"' % label)
         return {}, 200
 
     def get_pr_branch(self, number):
diff --git a/tools/metrics/histograms/enums.xml b/tools/metrics/histograms/enums.xml
index 56c58bb4..09c8bd5 100644
--- a/tools/metrics/histograms/enums.xml
+++ b/tools/metrics/histograms/enums.xml
@@ -23724,8 +23724,9 @@
   <int value="2" label="Neutral with a verbose warning on sensitive fields"/>
   <int value="3" label="Neutral with a verbose warning after editing a form"/>
   <int value="4" label="Neutral with a verbose warning in Incognito mode"/>
-  <int value="5" label="Neutral with a verbose warning after editing a form or
-      in Incognito mode"/>
+  <int value="5"
+      label="Neutral with a verbose warning after editing a form or in
+             Incognito mode"/>
 </enum>
 
 <enum name="MarkNonSecureAsStatus" type="int">
diff --git a/tools/metrics/histograms/histograms.xml b/tools/metrics/histograms/histograms.xml
index ed6d6f24..81ea290 100644
--- a/tools/metrics/histograms/histograms.xml
+++ b/tools/metrics/histograms/histograms.xml
@@ -90907,13 +90907,6 @@
   </affected-histogram>
 </histogram_suffixes>
 
-<histogram_suffixes name="PageLoadMetricsAfterBuffering" separator=".">
-  <suffix name="AfterBuffering"
-      label="Recorded after buffering of timing updates in the browser
-             process has completed."/>
-  <affected-histogram name="PageLoad.Internal.OutOfOrderInterFrameTiming"/>
-</histogram_suffixes>
-
 <histogram_suffixes name="PageLoadMetricsAfterPaint" separator=".">
   <suffix name="AfterPaint"
       label="Limited to the duration of time starting after first paint, for
@@ -92692,6 +92685,18 @@
   <affected-histogram name="Memory.Experimental.Renderer.V8MainThreadIsolate"/>
 </histogram_suffixes>
 
+<histogram_suffixes name="RendererScheduler.TaskDurationPerQueueTypeSplit"
+    separator=".">
+  <suffix name="Background"
+      label="Time spend in tasks of a particular type when the renderer is in
+             the background."/>
+  <suffix name="Foreground"
+      label="Time spent in tasks of a particular type when the renderer is in
+             the foreground. Please note that individual tabs in this
+             renderer can be backgrounded."/>
+  <affected-histogram name="RendererScheduler.TaskDurationPerQueueType2"/>
+</histogram_suffixes>
+
 <histogram_suffixes name="RequestMediaKeySystemAccessKeySystems" separator=".">
   <suffix name="ClearKey" label="Requests for the Clear Key key system."/>
   <suffix name="Unknown"
diff --git a/tools/perf/page_sets/loading_desktop.py b/tools/perf/page_sets/loading_desktop.py
index 1ee6f1c..9d266f5c 100644
--- a/tools/perf/page_sets/loading_desktop.py
+++ b/tools/perf/page_sets/loading_desktop.py
@@ -18,7 +18,8 @@
   def __init__(self, cache_temperatures=None):
     super(LoadingDesktopStorySet, self).__init__(
         archive_data_file='data/loading_desktop.json',
-        cloud_storage_bucket=story.PARTNER_BUCKET)
+        cloud_storage_bucket=story.PARTNER_BUCKET,
+        verify_names=True)
 
     if cache_temperatures is None:
       cache_temperatures = [
diff --git a/tools/perf/page_sets/trivial_sites.py b/tools/perf/page_sets/trivial_sites.py
index ae951d7..3ed2ac5 100644
--- a/tools/perf/page_sets/trivial_sites.py
+++ b/tools/perf/page_sets/trivial_sites.py
@@ -136,7 +136,8 @@
                wait_in_seconds=0, measure_memory=False):
     # Wait is time to wait_in_seconds on page in seconds.
     super(TrivialSitesStorySet, self).__init__(
-        cloud_storage_bucket=story.PUBLIC_BUCKET)
+        cloud_storage_bucket=story.PUBLIC_BUCKET,
+        verify_names=True)
     self.AddStory(TrivialScrollingPage(
         self, shared_state, wait_in_seconds, measure_memory))
     self.AddStory(TrivialBlinkingCursorPage(
diff --git a/tools/perf/page_sets/webrtc_cases.py b/tools/perf/page_sets/webrtc_cases.py
index cd7fb321..94d3c4b 100644
--- a/tools/perf/page_sets/webrtc_cases.py
+++ b/tools/perf/page_sets/webrtc_cases.py
@@ -122,7 +122,8 @@
 class WebrtcPageSet(story.StorySet):
   def __init__(self):
     super(WebrtcPageSet, self).__init__(
-        cloud_storage_bucket=story.PUBLIC_BUCKET)
+        cloud_storage_bucket=story.PUBLIC_BUCKET,
+        verify_names=True)
 
     self.AddStory(MultiplePeerConnections(self, tags=['stress']))
     self.AddStory(DataChannel(self, tags=['datachannel']))
diff --git a/ui/aura/BUILD.gn b/ui/aura/BUILD.gn
index ee5ce94..43e7845 100644
--- a/ui/aura/BUILD.gn
+++ b/ui/aura/BUILD.gn
@@ -7,14 +7,6 @@
 
 component("aura") {
   public = [
-    "../wm/public/activation_change_observer.h",
-    "../wm/public/activation_client.h",
-    "../wm/public/activation_delegate.h",
-    "../wm/public/animation_host.h",
-    "../wm/public/scoped_drag_drop_disabler.h",
-    "../wm/public/scoped_tooltip_disabler.h",
-    "../wm/public/tooltip_client.h",
-    "../wm/public/window_move_client.h",
     "client/aura_constants.h",
     "client/capture_client.h",
     "client/capture_client_observer.h",
@@ -85,14 +77,6 @@
     "window_tree_host_platform.h",
   ]
   sources = [
-    "../wm/public/activation_change_observer.cc",
-    "../wm/public/activation_client.cc",
-    "../wm/public/activation_delegate.cc",
-    "../wm/public/animation_host.cc",
-    "../wm/public/scoped_drag_drop_disabler.cc",
-    "../wm/public/scoped_tooltip_disabler.cc",
-    "../wm/public/tooltip_client.cc",
-    "../wm/public/window_move_client.cc",
     "client/aura_constants.cc",
     "client/capture_client.cc",
     "client/cursor_client.cc",
diff --git a/ui/aura/DEPS b/ui/aura/DEPS
index 26c68ef..d330b932 100644
--- a/ui/aura/DEPS
+++ b/ui/aura/DEPS
@@ -19,6 +19,4 @@
                        #             to ui/metro_viewer.
   "+ui/ozone/public",
   "+ui/platform_window",
-  "+ui/wm/public",
 ]
-
diff --git a/ui/aura/client/aura_constants.cc b/ui/aura/client/aura_constants.cc
index a3961e5..9b61b7a 100644
--- a/ui/aura/client/aura_constants.cc
+++ b/ui/aura/client/aura_constants.cc
@@ -37,6 +37,7 @@
 DEFINE_UI_CLASS_PROPERTY_KEY(bool, kAnimationsDisabledKey, false);
 DEFINE_OWNED_UI_CLASS_PROPERTY_KEY(gfx::ImageSkia, kAppIconKey, nullptr);
 DEFINE_UI_CLASS_PROPERTY_KEY(int, kAppType, 0);
+DEFINE_OWNED_UI_CLASS_PROPERTY_KEY(gfx::ImageSkia, kAvatarIconKey, nullptr);
 DEFINE_UI_CLASS_PROPERTY_KEY(bool, kConstrainedWindowKey, false);
 DEFINE_UI_CLASS_PROPERTY_KEY(bool, kCreatedByUserGesture, false);
 DEFINE_UI_CLASS_PROPERTY_KEY(bool, kDrawAttentionKey, false);
diff --git a/ui/aura/client/aura_constants.h b/ui/aura/client/aura_constants.h
index 361186b..cfe7c20 100644
--- a/ui/aura/client/aura_constants.h
+++ b/ui/aura/client/aura_constants.h
@@ -55,6 +55,10 @@
 // pointer metrics. See AppType in ash/shared/app_types.h for more details.
 AURA_EXPORT extern const WindowProperty<int>* const kAppType;
 
+// A property key to store the avatar icon that will be displayed on the window
+// frame to indicate the owner of the window when needed.
+AURA_EXPORT extern const WindowProperty<gfx::ImageSkia*>* const kAvatarIconKey;
+
 // A property key to store if a window is a constrained window or not.
 AURA_EXPORT extern const WindowProperty<bool>* const kConstrainedWindowKey;
 
diff --git a/ui/message_center/BUILD.gn b/ui/message_center/BUILD.gn
index 51f90da..52b0631 100644
--- a/ui/message_center/BUILD.gn
+++ b/ui/message_center/BUILD.gn
@@ -97,7 +97,10 @@
     sources += get_target_outputs(":message_center_vector_icons")
 
     if (is_win) {
-      deps += [ "//ui/aura" ]
+      deps += [
+        "//ui/aura",
+        "//ui/wm/public",
+      ]
     }
 
     if (is_mac) {
diff --git a/ui/views/BUILD.gn b/ui/views/BUILD.gn
index 388bbb5..143b513 100644
--- a/ui/views/BUILD.gn
+++ b/ui/views/BUILD.gn
@@ -587,6 +587,7 @@
       "//ui/aura",
       "//ui/touch_selection",
       "//ui/wm",
+      "//ui/wm/public",
     ]
     if (!is_chromeos) {
       if (use_x11) {
@@ -792,6 +793,7 @@
       "//ui/aura:test_support",
       "//ui/views/mus",
       "//ui/wm",
+      "//ui/wm/public",
     ]
     if (use_x11 && !is_chromeos) {
       sources += [
@@ -987,6 +989,7 @@
       "//ui/aura:test_support",
       "//ui/touch_selection",
       "//ui/wm",
+      "//ui/wm/public",
     ]
   }
 
diff --git a/ui/views/controls/menu/menu_pre_target_handler.cc b/ui/views/controls/menu/menu_pre_target_handler.cc
index 7ac7a3f..68c3c94 100644
--- a/ui/views/controls/menu/menu_pre_target_handler.cc
+++ b/ui/views/controls/menu/menu_pre_target_handler.cc
@@ -25,7 +25,7 @@
     : controller_(controller), root_(GetOwnerRootWindow(owner)) {
   aura::Env::GetInstanceDontCreate()->PrependPreTargetHandler(this);
   if (root_) {
-    aura::client::GetActivationClient(root_)->AddObserver(this);
+    wm::GetActivationClient(root_)->AddObserver(this);
     root_->AddObserver(this);
   }
 }
@@ -36,7 +36,7 @@
 }
 
 void MenuPreTargetHandler::OnWindowActivated(
-    aura::client::ActivationChangeObserver::ActivationReason reason,
+    wm::ActivationChangeObserver::ActivationReason reason,
     aura::Window* gained_active,
     aura::Window* lost_active) {
   if (!controller_->drag_in_progress())
@@ -59,8 +59,7 @@
   if (!root_)
     return;
   // The ActivationClient may have been destroyed by the time we get here.
-  aura::client::ActivationClient* client =
-      aura::client::GetActivationClient(root_);
+  wm::ActivationClient* client = wm::GetActivationClient(root_);
   if (client)
     client->RemoveObserver(this);
   root_->RemoveObserver(this);
diff --git a/ui/views/controls/menu/menu_pre_target_handler.h b/ui/views/controls/menu/menu_pre_target_handler.h
index 56bdd35..4ff27ddc 100644
--- a/ui/views/controls/menu/menu_pre_target_handler.h
+++ b/ui/views/controls/menu/menu_pre_target_handler.h
@@ -23,19 +23,17 @@
 // and root window destruction, to shutdown the menu.
 //
 // Additionally handles key events to provide accelerator support to menus.
-class VIEWS_EXPORT MenuPreTargetHandler
-    : public aura::client::ActivationChangeObserver,
-      public aura::WindowObserver,
-      public ui::EventHandler {
+class VIEWS_EXPORT MenuPreTargetHandler : public wm::ActivationChangeObserver,
+                                          public aura::WindowObserver,
+                                          public ui::EventHandler {
  public:
   MenuPreTargetHandler(MenuController* controller, Widget* owner);
   ~MenuPreTargetHandler() override;
 
   // aura::client:ActivationChangeObserver:
-  void OnWindowActivated(
-      aura::client::ActivationChangeObserver::ActivationReason reason,
-      aura::Window* gained_active,
-      aura::Window* lost_active) override;
+  void OnWindowActivated(wm::ActivationChangeObserver::ActivationReason reason,
+                         aura::Window* gained_active,
+                         aura::Window* lost_active) override;
 
   // aura::WindowObserver:
   void OnWindowDestroying(aura::Window* window) override;
diff --git a/ui/views/corewm/tooltip_controller.cc b/ui/views/corewm/tooltip_controller.cc
index e12582b..02cd71a 100644
--- a/ui/views/corewm/tooltip_controller.cc
+++ b/ui/views/corewm/tooltip_controller.cc
@@ -153,7 +153,7 @@
   // but over a different view, than back to the original.
   if (tooltip_window_at_mouse_press_ &&
       target == tooltip_window_at_mouse_press_ &&
-      aura::client::GetTooltipText(target) != tooltip_text_at_mouse_press_) {
+      wm::GetTooltipText(target) != tooltip_text_at_mouse_press_) {
     tooltip_window_at_mouse_press_ = NULL;
   }
 }
@@ -207,7 +207,7 @@
 
       if (tooltip_->IsVisible() ||
           (tooltip_window_ &&
-           tooltip_text_ != aura::client::GetTooltipText(tooltip_window_)))
+           tooltip_text_ != wm::GetTooltipText(tooltip_window_)))
         UpdateIfRequired();
       break;
     }
@@ -217,7 +217,7 @@
         // We don't get a release for non-client areas.
         tooltip_window_at_mouse_press_ = target;
         if (target)
-          tooltip_text_at_mouse_press_ = aura::client::GetTooltipText(target);
+          tooltip_text_at_mouse_press_ = wm::GetTooltipText(target);
       }
       tooltip_->Hide();
       break;
@@ -258,11 +258,10 @@
 void TooltipController::OnWindowPropertyChanged(aura::Window* window,
                                                 const void* key,
                                                 intptr_t old) {
-  if ((key == aura::client::kTooltipIdKey ||
-       key == aura::client::kTooltipTextKey) &&
-      aura::client::GetTooltipText(window) != base::string16() &&
-      (tooltip_text_ != aura::client::GetTooltipText(window) ||
-       tooltip_id_ != aura::client::GetTooltipId(window)))
+  if ((key == wm::kTooltipIdKey || key == wm::kTooltipTextKey) &&
+      wm::GetTooltipText(window) != base::string16() &&
+      (tooltip_text_ != wm::GetTooltipText(window) ||
+       tooltip_id_ != wm::GetTooltipId(window)))
     UpdateIfRequired();
 }
 
@@ -282,7 +281,7 @@
 
   base::string16 tooltip_text;
   if (tooltip_window_)
-    tooltip_text = aura::client::GetTooltipText(tooltip_window_);
+    tooltip_text = wm::GetTooltipText(tooltip_window_);
 
   // If the user pressed a mouse button. We will hide the tooltip and not show
   // it until there is a change in the tooltip.
@@ -297,7 +296,7 @@
 
   // If the uniqueness indicator is different from the previously encountered
   // one, we should force tooltip update
-  const void* tooltip_id = aura::client::GetTooltipId(tooltip_window_);
+  const void* tooltip_id = wm::GetTooltipId(tooltip_window_);
   bool ids_differ = false;
   ids_differ = tooltip_id_ != tooltip_id;
   tooltip_id_ = tooltip_id;
diff --git a/ui/views/corewm/tooltip_controller.h b/ui/views/corewm/tooltip_controller.h
index 68d3fb6..9259514 100644
--- a/ui/views/corewm/tooltip_controller.h
+++ b/ui/views/corewm/tooltip_controller.h
@@ -33,7 +33,7 @@
 
 // TooltipController provides tooltip functionality for aura.
 class VIEWS_EXPORT TooltipController
-    : public aura::client::TooltipClient,
+    : public wm::TooltipClient,
       public ui::EventHandler,
       public aura::client::CursorClientObserver,
       public aura::WindowObserver {
@@ -41,7 +41,7 @@
   explicit TooltipController(std::unique_ptr<Tooltip> tooltip);
   ~TooltipController() override;
 
-  // Overridden from aura::client::TooltipClient.
+  // Overridden from wm::TooltipClient.
   int GetMaxWidth(const gfx::Point& location) const override;
   void UpdateTooltip(aura::Window* target) override;
   void SetTooltipShownTimeout(aura::Window* target, int timeout_in_ms) override;
diff --git a/ui/views/corewm/tooltip_controller_unittest.cc b/ui/views/corewm/tooltip_controller_unittest.cc
index 49cc973e..0069e5f8 100644
--- a/ui/views/corewm/tooltip_controller_unittest.cc
+++ b/ui/views/corewm/tooltip_controller_unittest.cc
@@ -72,8 +72,7 @@
 
 TooltipController* GetController(Widget* widget) {
   return static_cast<TooltipController*>(
-      aura::client::GetTooltipClient(
-          widget->GetNativeWindow()->GetRootWindow()));
+      wm::GetTooltipClient(widget->GetNativeWindow()->GetRootWindow()));
 }
 
 }  // namespace
@@ -116,7 +115,7 @@
 #if defined(OS_CHROMEOS)
       aura::Window* root_window = GetContext();
       root_window->RemovePreTargetHandler(controller_.get());
-      aura::client::SetTooltipClient(root_window, NULL);
+      wm::SetTooltipClient(root_window, NULL);
       controller_.reset();
 #endif
       generator_.reset();
@@ -193,7 +192,7 @@
   EXPECT_EQ(GetWindow(), GetRootWindow()->GetEventHandlerForPoint(
       generator_->current_location()));
   base::string16 expected_tooltip = ASCIIToUTF16("Tooltip Text");
-  EXPECT_EQ(expected_tooltip, aura::client::GetTooltipText(GetWindow()));
+  EXPECT_EQ(expected_tooltip, wm::GetTooltipText(GetWindow()));
   EXPECT_EQ(expected_tooltip, helper_->GetTooltipText());
   EXPECT_EQ(GetWindow(), helper_->GetTooltipWindow());
 
@@ -201,7 +200,7 @@
   generator_->MoveMouseBy(1, 0);
 
   EXPECT_TRUE(helper_->IsTooltipVisible());
-  EXPECT_EQ(expected_tooltip, aura::client::GetTooltipText(GetWindow()));
+  EXPECT_EQ(expected_tooltip, wm::GetTooltipText(GetWindow()));
   EXPECT_EQ(expected_tooltip, helper_->GetTooltipText());
   EXPECT_EQ(GetWindow(), helper_->GetTooltipWindow());
 }
@@ -246,7 +245,7 @@
   generator_->MoveMouseBy(1, 0);
   EXPECT_TRUE(helper_->IsTooltipVisible());
   base::string16 expected_tooltip = ASCIIToUTF16("Tooltip Text");
-  EXPECT_EQ(expected_tooltip, aura::client::GetTooltipText(GetWindow()));
+  EXPECT_EQ(expected_tooltip, wm::GetTooltipText(GetWindow()));
   EXPECT_EQ(expected_tooltip, helper_->GetTooltipText());
   EXPECT_EQ(GetWindow(), helper_->GetTooltipWindow());
 }
@@ -298,7 +297,7 @@
     EXPECT_EQ(window, root_window->GetEventHandlerForPoint(
             generator_->current_location()));
     base::string16 expected_tooltip = ASCIIToUTF16("Tooltip Text");
-    EXPECT_EQ(expected_tooltip, aura::client::GetTooltipText(window));
+    EXPECT_EQ(expected_tooltip, wm::GetTooltipText(window));
     EXPECT_EQ(expected_tooltip, helper_->GetTooltipText());
     EXPECT_EQ(window, helper_->GetTooltipWindow());
   }
@@ -308,7 +307,7 @@
     EXPECT_EQ(window, root_window->GetEventHandlerForPoint(
             generator_->current_location()));
     base::string16 expected_tooltip;  // = ""
-    EXPECT_EQ(expected_tooltip, aura::client::GetTooltipText(window));
+    EXPECT_EQ(expected_tooltip, wm::GetTooltipText(window));
     EXPECT_EQ(expected_tooltip, helper_->GetTooltipText());
     EXPECT_EQ(window, helper_->GetTooltipWindow());
   }
@@ -388,7 +387,7 @@
               GetRootWindow()->GetEventHandlerForPoint(
                   generator_->current_location()));
     base::string16 expected_tooltip = ASCIIToUTF16("Tooltip Text for view 1");
-    EXPECT_EQ(expected_tooltip, aura::client::GetTooltipText(window));
+    EXPECT_EQ(expected_tooltip, wm::GetTooltipText(window));
     EXPECT_EQ(expected_tooltip, helper_->GetTooltipText());
     EXPECT_EQ(window, helper_->GetTooltipWindow());
   }
@@ -399,7 +398,7 @@
   EXPECT_TRUE(helper_->IsTooltipVisible());
   EXPECT_TRUE(helper_->IsTooltipShownTimerRunning());
   base::string16 expected_tooltip = ASCIIToUTF16("Tooltip Text for view 2");
-  EXPECT_EQ(expected_tooltip, aura::client::GetTooltipText(window));
+  EXPECT_EQ(expected_tooltip, wm::GetTooltipText(window));
   EXPECT_EQ(expected_tooltip, helper_->GetTooltipText());
   EXPECT_EQ(window, helper_->GetTooltipWindow());
 }
@@ -437,7 +436,7 @@
     EXPECT_EQ(window, GetRootWindow()->GetEventHandlerForPoint(
                   generator_->current_location()));
     base::string16 expected_tooltip = ASCIIToUTF16("Tooltip Text for view 1");
-    EXPECT_EQ(expected_tooltip, aura::client::GetTooltipText(window));
+    EXPECT_EQ(expected_tooltip, wm::GetTooltipText(window));
     EXPECT_EQ(expected_tooltip, helper_->GetTooltipText());
     EXPECT_EQ(window, helper_->GetTooltipWindow());
   }
@@ -448,7 +447,7 @@
   EXPECT_TRUE(helper_->IsTooltipVisible());
   EXPECT_TRUE(helper_->IsTooltipShownTimerRunning());
   base::string16 expected_tooltip = ASCIIToUTF16("Tooltip Text for view 2");
-  EXPECT_EQ(expected_tooltip, aura::client::GetTooltipText(window));
+  EXPECT_EQ(expected_tooltip, wm::GetTooltipText(window));
   EXPECT_EQ(expected_tooltip, helper_->GetTooltipText());
   EXPECT_EQ(window, helper_->GetTooltipWindow());
 }
@@ -463,7 +462,7 @@
   view_->set_tooltip_text(ASCIIToUTF16("Tooltip Text"));
   generator_->MoveMouseToCenterOf(GetWindow());
   base::string16 expected_tooltip = ASCIIToUTF16("Tooltip Text");
-  EXPECT_EQ(expected_tooltip, aura::client::GetTooltipText(GetWindow()));
+  EXPECT_EQ(expected_tooltip, wm::GetTooltipText(GetWindow()));
   EXPECT_EQ(expected_tooltip, helper_->GetTooltipText());
   EXPECT_EQ(GetWindow(), helper_->GetTooltipWindow());
 
@@ -568,7 +567,7 @@
   view_->set_tooltip_text(ASCIIToUTF16("Tooltip Text"));
   generator_->MoveMouseToCenterOf(GetWindow());
   base::string16 expected_tooltip = ASCIIToUTF16("Tooltip Text");
-  EXPECT_EQ(expected_tooltip, aura::client::GetTooltipText(GetWindow()));
+  EXPECT_EQ(expected_tooltip, wm::GetTooltipText(GetWindow()));
   EXPECT_EQ(base::string16(), helper_->GetTooltipText());
   EXPECT_EQ(GetWindow(), helper_->GetTooltipWindow());
 
@@ -689,7 +688,7 @@
 
   void TearDown() override {
     root_window()->RemovePreTargetHandler(controller_.get());
-    aura::client::SetTooltipClient(root_window(), NULL);
+    wm::SetTooltipClient(root_window(), NULL);
     controller_.reset();
     generator_.reset();
     helper_.reset();
@@ -714,7 +713,7 @@
       CreateNormalWindow(100, root_window(), &test_delegate));
   window->SetBounds(gfx::Rect(0, 0, 300, 300));
   base::string16 tooltip_text(ASCIIToUTF16(" \nx  "));
-  aura::client::SetTooltipText(window.get(), &tooltip_text);
+  wm::SetTooltipText(window.get(), &tooltip_text);
   EXPECT_FALSE(helper_->IsTooltipVisible());
   generator_->MoveMouseToCenterOf(window.get());
   EXPECT_EQ(ASCIIToUTF16("x"), test_tooltip_->tooltip_text());
@@ -727,7 +726,7 @@
       CreateNormalWindow(100, root_window(), &test_delegate));
   window->SetBounds(gfx::Rect(0, 0, 300, 300));
   base::string16 tooltip_text(ASCIIToUTF16("Tooltip Text"));
-  aura::client::SetTooltipText(window.get(), &tooltip_text);
+  wm::SetTooltipText(window.get(), &tooltip_text);
   EXPECT_FALSE(helper_->IsTooltipVisible());
   generator_->MoveMouseToCenterOf(window.get());
 
@@ -767,9 +766,8 @@
     generator_.reset(new ui::test::EventGenerator(GetRootWindow()));
     controller_.reset(new TooltipController(
         std::unique_ptr<views::corewm::Tooltip>(test_tooltip_)));
-    GetRootWindow()->RemovePreTargetHandler(
-        static_cast<TooltipController*>(aura::client::GetTooltipClient(
-            widget_->GetNativeWindow()->GetRootWindow())));
+    GetRootWindow()->RemovePreTargetHandler(static_cast<TooltipController*>(
+        wm::GetTooltipClient(widget_->GetNativeWindow()->GetRootWindow())));
     GetRootWindow()->AddPreTargetHandler(controller_.get());
     helper_.reset(new TooltipControllerTestHelper(controller_.get()));
     SetTooltipClient(GetRootWindow(), controller_.get());
@@ -778,7 +776,7 @@
   void TearDown() override {
     if (!IsMus()) {
       GetRootWindow()->RemovePreTargetHandler(controller_.get());
-      aura::client::SetTooltipClient(GetRootWindow(), NULL);
+      wm::SetTooltipClient(GetRootWindow(), NULL);
 
       controller_.reset();
       generator_.reset();
diff --git a/ui/views/layout/layout_provider.cc b/ui/views/layout/layout_provider.cc
index af62c00..11412ca 100644
--- a/ui/views/layout/layout_provider.cc
+++ b/ui/views/layout/layout_provider.cc
@@ -104,7 +104,13 @@
 }
 
 int LayoutProvider::GetSnappedDialogWidth(int min_width) const {
-  return min_width;
+  // This is an arbitrary value, but it's a good arbitrary value. Some dialogs
+  // have very small widths for their contents views, which causes ugly
+  // title-wrapping where a two-word title is split across multiple lines or
+  // similar. To prevent that, forbid any snappable dialog from being narrower
+  // than this value. In principle it's possible to factor in the title width
+  // here, but it is not really worth the complexity.
+  return std::max(min_width, 320);
 }
 
 }  // namespace views
diff --git a/ui/views/mus/BUILD.gn b/ui/views/mus/BUILD.gn
index 4822b66..87bb728 100644
--- a/ui/views/mus/BUILD.gn
+++ b/ui/views/mus/BUILD.gn
@@ -76,6 +76,7 @@
     "//ui/platform_window/stub",
     "//ui/views",
     "//ui/wm",
+    "//ui/wm/public",
   ]
 
   if (is_linux && !is_android) {
@@ -255,6 +256,7 @@
     "//ui/views",
     "//ui/views:test_support_internal",
     "//ui/wm",
+    "//ui/wm/public",
   ]
 
   data_deps = [
diff --git a/ui/views/widget/desktop_aura/desktop_native_widget_aura.cc b/ui/views/widget/desktop_aura/desktop_native_widget_aura.cc
index 18bc4d0..b1f2574c 100644
--- a/ui/views/widget/desktop_aura/desktop_native_widget_aura.cc
+++ b/ui/views/widget/desktop_aura/desktop_native_widget_aura.cc
@@ -247,7 +247,7 @@
       widget_type_(Widget::InitParams::TYPE_WINDOW),
       close_widget_factory_(this) {
   aura::client::SetFocusChangeObserver(content_window_, this);
-  aura::client::SetActivationChangeObserver(content_window_, this);
+  wm::SetActivationChangeObserver(content_window_, this);
 }
 
 DesktopNativeWidgetAura::~DesktopNativeWidgetAura() {
@@ -293,7 +293,7 @@
   tooltip_manager_.reset();
   if (tooltip_controller_.get()) {
     host_->window()->RemovePreTargetHandler(tooltip_controller_.get());
-    aura::client::SetTooltipClient(host_->window(), NULL);
+    wm::SetTooltipClient(host_->window(), NULL);
     tooltip_controller_.reset();
   }
 
@@ -309,7 +309,7 @@
   // have been destroyed.
   host_->window()->RemovePreTargetHandler(focus_client_.get());
   aura::client::SetFocusClient(host_->window(), NULL);
-  aura::client::SetActivationClient(host_->window(), NULL);
+  wm::SetActivationClient(host_->window(), NULL);
   focus_client_.reset();
 
   host_->RemoveObserver(this);
@@ -348,8 +348,8 @@
 
 void DesktopNativeWidgetAura::HandleActivationChanged(bool active) {
   native_widget_delegate_->OnNativeWidgetActivationChanged(active);
-  aura::client::ActivationClient* activation_client =
-      aura::client::GetActivationClient(host_->window());
+  wm::ActivationClient* activation_client =
+      wm::GetActivationClient(host_->window());
   if (!activation_client)
     return;
   if (active) {
@@ -488,7 +488,7 @@
       new wm::FocusController(new DesktopFocusRules(content_window_));
   focus_client_.reset(focus_controller);
   aura::client::SetFocusClient(host_->window(), focus_controller);
-  aura::client::SetActivationClient(host_->window(), focus_controller);
+  wm::SetActivationClient(host_->window(), focus_controller);
   host_->window()->AddPreTargetHandler(focus_controller);
 
   position_client_.reset(new DesktopScreenPositionClient(host_->window()));
@@ -516,8 +516,7 @@
     tooltip_controller_.reset(
         new corewm::TooltipController(
             desktop_window_tree_host_->CreateTooltip()));
-    aura::client::SetTooltipClient(host_->window(),
-                                   tooltip_controller_.get());
+    wm::SetTooltipClient(host_->window(), tooltip_controller_.get());
     host_->window()->AddPreTargetHandler(tooltip_controller_.get());
   }
 
@@ -539,10 +538,10 @@
 
   aura::client::GetFocusClient(content_window_)->FocusWindow(content_window_);
 
-  aura::client::SetActivationDelegate(content_window_, this);
+  wm::SetActivationDelegate(content_window_, this);
 
-  shadow_controller_.reset(new wm::ShadowController(
-      aura::client::GetActivationClient(host_->window())));
+  shadow_controller_.reset(
+      new wm::ShadowController(wm::GetActivationClient(host_->window())));
 
   OnSizeConstraintsChanged();
 
@@ -1078,18 +1077,17 @@
 }
 
 ////////////////////////////////////////////////////////////////////////////////
-// DesktopNativeWidgetAura, aura::client::ActivationDelegate implementation:
+// DesktopNativeWidgetAura, wm::ActivationDelegate implementation:
 
 bool DesktopNativeWidgetAura::ShouldActivate() const {
   return native_widget_delegate_->CanActivate();
 }
 
 ////////////////////////////////////////////////////////////////////////////////
-// DesktopNativeWidgetAura, aura::client::ActivationChangeObserver
-//    implementation:
+// DesktopNativeWidgetAura, wmActivationChangeObserver implementation:
 
 void DesktopNativeWidgetAura::OnWindowActivated(
-    aura::client::ActivationChangeObserver::ActivationReason reason,
+    wm::ActivationChangeObserver::ActivationReason reason,
     aura::Window* gained_active,
     aura::Window* lost_active) {
   DCHECK(content_window_ == gained_active || content_window_ == lost_active);
diff --git a/ui/views/widget/desktop_aura/desktop_native_widget_aura.h b/ui/views/widget/desktop_aura/desktop_native_widget_aura.h
index 5a5fc37..6d57e5e 100644
--- a/ui/views/widget/desktop_aura/desktop_native_widget_aura.h
+++ b/ui/views/widget/desktop_aura/desktop_native_widget_aura.h
@@ -54,8 +54,8 @@
 class VIEWS_EXPORT DesktopNativeWidgetAura
     : public internal::NativeWidgetPrivate,
       public aura::WindowDelegate,
-      public aura::client::ActivationDelegate,
-      public aura::client::ActivationChangeObserver,
+      public wm::ActivationDelegate,
+      public wm::ActivationChangeObserver,
       public aura::client::FocusChangeObserver,
       public aura::client::DragDropDelegate,
       public aura::WindowTreeHostObserver {
@@ -212,14 +212,13 @@
   void OnScrollEvent(ui::ScrollEvent* event) override;
   void OnGestureEvent(ui::GestureEvent* event) override;
 
-  // Overridden from aura::client::ActivationDelegate:
+  // Overridden from wm::ActivationDelegate:
   bool ShouldActivate() const override;
 
-  // Overridden from aura::client::ActivationChangeObserver:
-  void OnWindowActivated(
-      aura::client::ActivationChangeObserver::ActivationReason reason,
-      aura::Window* gained_active,
-      aura::Window* lost_active) override;
+  // Overridden from wm::ActivationChangeObserver:
+  void OnWindowActivated(wm::ActivationChangeObserver::ActivationReason reason,
+                         aura::Window* gained_active,
+                         aura::Window* lost_active) override;
 
   // Overridden from aura::client::FocusChangeObserver:
   void OnWindowFocused(aura::Window* gained_focus,
diff --git a/ui/views/widget/desktop_aura/desktop_window_tree_host_win.cc b/ui/views/widget/desktop_aura/desktop_window_tree_host_win.cc
index e99be28..8295d4d 100644
--- a/ui/views/widget/desktop_aura/desktop_window_tree_host_win.cc
+++ b/ui/views/widget/desktop_aura/desktop_window_tree_host_win.cc
@@ -113,7 +113,7 @@
   content_window_ = content_window;
   wants_mouse_events_when_inactive_ = params.wants_mouse_events_when_inactive;
 
-  aura::client::SetAnimationHost(content_window_, this);
+  wm::SetAnimationHost(content_window_, this);
 
   ConfigureWindowStyles(message_handler_.get(), params,
                         GetWidget()->widget_delegate(),
@@ -581,7 +581,7 @@
 }
 
 ////////////////////////////////////////////////////////////////////////////////
-// DesktopWindowTreeHostWin, aura::AnimationHost implementation:
+// DesktopWindowTreeHostWin, wm::AnimationHost implementation:
 
 void DesktopWindowTreeHostWin::SetHostTransitionOffsets(
     const gfx::Vector2d& top_left_delta,
@@ -901,8 +901,7 @@
 
 void DesktopWindowTreeHostWin::HandleMenuLoop(bool in_menu_loop) {
   if (in_menu_loop) {
-    tooltip_disabler_.reset(
-        new aura::client::ScopedTooltipDisabler(window()));
+    tooltip_disabler_.reset(new wm::ScopedTooltipDisabler(window()));
   } else {
     tooltip_disabler_.reset();
   }
diff --git a/ui/views/widget/desktop_aura/desktop_window_tree_host_win.h b/ui/views/widget/desktop_aura/desktop_window_tree_host_win.h
index 12d0616..6099dc1 100644
--- a/ui/views/widget/desktop_aura/desktop_window_tree_host_win.h
+++ b/ui/views/widget/desktop_aura/desktop_window_tree_host_win.h
@@ -16,10 +16,13 @@
 namespace client {
 class DragDropClient;
 class FocusClient;
-class ScopedTooltipDisabler;
 }
 }
 
+namespace wm {
+class ScopedTooltipDisabler;
+}
+
 namespace views {
 class DesktopDragDropClientWin;
 class HWNDMessageHandler;
@@ -31,7 +34,7 @@
 
 class VIEWS_EXPORT DesktopWindowTreeHostWin
     : public DesktopWindowTreeHost,
-      public aura::client::AnimationHost,
+      public wm::AnimationHost,
       public aura::WindowTreeHost,
       public HWNDMessageHandlerDelegate {
  public:
@@ -266,7 +269,7 @@
   // whenever the cursor visibility state changes.
   static bool is_cursor_visible_;
 
-  std::unique_ptr<aura::client::ScopedTooltipDisabler> tooltip_disabler_;
+  std::unique_ptr<wm::ScopedTooltipDisabler> tooltip_disabler_;
 
   // Indicates if current window will receive mouse events when should not
   // become activated.
diff --git a/ui/views/widget/desktop_aura/desktop_window_tree_host_x11.cc b/ui/views/widget/desktop_aura/desktop_window_tree_host_x11.cc
index e7fd89c8..d6d99392 100644
--- a/ui/views/widget/desktop_aura/desktop_window_tree_host_x11.cc
+++ b/ui/views/widget/desktop_aura/desktop_window_tree_host_x11.cc
@@ -216,7 +216,7 @@
 
 DesktopWindowTreeHostX11::~DesktopWindowTreeHostX11() {
   window()->ClearProperty(kHostForRootWindow);
-  aura::client::SetWindowMoveClient(window(), NULL);
+  wm::SetWindowMoveClient(window(), NULL);
   desktop_native_widget_aura_->OnDesktopWindowTreeHostDestroyed(this);
   DestroyDispatcher();
 }
@@ -477,7 +477,7 @@
                     !params.remove_standard_frame);
 
   x11_window_move_client_.reset(new X11DesktopWindowMoveClient);
-  aura::client::SetWindowMoveClient(window(), x11_window_move_client_.get());
+  wm::SetWindowMoveClient(window(), x11_window_move_client_.get());
 
   SetWindowTransparency();
 
@@ -988,12 +988,12 @@
     const gfx::Vector2d& drag_offset,
     Widget::MoveLoopSource source,
     Widget::MoveLoopEscapeBehavior escape_behavior) {
-  aura::client::WindowMoveSource window_move_source =
-      source == Widget::MOVE_LOOP_SOURCE_MOUSE ?
-      aura::client::WINDOW_MOVE_SOURCE_MOUSE :
-      aura::client::WINDOW_MOVE_SOURCE_TOUCH;
+  wm::WindowMoveSource window_move_source =
+      source == Widget::MOVE_LOOP_SOURCE_MOUSE ? wm::WINDOW_MOVE_SOURCE_MOUSE
+                                               : wm::WINDOW_MOVE_SOURCE_TOUCH;
   if (x11_window_move_client_->RunMoveLoop(content_window_, drag_offset,
-      window_move_source) == aura::client::MOVE_SUCCESSFUL)
+                                           window_move_source) ==
+      wm::MOVE_SUCCESSFUL)
     return Widget::MOVE_LOOP_SUCCESSFUL;
 
   return Widget::MOVE_LOOP_CANCELED;
diff --git a/ui/views/widget/desktop_aura/x11_desktop_window_move_client.cc b/ui/views/widget/desktop_aura/x11_desktop_window_move_client.cc
index 1c1e3c6..86cd9521 100644
--- a/ui/views/widget/desktop_aura/x11_desktop_window_move_client.cc
+++ b/ui/views/widget/desktop_aura/x11_desktop_window_move_client.cc
@@ -41,18 +41,18 @@
 }
 
 ////////////////////////////////////////////////////////////////////////////////
-// DesktopWindowTreeHostLinux, aura::client::WindowMoveClient implementation:
+// DesktopWindowTreeHostLinux, wm::WindowMoveClient implementation:
 
-aura::client::WindowMoveResult X11DesktopWindowMoveClient::RunMoveLoop(
+wm::WindowMoveResult X11DesktopWindowMoveClient::RunMoveLoop(
     aura::Window* source,
     const gfx::Vector2d& drag_offset,
-    aura::client::WindowMoveSource move_source) {
+    wm::WindowMoveSource move_source) {
   window_offset_ = drag_offset;
   host_ = source->GetHost();
 
   source->SetCapture();
   bool success = move_loop_.RunMoveLoop(source, host_->last_cursor());
-  return success ? aura::client::MOVE_SUCCESSFUL : aura::client::MOVE_CANCELED;
+  return success ? wm::MOVE_SUCCESSFUL : wm::MOVE_CANCELED;
 }
 
 void X11DesktopWindowMoveClient::EndMoveLoop() {
diff --git a/ui/views/widget/desktop_aura/x11_desktop_window_move_client.h b/ui/views/widget/desktop_aura/x11_desktop_window_move_client.h
index b9c4de8..7868c49 100644
--- a/ui/views/widget/desktop_aura/x11_desktop_window_move_client.h
+++ b/ui/views/widget/desktop_aura/x11_desktop_window_move_client.h
@@ -23,9 +23,9 @@
 namespace views {
 
 // When we're dragging tabs, we need to manually position our window.
-class VIEWS_EXPORT X11DesktopWindowMoveClient :
-      public views::X11MoveLoopDelegate,
-      public aura::client::WindowMoveClient {
+class VIEWS_EXPORT X11DesktopWindowMoveClient
+    : public views::X11MoveLoopDelegate,
+      public wm::WindowMoveClient {
  public:
   X11DesktopWindowMoveClient();
   ~X11DesktopWindowMoveClient() override;
@@ -37,11 +37,10 @@
   void OnMouseReleased() override;
   void OnMoveLoopEnded() override;
 
-  // Overridden from aura::client::WindowMoveClient:
-  aura::client::WindowMoveResult RunMoveLoop(
-      aura::Window* window,
-      const gfx::Vector2d& drag_offset,
-      aura::client::WindowMoveSource move_source) override;
+  // Overridden from wm::WindowMoveClient:
+  wm::WindowMoveResult RunMoveLoop(aura::Window* window,
+                                   const gfx::Vector2d& drag_offset,
+                                   wm::WindowMoveSource move_source) override;
   void EndMoveLoop() override;
 
  private:
diff --git a/ui/views/widget/native_widget_aura.cc b/ui/views/widget/native_widget_aura.cc
index a58a72c6..90cd8ab6 100644
--- a/ui/views/widget/native_widget_aura.cc
+++ b/ui/views/widget/native_widget_aura.cc
@@ -111,7 +111,7 @@
       cursor_(gfx::kNullCursor),
       close_widget_factory_(this) {
   aura::client::SetFocusChangeObserver(window_, this);
-  aura::client::SetActivationChangeObserver(window_, this);
+  wm::SetActivationChangeObserver(window_, this);
 }
 
 // static
@@ -159,7 +159,7 @@
   aura::SetWindowType(window_, static_cast<ui::mojom::WindowType>(params.type));
   window_->SetProperty(aura::client::kShowStateKey, params.show_state);
   if (params.type == Widget::InitParams::TYPE_BUBBLE)
-    aura::client::SetHideOnDeactivate(window_, true);
+    wm::SetHideOnDeactivate(window_, true);
   window_->SetTransparent(
       params.opacity == Widget::InitParams::TRANSLUCENT_WINDOW);
   window_->Init(params.layer_type);
@@ -242,7 +242,7 @@
         base::MakeUnique<FocusManagerEventHandler>(GetWidget(), window_);
   }
 
-  aura::client::SetActivationDelegate(window_, this);
+  wm::SetActivationDelegate(window_, this);
 
   window_reorderer_.reset(new WindowReorderer(window_,
       GetWidget()->GetRootView()));
@@ -569,8 +569,7 @@
   // We don't necessarily have a root window yet. This can happen with
   // constrained windows.
   if (window_->GetRootWindow()) {
-    aura::client::GetActivationClient(window_->GetRootWindow())->ActivateWindow(
-        window_);
+    wm::GetActivationClient(window_->GetRootWindow())->ActivateWindow(window_);
   }
   if (window_->GetProperty(aura::client::kDrawAttentionKey))
     window_->SetProperty(aura::client::kDrawAttentionKey, false);
@@ -579,8 +578,7 @@
 void NativeWidgetAura::Deactivate() {
   if (!window_)
     return;
-  aura::client::GetActivationClient(window_->GetRootWindow())->DeactivateWindow(
-      window_);
+  wm::GetActivationClient(window_->GetRootWindow())->DeactivateWindow(window_);
 }
 
 bool NativeWidgetAura::IsActive() const {
@@ -703,18 +701,17 @@
   // loop.
   if (!window_ || !window_->GetRootWindow())
     return Widget::MOVE_LOOP_CANCELED;
-  aura::client::WindowMoveClient* move_client =
-      aura::client::GetWindowMoveClient(window_->GetRootWindow());
+  wm::WindowMoveClient* move_client =
+      wm::GetWindowMoveClient(window_->GetRootWindow());
   if (!move_client)
     return Widget::MOVE_LOOP_CANCELED;
 
   SetCapture();
-  aura::client::WindowMoveSource window_move_source =
-      source == Widget::MOVE_LOOP_SOURCE_MOUSE ?
-      aura::client::WINDOW_MOVE_SOURCE_MOUSE :
-      aura::client::WINDOW_MOVE_SOURCE_TOUCH;
+  wm::WindowMoveSource window_move_source =
+      source == Widget::MOVE_LOOP_SOURCE_MOUSE ? wm::WINDOW_MOVE_SOURCE_MOUSE
+                                               : wm::WINDOW_MOVE_SOURCE_TOUCH;
   if (move_client->RunMoveLoop(window_, drag_offset, window_move_source) ==
-          aura::client::MOVE_SUCCESSFUL) {
+      wm::MOVE_SUCCESSFUL) {
     return Widget::MOVE_LOOP_SUCCESSFUL;
   }
   return Widget::MOVE_LOOP_CANCELED;
@@ -723,8 +720,8 @@
 void NativeWidgetAura::EndMoveLoop() {
   if (!window_ || !window_->GetRootWindow())
     return;
-  aura::client::WindowMoveClient* move_client =
-      aura::client::GetWindowMoveClient(window_->GetRootWindow());
+  wm::WindowMoveClient* move_client =
+      wm::GetWindowMoveClient(window_->GetRootWindow());
   if (move_client)
     move_client->EndMoveLoop();
 }
@@ -918,17 +915,17 @@
 }
 
 ////////////////////////////////////////////////////////////////////////////////
-// NativeWidgetAura, aura::client::ActivationDelegate implementation:
+// NativeWidgetAura, wm::ActivationDelegate implementation:
 
 bool NativeWidgetAura::ShouldActivate() const {
   return delegate_->CanActivate();
 }
 
 ////////////////////////////////////////////////////////////////////////////////
-// NativeWidgetAura, aura::client::ActivationChangeObserver implementation:
+// NativeWidgetAura, wm::ActivationChangeObserver implementation:
 
 void NativeWidgetAura::OnWindowActivated(
-    aura::client::ActivationChangeObserver::ActivationReason,
+    wm::ActivationChangeObserver::ActivationReason,
     aura::Window* gained_active,
     aura::Window* lost_active) {
   DCHECK(window_ == gained_active || window_ == lost_active);
diff --git a/ui/views/widget/native_widget_aura.h b/ui/views/widget/native_widget_aura.h
index 9eeaac5..f556bcc 100644
--- a/ui/views/widget/native_widget_aura.h
+++ b/ui/views/widget/native_widget_aura.h
@@ -31,14 +31,13 @@
 class TooltipManagerAura;
 class WindowReorderer;
 
-class VIEWS_EXPORT NativeWidgetAura
-    : public internal::NativeWidgetPrivate,
-      public aura::WindowDelegate,
-      public aura::WindowObserver,
-      public aura::client::ActivationDelegate,
-      public aura::client::ActivationChangeObserver,
-      public aura::client::FocusChangeObserver,
-      public aura::client::DragDropDelegate {
+class VIEWS_EXPORT NativeWidgetAura : public internal::NativeWidgetPrivate,
+                                      public aura::WindowDelegate,
+                                      public aura::WindowObserver,
+                                      public wm::ActivationDelegate,
+                                      public wm::ActivationChangeObserver,
+                                      public aura::client::FocusChangeObserver,
+                                      public aura::client::DragDropDelegate {
  public:
   // |is_parallel_widget_in_window_manager| is true only when this
   // NativeWidgetAura is created in the window manager to represent a client
@@ -179,14 +178,13 @@
   void OnScrollEvent(ui::ScrollEvent* event) override;
   void OnGestureEvent(ui::GestureEvent* event) override;
 
-  // Overridden from aura::client::ActivationDelegate:
+  // Overridden from wm::ActivationDelegate:
   bool ShouldActivate() const override;
 
-  // Overridden from aura::client::ActivationChangeObserver:
-  void OnWindowActivated(
-      aura::client::ActivationChangeObserver::ActivationReason reason,
-      aura::Window* gained_active,
-      aura::Window* lost_active) override;
+  // Overridden from wm::ActivationChangeObserver:
+  void OnWindowActivated(wm::ActivationChangeObserver::ActivationReason reason,
+                         aura::Window* gained_active,
+                         aura::Window* lost_active) override;
 
   // Overridden from aura::client::FocusChangeObserver:
   void OnWindowFocused(aura::Window* gained_focus,
diff --git a/ui/views/widget/native_widget_aura_interactive_uitest.cc b/ui/views/widget/native_widget_aura_interactive_uitest.cc
index 468ff869..4d7ddd72 100644
--- a/ui/views/widget/native_widget_aura_interactive_uitest.cc
+++ b/ui/views/widget/native_widget_aura_interactive_uitest.cc
@@ -58,7 +58,7 @@
   TestFocusRules* test_focus_rules = new TestFocusRules;
   std::unique_ptr<wm::FocusController> focus_controller =
       base::MakeUnique<wm::FocusController>(test_focus_rules);
-  aura::client::SetActivationClient(GetContext(), focus_controller.get());
+  wm::SetActivationClient(GetContext(), focus_controller.get());
 
   Widget* widget1 = new Widget;
   Widget::InitParams params1(Widget::InitParams::TYPE_WINDOW_FRAMELESS);
diff --git a/ui/views/widget/native_widget_aura_unittest.cc b/ui/views/widget/native_widget_aura_unittest.cc
index d338942..b4fcc0a 100644
--- a/ui/views/widget/native_widget_aura_unittest.cc
+++ b/ui/views/widget/native_widget_aura_unittest.cc
@@ -76,7 +76,7 @@
     AuraTestBase::SetUp();
     test_focus_rules_ = new TestFocusRules;
     focus_controller_.reset(new wm::FocusController(test_focus_rules_));
-    aura::client::SetActivationClient(root_window(), focus_controller_.get());
+    wm::SetActivationClient(root_window(), focus_controller_.get());
     host()->SetBoundsInPixels(gfx::Rect(640, 480));
   }
 
diff --git a/ui/views/widget/tooltip_manager_aura.cc b/ui/views/widget/tooltip_manager_aura.cc
index 90b6e06..dde96c1 100644
--- a/ui/views/widget/tooltip_manager_aura.cc
+++ b/ui/views/widget/tooltip_manager_aura.cc
@@ -20,11 +20,11 @@
 // TooltipManagerAura public:
 
 TooltipManagerAura::TooltipManagerAura(Widget* widget) : widget_(widget) {
-  aura::client::SetTooltipText(GetWindow(), &tooltip_text_);
+  wm::SetTooltipText(GetWindow(), &tooltip_text_);
 }
 
 TooltipManagerAura::~TooltipManagerAura() {
-  aura::client::SetTooltipText(GetWindow(), NULL);
+  wm::SetTooltipText(GetWindow(), NULL);
 }
 
 // static
@@ -82,14 +82,13 @@
 }
 
 int TooltipManagerAura::GetMaxWidth(const gfx::Point& point) const {
-  return aura::client::GetTooltipClient(
-             widget_->GetNativeView()->GetRootWindow())
+  return wm::GetTooltipClient(widget_->GetNativeView()->GetRootWindow())
       ->GetMaxWidth(point);
 }
 
 void TooltipManagerAura::UpdateTooltip() {
   aura::Window* root_window = GetWindow()->GetRootWindow();
-  if (aura::client::GetTooltipClient(root_window)) {
+  if (wm::GetTooltipClient(root_window)) {
     if (!widget_->IsVisible()) {
       UpdateTooltipForTarget(NULL, gfx::Point(), root_window);
       return;
@@ -104,7 +103,7 @@
 
 void TooltipManagerAura::TooltipTextChanged(View* view)  {
   aura::Window* root_window = GetWindow()->GetRootWindow();
-  if (aura::client::GetTooltipClient(root_window)) {
+  if (wm::GetTooltipClient(root_window)) {
     gfx::Point view_point =
         root_window->GetHost()->dispatcher()->GetLastMouseLocationInRoot();
     aura::Window::ConvertPointToTarget(root_window, GetWindow(), &view_point);
@@ -137,9 +136,9 @@
     tooltip_text_.clear();
   }
 
-  aura::client::SetTooltipId(GetWindow(), target);
+  wm::SetTooltipId(GetWindow(), target);
 
-  aura::client::GetTooltipClient(root_window)->UpdateTooltip(GetWindow());
+  wm::GetTooltipClient(root_window)->UpdateTooltip(GetWindow());
 }
 
 aura::Window* TooltipManagerAura::GetWindow() {
diff --git a/ui/views/widget/widget_interactive_uitest.cc b/ui/views/widget/widget_interactive_uitest.cc
index 6757a37..a1e82b4 100644
--- a/ui/views/widget/widget_interactive_uitest.cc
+++ b/ui/views/widget/widget_interactive_uitest.cc
@@ -329,8 +329,8 @@
   focusable_view1->RequestFocus();
 
   EXPECT_TRUE(root_window1 != NULL);
-  aura::client::ActivationClient* activation_client1 =
-      aura::client::GetActivationClient(root_window1);
+  wm::ActivationClient* activation_client1 =
+      wm::GetActivationClient(root_window1);
   EXPECT_TRUE(activation_client1 != NULL);
   EXPECT_EQ(activation_client1->GetActiveWindow(), widget1->GetNativeView());
 
@@ -343,8 +343,8 @@
   focusable_view2->RequestFocus();
   ActivatePlatformWindow(widget2);
 
-  aura::client::ActivationClient* activation_client2 =
-      aura::client::GetActivationClient(root_window2);
+  wm::ActivationClient* activation_client2 =
+      wm::GetActivationClient(root_window2);
   EXPECT_TRUE(activation_client2 != NULL);
   EXPECT_EQ(activation_client2->GetActiveWindow(), widget2->GetNativeView());
   EXPECT_EQ(activation_client1->GetActiveWindow(),
diff --git a/ui/wm/BUILD.gn b/ui/wm/BUILD.gn
index 16674713..bf2496b 100644
--- a/ui/wm/BUILD.gn
+++ b/ui/wm/BUILD.gn
@@ -80,6 +80,7 @@
     "//ui/gfx/animation",
     "//ui/gfx/geometry",
     "//ui/resources",
+    "//ui/wm/public",
   ]
 
   if (use_x11) {
@@ -151,6 +152,7 @@
     "//ui/gfx/geometry",
     "//ui/gl:test_support",
     "//ui/resources",
+    "//ui/wm/public",
   ]
 
   data_deps = [
diff --git a/ui/wm/core/base_focus_rules.cc b/ui/wm/core/base_focus_rules.cc
index 70086b2..73e95142 100644
--- a/ui/wm/core/base_focus_rules.cc
+++ b/ui/wm/core/base_focus_rules.cc
@@ -61,8 +61,8 @@
     return false;
 
   // The window's activation delegate must allow this window to be activated.
-  if (aura::client::GetActivationDelegate(window) &&
-      !aura::client::GetActivationDelegate(window)->ShouldActivate()) {
+  if (GetActivationDelegate(window) &&
+      !GetActivationDelegate(window)->ShouldActivate()) {
     return false;
   }
 
diff --git a/ui/wm/core/compound_event_filter_unittest.cc b/ui/wm/core/compound_event_filter_unittest.cc
index 13e7936..cd04f67 100644
--- a/ui/wm/core/compound_event_filter_unittest.cc
+++ b/ui/wm/core/compound_event_filter_unittest.cc
@@ -159,8 +159,7 @@
   ui::TouchEvent press1(
       ui::ET_TOUCH_PRESSED, gfx::Point(90, 90), GetTime(),
       ui::PointerDetails(ui::EventPointerType::POINTER_TYPE_TOUCH, 1));
-  aura::client::GetActivationClient(
-      root_window())->ActivateWindow(window.get());
+  GetActivationClient(root_window())->ActivateWindow(window.get());
   DispatchEventUsingWindowDispatcher(&press1);
   EXPECT_FALSE(cursor_client.IsMouseEventsEnabled());
   aura::Env::GetInstance()->RemovePreTargetHandler(compound_filter.get());
diff --git a/ui/wm/core/default_activation_client.cc b/ui/wm/core/default_activation_client.cc
index cab8cd95..0ddc1a1 100644
--- a/ui/wm/core/default_activation_client.cc
+++ b/ui/wm/core/default_activation_client.cc
@@ -42,31 +42,29 @@
 
 DefaultActivationClient::DefaultActivationClient(aura::Window* root_window)
     : last_active_(nullptr) {
-  aura::client::SetActivationClient(root_window, this);
+  SetActivationClient(root_window, this);
   new Deleter(this, root_window);
 }
 
 ////////////////////////////////////////////////////////////////////////////////
-// DefaultActivationClient, client::ActivationClient implementation:
+// DefaultActivationClient, ActivationClient implementation:
 
-void DefaultActivationClient::AddObserver(
-    aura::client::ActivationChangeObserver* observer) {
+void DefaultActivationClient::AddObserver(ActivationChangeObserver* observer) {
   observers_.AddObserver(observer);
 }
 
 void DefaultActivationClient::RemoveObserver(
-    aura::client::ActivationChangeObserver* observer) {
+    ActivationChangeObserver* observer) {
   observers_.RemoveObserver(observer);
 }
 
 void DefaultActivationClient::ActivateWindow(aura::Window* window) {
-  ActivateWindowImpl(aura::client::ActivationChangeObserver::ActivationReason::
-                         ACTIVATION_CLIENT,
-                     window);
+  ActivateWindowImpl(
+      ActivationChangeObserver::ActivationReason::ACTIVATION_CLIENT, window);
 }
 
 void DefaultActivationClient::ActivateWindowImpl(
-    aura::client::ActivationChangeObserver::ActivationReason reason,
+    ActivationChangeObserver::ActivationReason reason,
     aura::Window* window) {
   aura::Window* last_active = ActivationClient::GetActiveWindow();
   if (last_active == window)
@@ -81,24 +79,22 @@
   for (auto& observer : observers_)
     observer.OnWindowActivated(reason, window, last_active);
 
-  aura::client::ActivationChangeObserver* observer =
-      aura::client::GetActivationChangeObserver(last_active);
+  ActivationChangeObserver* observer = GetActivationChangeObserver(last_active);
   if (observer) {
     observer->OnWindowActivated(reason, window, last_active);
   }
-  observer = aura::client::GetActivationChangeObserver(window);
+  observer = GetActivationChangeObserver(window);
   if (observer) {
     observer->OnWindowActivated(reason, window, last_active);
   }
 }
 
 void DefaultActivationClient::DeactivateWindow(aura::Window* window) {
-  aura::client::ActivationChangeObserver* observer =
-      aura::client::GetActivationChangeObserver(window);
+  ActivationChangeObserver* observer = GetActivationChangeObserver(window);
   if (observer) {
-    observer->OnWindowActivated(aura::client::ActivationChangeObserver::
-                                    ActivationReason::ACTIVATION_CLIENT,
-                                nullptr, window);
+    observer->OnWindowActivated(
+        ActivationChangeObserver::ActivationReason::ACTIVATION_CLIENT, nullptr,
+        window);
   }
   if (last_active_)
     ActivateWindow(last_active_);
@@ -133,10 +129,10 @@
   if (window == GetActiveWindow()) {
     active_windows_.pop_back();
     aura::Window* next_active = ActivationClient::GetActiveWindow();
-    if (next_active && aura::client::GetActivationChangeObserver(next_active)) {
-      aura::client::GetActivationChangeObserver(next_active)
-          ->OnWindowActivated(aura::client::ActivationChangeObserver::
-                                  ActivationReason::WINDOW_DISPOSITION_CHANGED,
+    if (next_active && GetActivationChangeObserver(next_active)) {
+      GetActivationChangeObserver(next_active)
+          ->OnWindowActivated(ActivationChangeObserver::ActivationReason::
+                                  WINDOW_DISPOSITION_CHANGED,
                               next_active, nullptr);
     }
     return;
diff --git a/ui/wm/core/default_activation_client.h b/ui/wm/core/default_activation_client.h
index 1f8ccb5a..cd776578 100644
--- a/ui/wm/core/default_activation_client.h
+++ b/ui/wm/core/default_activation_client.h
@@ -16,27 +16,22 @@
 #include "ui/wm/public/activation_client.h"
 #include "ui/wm/wm_export.h"
 
-namespace aura {
-namespace client {
-class ActivationChangeObserver;
-}
-}
-
 namespace wm {
 
+class ActivationChangeObserver;
+
 // Simple ActivationClient implementation for use by tests and other targets
 // that just need basic behavior (e.g. activate windows whenever requested,
 // restack windows at the top when they're activated, etc.). This object deletes
 // itself when the root window it is associated with is destroyed.
-class WM_EXPORT DefaultActivationClient : public aura::client::ActivationClient,
+class WM_EXPORT DefaultActivationClient : public ActivationClient,
                                           public aura::WindowObserver {
  public:
   explicit DefaultActivationClient(aura::Window* root_window);
 
-  // Overridden from aura::client::ActivationClient:
-  void AddObserver(aura::client::ActivationChangeObserver* observer) override;
-  void RemoveObserver(
-      aura::client::ActivationChangeObserver* observer) override;
+  // Overridden from ActivationClient:
+  void AddObserver(ActivationChangeObserver* observer) override;
+  void RemoveObserver(ActivationChangeObserver* observer) override;
   void ActivateWindow(aura::Window* window) override;
   void DeactivateWindow(aura::Window* window) override;
   const aura::Window* GetActiveWindow() const override;
@@ -53,9 +48,8 @@
   ~DefaultActivationClient() override;
   void RemoveActiveWindow(aura::Window* window);
 
-  void ActivateWindowImpl(
-      aura::client::ActivationChangeObserver::ActivationReason reason,
-      aura::Window* window);
+  void ActivateWindowImpl(ActivationChangeObserver::ActivationReason reason,
+                          aura::Window* window);
 
   // This class explicitly does NOT store the active window in a window property
   // to make sure that ActivationChangeObserver is not treated as part of the
@@ -66,7 +60,7 @@
   // The window which was active before the currently active one.
   aura::Window* last_active_;
 
-  base::ObserverList<aura::client::ActivationChangeObserver> observers_;
+  base::ObserverList<ActivationChangeObserver> observers_;
 
   DISALLOW_COPY_AND_ASSIGN(DefaultActivationClient);
 };
diff --git a/ui/wm/core/focus_controller.cc b/ui/wm/core/focus_controller.cc
index 68b6d80..695be50 100644
--- a/ui/wm/core/focus_controller.cc
+++ b/ui/wm/core/focus_controller.cc
@@ -50,15 +50,13 @@
 FocusController::~FocusController() = default;
 
 ////////////////////////////////////////////////////////////////////////////////
-// FocusController, aura::client::ActivationClient implementation:
+// FocusController, ActivationClient implementation:
 
-void FocusController::AddObserver(
-    aura::client::ActivationChangeObserver* observer) {
+void FocusController::AddObserver(ActivationChangeObserver* observer) {
   activation_observers_.AddObserver(observer);
 }
 
-void FocusController::RemoveObserver(
-    aura::client::ActivationChangeObserver* observer) {
+void FocusController::RemoveObserver(ActivationChangeObserver* observer) {
   activation_observers_.RemoveObserver(observer);
 }
 
@@ -101,9 +99,8 @@
 }
 
 void FocusController::FocusWindow(aura::Window* window) {
-  FocusAndActivateWindow(aura::client::ActivationChangeObserver::
-                             ActivationReason::ACTIVATION_CLIENT,
-                         window);
+  FocusAndActivateWindow(
+      ActivationChangeObserver::ActivationReason::ACTIVATION_CLIENT, window);
 }
 
 void FocusController::ResetFocusWithinActiveWindow(aura::Window* window) {
@@ -185,7 +182,7 @@
 // FocusController, private:
 
 void FocusController::FocusAndActivateWindow(
-    aura::client::ActivationChangeObserver::ActivationReason reason,
+    ActivationChangeObserver::ActivationReason reason,
     aura::Window* window) {
   if (window &&
       (window->Contains(focused_window_) || window->Contains(active_window_))) {
@@ -266,7 +263,7 @@
 }
 
 void FocusController::SetActiveWindow(
-    aura::client::ActivationChangeObserver::ActivationReason reason,
+    ActivationChangeObserver::ActivationReason reason,
     aura::Window* requested_window,
     aura::Window* window) {
   if (updating_activation_)
@@ -301,13 +298,13 @@
   if (active_window_)
     StackActiveWindow();
 
-  aura::client::ActivationChangeObserver* observer = nullptr;
+  ActivationChangeObserver* observer = nullptr;
   if (window_tracker.Contains(lost_activation)) {
-    observer = aura::client::GetActivationChangeObserver(lost_activation);
+    observer = GetActivationChangeObserver(lost_activation);
     if (observer)
       observer->OnWindowActivated(reason, active_window_, lost_activation);
   }
-  observer = aura::client::GetActivationChangeObserver(active_window_);
+  observer = GetActivationChangeObserver(active_window_);
   if (observer) {
     observer->OnWindowActivated(
         reason, active_window_,
@@ -337,9 +334,9 @@
   // that process so there's no point in updating focus independently.
   if (window == active_window_) {
     aura::Window* next_activatable = rules_->GetNextActivatableWindow(window);
-    SetActiveWindow(aura::client::ActivationChangeObserver::ActivationReason::
-                        WINDOW_DISPOSITION_CHANGED,
-                    nullptr, next_activatable);
+    SetActiveWindow(
+        ActivationChangeObserver::ActivationReason::WINDOW_DISPOSITION_CHANGED,
+        nullptr, next_activatable);
     if (!(active_window_ && active_window_->Contains(focused_window_)))
       SetFocusedWindow(next_activatable);
   } else if (window->Contains(focused_window_)) {
@@ -355,8 +352,7 @@
   // currently focused one.
   if (rules_->CanFocusWindow(GetToplevelWindow(window), event)) {
     FocusAndActivateWindow(
-        aura::client::ActivationChangeObserver::ActivationReason::INPUT_EVENT,
-        window);
+        ActivationChangeObserver::ActivationReason::INPUT_EVENT, window);
   }
 }
 
diff --git a/ui/wm/core/focus_controller.h b/ui/wm/core/focus_controller.h
index c59003f0..2da7173 100644
--- a/ui/wm/core/focus_controller.h
+++ b/ui/wm/core/focus_controller.h
@@ -31,7 +31,7 @@
 // determined by the ActivationReason parameter in
 // ActivationChangeObserver::OnWindowActivated(...).
 // . ActivationReason::ACTIVATION_CLIENT: The Aura Client API (implemented here
-//   in aura::client::ActivationClient). (The FocusController must be set as the
+//   in ActivationClient). (The FocusController must be set as the
 //   ActivationClient implementation for all RootWindows).
 // . ActivationReason::INPUT_EVENT: Input events (implemented here in
 //   ui::EventHandler). (The FocusController must be registered as a pre-target
@@ -40,7 +40,7 @@
 // . ActivationReason::WINDOW_DISPOSITION_CHANGED: Window disposition changes
 //   (implemented here in aura::WindowObserver). (The FocusController registers
 //   itself as an observer of the active and focused windows).
-class WM_EXPORT FocusController : public aura::client::ActivationClient,
+class WM_EXPORT FocusController : public ActivationClient,
                                   public aura::client::FocusClient,
                                   public ui::EventHandler,
                                   public aura::WindowObserver {
@@ -49,10 +49,9 @@
   explicit FocusController(FocusRules* rules);
   ~FocusController() override;
 
-  // Overridden from aura::client::ActivationClient:
-  void AddObserver(aura::client::ActivationChangeObserver* observer) override;
-  void RemoveObserver(
-      aura::client::ActivationChangeObserver* observer) override;
+  // Overridden from ActivationClient:
+  void AddObserver(ActivationChangeObserver* observer) override;
+  void RemoveObserver(ActivationChangeObserver* observer) override;
   void ActivateWindow(aura::Window* window) override;
   void DeactivateWindow(aura::Window* window) override;
   const aura::Window* GetActiveWindow() const override;
@@ -84,9 +83,8 @@
  private:
   // Internal implementation that coordinates window focus and activation
   // changes.
-  void FocusAndActivateWindow(
-      aura::client::ActivationChangeObserver::ActivationReason reason,
-      aura::Window* window);
+  void FocusAndActivateWindow(ActivationChangeObserver::ActivationReason reason,
+                              aura::Window* window);
 
   // Internal implementation that sets the focused window, fires events etc.
   // This function must be called with a valid focusable window.
@@ -98,10 +96,9 @@
   // request (e.g. FocusWindow or ActivateWindow). It may be NULL, e.g. if
   // SetActiveWindow was not called by an external request. |activatable_window|
   // refers to the actual window to be activated, which may be different.
-  void SetActiveWindow(
-      aura::client::ActivationChangeObserver::ActivationReason reason,
-      aura::Window* requested_window,
-      aura::Window* activatable_window);
+  void SetActiveWindow(ActivationChangeObserver::ActivationReason reason,
+                       aura::Window* requested_window,
+                       aura::Window* activatable_window);
 
   // Stack the |active_window_| on top of the window stack. This function is
   // called when activating a window or re-activating the current active window.
@@ -127,8 +124,7 @@
 
   std::unique_ptr<FocusRules> rules_;
 
-  base::ObserverList<aura::client::ActivationChangeObserver>
-      activation_observers_;
+  base::ObserverList<ActivationChangeObserver> activation_observers_;
   base::ObserverList<aura::client::FocusChangeObserver> focus_observers_;
 
   ScopedObserver<aura::Window, aura::WindowObserver> observer_manager_;
diff --git a/ui/wm/core/focus_controller_unittest.cc b/ui/wm/core/focus_controller_unittest.cc
index 85c6942..f4678ca 100644
--- a/ui/wm/core/focus_controller_unittest.cc
+++ b/ui/wm/core/focus_controller_unittest.cc
@@ -28,7 +28,7 @@
 
 namespace wm {
 
-class FocusNotificationObserver : public aura::client::ActivationChangeObserver,
+class FocusNotificationObserver : public ActivationChangeObserver,
                                   public aura::client::FocusChangeObserver {
  public:
   FocusNotificationObserver()
@@ -58,7 +58,7 @@
   }
 
  private:
-  // Overridden from aura::client::ActivationChangeObserver:
+  // Overridden from ActivationChangeObserver:
   void OnWindowActivated(ActivationReason reason,
                          aura::Window* gained_active,
                          aura::Window* lost_active) override {
@@ -100,7 +100,7 @@
 // it was notified about activation changes or focus changes with a deleted
 // window.
 class RecordingActivationAndFocusChangeObserver
-    : public aura::client::ActivationChangeObserver,
+    : public ActivationChangeObserver,
       public aura::client::FocusChangeObserver {
  public:
   RecordingActivationAndFocusChangeObserver(aura::Window* root,
@@ -108,11 +108,11 @@
       : root_(root),
         deleter_(deleter),
         was_notified_with_deleted_window_(false) {
-    aura::client::GetActivationClient(root_)->AddObserver(this);
+    GetActivationClient(root_)->AddObserver(this);
     aura::client::GetFocusClient(root_)->AddObserver(this);
   }
   ~RecordingActivationAndFocusChangeObserver() override {
-    aura::client::GetActivationClient(root_)->RemoveObserver(this);
+    GetActivationClient(root_)->RemoveObserver(this);
     aura::client::GetFocusClient(root_)->RemoveObserver(this);
   }
 
@@ -120,7 +120,7 @@
     return was_notified_with_deleted_window_;
   }
 
-  // Overridden from aura::client::ActivationChangeObserver:
+  // Overridden from ActivationChangeObserver:
   void OnWindowActivated(ActivationReason reason,
                          aura::Window* gained_active,
                          aura::Window* lost_active) override {
@@ -150,21 +150,20 @@
 };
 
 // ActivationChangeObserver that deletes the window losing activation.
-class DeleteOnLoseActivationChangeObserver :
-    public aura::client::ActivationChangeObserver,
-    public WindowDeleter {
+class DeleteOnLoseActivationChangeObserver : public ActivationChangeObserver,
+                                             public WindowDeleter {
  public:
   explicit DeleteOnLoseActivationChangeObserver(aura::Window* window)
       : root_(window->GetRootWindow()),
         window_(window),
         did_delete_(false) {
-    aura::client::GetActivationClient(root_)->AddObserver(this);
+    GetActivationClient(root_)->AddObserver(this);
   }
   ~DeleteOnLoseActivationChangeObserver() override {
-    aura::client::GetActivationClient(root_)->RemoveObserver(this);
+    GetActivationClient(root_)->RemoveObserver(this);
   }
 
-  // Overridden from aura::client::ActivationChangeObserver:
+  // Overridden from ActivationChangeObserver:
   void OnWindowActivated(ActivationReason reason,
                          aura::Window* gained_active,
                          aura::Window* lost_active) override {
@@ -228,11 +227,11 @@
  public:
   ScopedFocusNotificationObserver(aura::Window* root_window)
       : root_window_(root_window) {
-    aura::client::GetActivationClient(root_window_)->AddObserver(this);
+    GetActivationClient(root_window_)->AddObserver(this);
     aura::client::GetFocusClient(root_window_)->AddObserver(this);
   }
   ~ScopedFocusNotificationObserver() override {
-    aura::client::GetActivationClient(root_window_)->RemoveObserver(this);
+    GetActivationClient(root_window_)->RemoveObserver(this);
     aura::client::GetFocusClient(root_window_)->RemoveObserver(this);
   }
 
@@ -246,13 +245,13 @@
  public:
   ScopedTargetFocusNotificationObserver(aura::Window* root_window, int id)
       : target_(root_window->GetChildById(id)) {
-    aura::client::SetActivationChangeObserver(target_, this);
+    SetActivationChangeObserver(target_, this);
     aura::client::SetFocusChangeObserver(target_, this);
     tracker_.Add(target_);
   }
   ~ScopedTargetFocusNotificationObserver() override {
     if (tracker_.Contains(target_)) {
-      aura::client::SetActivationChangeObserver(target_, NULL);
+      SetActivationChangeObserver(target_, NULL);
       aura::client::SetFocusChangeObserver(target_, NULL);
     }
   }
@@ -278,8 +277,7 @@
   DISALLOW_COPY_AND_ASSIGN(SimpleEventHandler);
 };
 
-class FocusShiftingActivationObserver
-    : public aura::client::ActivationChangeObserver {
+class FocusShiftingActivationObserver : public ActivationChangeObserver {
  public:
   explicit FocusShiftingActivationObserver(aura::Window* activated_window)
       : activated_window_(activated_window),
@@ -291,7 +289,7 @@
   }
 
  private:
-  // Overridden from aura::client::ActivationChangeObserver:
+  // Overridden from ActivationChangeObserver:
   void OnWindowActivated(ActivationReason reason,
                          aura::Window* gained_active,
                          aura::Window* lost_active) override {
@@ -381,7 +379,7 @@
     aura::test::AuraTestBase::SetUp();
     root_window()->AddPreTargetHandler(focus_controller_.get());
     aura::client::SetFocusClient(root_window(), focus_controller_.get());
-    aura::client::SetActivationClient(root_window(), focus_controller_.get());
+    SetActivationClient(root_window(), focus_controller_.get());
 
     // Hierarchy used by all tests:
     // root_window
@@ -432,13 +430,13 @@
     return focused_window ? focused_window->id() : -1;
   }
   void ActivateWindow(aura::Window* window) {
-    aura::client::GetActivationClient(root_window())->ActivateWindow(window);
+    GetActivationClient(root_window())->ActivateWindow(window);
   }
   void DeactivateWindow(aura::Window* window) {
-    aura::client::GetActivationClient(root_window())->DeactivateWindow(window);
+    GetActivationClient(root_window())->DeactivateWindow(window);
   }
   aura::Window* GetActiveWindow() {
-    return aura::client::GetActivationClient(root_window())->GetActiveWindow();
+    return GetActivationClient(root_window())->GetActiveWindow();
   }
   int GetActiveWindowId() {
     aura::Window* active_window = GetActiveWindow();
@@ -490,7 +488,7 @@
 
   // Returns the expected ActivationReason caused by calling the
   // ActivatedWindowDirect(...) or DeactivateWindowDirect(...) methods.
-  virtual aura::client::ActivationChangeObserver::ActivationReason
+  virtual ActivationChangeObserver::ActivationReason
   GetExpectedActivationReason() const = 0;
 
   void FocusWindowById(int id) {
@@ -688,8 +686,7 @@
     ActivateWindowById(2);
 
     aura::Window* target = root_window()->GetChildById(1);
-    aura::client::ActivationClient* client =
-        aura::client::GetActivationClient(root_window());
+    ActivationClient* client = GetActivationClient(root_window());
 
     std::unique_ptr<FocusShiftingActivationObserver> observer(
         new FocusShiftingActivationObserver(target));
@@ -729,8 +726,7 @@
     EXPECT_EQ(1, GetFocusedWindowId());
 
     aura::Window* target = root_window()->GetChildById(2);
-    aura::client::ActivationClient* client =
-        aura::client::GetActivationClient(root_window());
+    ActivationClient* client = GetActivationClient(root_window());
 
     std::unique_ptr<FocusShiftingActivationObserver> observer(
         new FocusShiftingActivationObserver(target));
@@ -772,7 +768,7 @@
     // transferring the mouse capture and activate the window.
     aura::Window* w1 = root_window()->GetChildById(1);
     aura::client::GetCaptureClient(root_window())->SetCapture(w1);
-    aura::client::GetActivationClient(root_window())->ActivateWindow(w1);
+    GetActivationClient(root_window())->ActivateWindow(w1);
     EXPECT_EQ(1, GetActiveWindowId());
     EXPECT_EQ(1, GetFocusedWindowId());
 
@@ -873,7 +869,7 @@
   DISALLOW_COPY_AND_ASSIGN(FocusControllerDirectTestBase);
 };
 
-// Focus and Activation changes via aura::client::ActivationClient API.
+// Focus and Activation changes via ActivationClient API.
 class FocusControllerApiTest : public FocusControllerDirectTestBase {
  public:
   FocusControllerApiTest() {}
@@ -889,10 +885,9 @@
   }
   bool IsInputEvent() override { return false; }
   // Overridden from FocusControllerDirectTestBase:
-  aura::client::ActivationChangeObserver::ActivationReason
-  GetExpectedActivationReason() const override {
-    return aura::client::ActivationChangeObserver::ActivationReason::
-        ACTIVATION_CLIENT;
+  ActivationChangeObserver::ActivationReason GetExpectedActivationReason()
+      const override {
+    return ActivationChangeObserver::ActivationReason::ACTIVATION_CLIENT;
   }
 
   DISALLOW_COPY_AND_ASSIGN(FocusControllerApiTest);
@@ -938,10 +933,9 @@
   }
   // Overridden from FocusControllerDirectTestBase:
   bool IsInputEvent() override { return true; }
-  aura::client::ActivationChangeObserver::ActivationReason
-  GetExpectedActivationReason() const override {
-    return aura::client::ActivationChangeObserver::ActivationReason::
-        INPUT_EVENT;
+  ActivationChangeObserver::ActivationReason GetExpectedActivationReason()
+      const override {
+    return ActivationChangeObserver::ActivationReason::INPUT_EVENT;
   }
 
   DISALLOW_COPY_AND_ASSIGN(FocusControllerMouseEventTest);
@@ -968,10 +962,9 @@
     generator.GestureTapAt(window->bounds().CenterPoint());
   }
   bool IsInputEvent() override { return true; }
-  aura::client::ActivationChangeObserver::ActivationReason
-  GetExpectedActivationReason() const override {
-    return aura::client::ActivationChangeObserver::ActivationReason::
-        INPUT_EVENT;
+  ActivationChangeObserver::ActivationReason GetExpectedActivationReason()
+      const override {
+    return ActivationChangeObserver::ActivationReason::INPUT_EVENT;
   }
 
   DISALLOW_COPY_AND_ASSIGN(FocusControllerGestureEventTest);
@@ -990,9 +983,9 @@
 
   // Returns the expected ActivationReason caused by calling the
   // ActivatedWindowDirect(...) or DeactivateWindowDirect(...) methods.
-  aura::client::ActivationChangeObserver::ActivationReason
-  GetExpectedActivationReason() const {
-    return aura::client::ActivationChangeObserver::ActivationReason::
+  ActivationChangeObserver::ActivationReason GetExpectedActivationReason()
+      const {
+    return ActivationChangeObserver::ActivationReason::
         WINDOW_DISPOSITION_CHANGED;
   }
 
diff --git a/ui/wm/core/shadow_controller.cc b/ui/wm/core/shadow_controller.cc
index 2672bce..82aabd8 100644
--- a/ui/wm/core/shadow_controller.cc
+++ b/ui/wm/core/shadow_controller.cc
@@ -76,7 +76,7 @@
 ShadowElevation GetShadowElevationForWindowLosingActive(
     aura::Window* losing_active,
     aura::Window* gaining_active) {
-  if (gaining_active && aura::client::GetHideOnDeactivate(gaining_active)) {
+  if (gaining_active && GetHideOnDeactivate(gaining_active)) {
     aura::Window::Windows::const_iterator it =
         std::find(GetTransientChildren(losing_active).begin(),
                   GetTransientChildren(losing_active).end(),
@@ -266,10 +266,8 @@
   return window->GetProperty(kShadowLayerKey);
 }
 
-ShadowController::ShadowController(
-    aura::client::ActivationClient* activation_client)
-    : activation_client_(activation_client),
-      impl_(Impl::GetInstance()) {
+ShadowController::ShadowController(ActivationClient* activation_client)
+    : activation_client_(activation_client), impl_(Impl::GetInstance()) {
   // Watch for window activation changes.
   activation_client_->AddObserver(this);
 }
diff --git a/ui/wm/core/shadow_controller.h b/ui/wm/core/shadow_controller.h
index d1bfafa..c867ff0 100644
--- a/ui/wm/core/shadow_controller.h
+++ b/ui/wm/core/shadow_controller.h
@@ -16,21 +16,18 @@
 
 namespace aura {
 class Window;
-namespace client {
-class ActivationClient;
-}
 }
 
 namespace wm {
 
+class ActivationClient;
 class Shadow;
 
 // ShadowController observes changes to windows and creates and updates drop
 // shadows as needed. ShadowController itself is light weight and per
 // ActivationClient. ShadowController delegates to its implementation class,
 // which observes all window creation.
-class WM_EXPORT ShadowController :
-    public aura::client::ActivationChangeObserver {
+class WM_EXPORT ShadowController : public ActivationChangeObserver {
  public:
   static constexpr ShadowElevation kActiveNormalShadowElevation =
       ShadowElevation::LARGE;
@@ -38,19 +35,18 @@
   // Returns the shadow for the |window|, or NULL if no shadow exists.
   static Shadow* GetShadowForWindow(aura::Window* window);
 
-  explicit ShadowController(aura::client::ActivationClient* activation_client);
+  explicit ShadowController(ActivationClient* activation_client);
   ~ShadowController() override;
 
-  // aura::client::ActivationChangeObserver overrides:
-  void OnWindowActivated(
-      aura::client::ActivationChangeObserver::ActivationReason reason,
-      aura::Window* gained_active,
-      aura::Window* lost_active) override;
+  // ActivationChangeObserver overrides:
+  void OnWindowActivated(ActivationChangeObserver::ActivationReason reason,
+                         aura::Window* gained_active,
+                         aura::Window* lost_active) override;
 
  private:
   class Impl;
 
-  aura::client::ActivationClient* activation_client_;
+  ActivationClient* activation_client_;
 
   scoped_refptr<Impl> impl_;
 
diff --git a/ui/wm/core/shadow_controller_unittest.cc b/ui/wm/core/shadow_controller_unittest.cc
index 8375488..b4a6269 100644
--- a/ui/wm/core/shadow_controller_unittest.cc
+++ b/ui/wm/core/shadow_controller_unittest.cc
@@ -31,8 +31,7 @@
   void SetUp() override {
     AuraTestBase::SetUp();
     new wm::DefaultActivationClient(root_window());
-    aura::client::ActivationClient* activation_client =
-        aura::client::GetActivationClient(root_window());
+    ActivationClient* activation_client = GetActivationClient(root_window());
     shadow_controller_.reset(new ShadowController(activation_client));
   }
   void TearDown() override {
@@ -46,8 +45,7 @@
   void ActivateWindow(aura::Window* window) {
     DCHECK(window);
     DCHECK(window->GetRootWindow());
-    aura::client::GetActivationClient(window->GetRootWindow())->ActivateWindow(
-        window);
+    GetActivationClient(window->GetRootWindow())->ActivateWindow(window);
   }
 
  private:
@@ -217,7 +215,7 @@
   ParentWindow(window2.get());
   window2->SetBounds(gfx::Rect(11, 21, 301, 401));
   AddTransientChild(window1.get(), window2.get());
-  aura::client::SetHideOnDeactivate(window2.get(), true);
+  SetHideOnDeactivate(window2.get(), true);
   window2->Show();
   ActivateWindow(window2.get());
 
diff --git a/ui/wm/core/window_animations.cc b/ui/wm/core/window_animations.cc
index 3a9c916f..d72c5b4 100644
--- a/ui/wm/core/window_animations.cc
+++ b/ui/wm/core/window_animations.cc
@@ -118,8 +118,7 @@
   void OnAnimationCompleted() {
     // Window may have been destroyed by this point.
     if (window_) {
-      aura::client::AnimationHost* animation_host =
-          aura::client::GetAnimationHost(window_);
+      AnimationHost* animation_host = GetAnimationHost(window_);
       if (animation_host)
         animation_host->OnWindowHidingAnimationCompleted();
       window_->RemoveObserver(this);
@@ -241,8 +240,7 @@
 // animation will fit inside of it.
 void AugmentWindowSize(aura::Window* window,
                        const gfx::Transform& end_transform) {
-  aura::client::AnimationHost* animation_host =
-      aura::client::GetAnimationHost(window);
+  AnimationHost* animation_host = GetAnimationHost(window);
   if (!animation_host)
     return;
 
diff --git a/ui/wm/core/window_animations_unittest.cc b/ui/wm/core/window_animations_unittest.cc
index bf4b68b..507a7e793 100644
--- a/ui/wm/core/window_animations_unittest.cc
+++ b/ui/wm/core/window_animations_unittest.cc
@@ -257,12 +257,12 @@
 }
 
 // A simple AnimationHost implementation for the NotifyHideCompleted test.
-class NotifyHideCompletedAnimationHost : public aura::client::AnimationHost {
+class NotifyHideCompletedAnimationHost : public AnimationHost {
  public:
   NotifyHideCompletedAnimationHost() : hide_completed_(false) {}
   ~NotifyHideCompletedAnimationHost() override {}
 
-  // Overridden from TestWindowDelegate:
+  // Overridden from AnimationHost:
   void OnWindowHidingAnimationCompleted() override { hide_completed_ = true; }
 
   void SetHostTransitionOffsets(const gfx::Vector2d& top_left,
@@ -280,7 +280,7 @@
   NotifyHideCompletedAnimationHost animation_host;
   std::unique_ptr<aura::Window> window(
       aura::test::CreateTestWindowWithId(0, NULL));
-  aura::client::SetAnimationHost(window.get(), &animation_host);
+  SetAnimationHost(window.get(), &animation_host);
   wm::SetWindowVisibilityAnimationType(
       window.get(), WINDOW_VISIBILITY_ANIMATION_TYPE_FADE);
   AnimateOnChildWindowVisibilityChanged(window.get(), true);
diff --git a/ui/wm/core/window_util.cc b/ui/wm/core/window_util.cc
index 91fc77cc..d9d04666 100644
--- a/ui/wm/core/window_util.cc
+++ b/ui/wm/core/window_util.cc
@@ -59,23 +59,20 @@
 void ActivateWindow(aura::Window* window) {
   DCHECK(window);
   DCHECK(window->GetRootWindow());
-  aura::client::GetActivationClient(window->GetRootWindow())->ActivateWindow(
-      window);
+  GetActivationClient(window->GetRootWindow())->ActivateWindow(window);
 }
 
 void DeactivateWindow(aura::Window* window) {
   DCHECK(window);
   DCHECK(window->GetRootWindow());
-  aura::client::GetActivationClient(window->GetRootWindow())->DeactivateWindow(
-      window);
+  GetActivationClient(window->GetRootWindow())->DeactivateWindow(window);
 }
 
 bool IsActiveWindow(const aura::Window* window) {
   DCHECK(window);
   if (!window->GetRootWindow())
     return false;
-  const aura::client::ActivationClient* client =
-      aura::client::GetActivationClient(window->GetRootWindow());
+  const ActivationClient* client = GetActivationClient(window->GetRootWindow());
   return client && client->GetActiveWindow() == window;
 }
 
@@ -83,8 +80,7 @@
   DCHECK(window);
   if (!window->GetRootWindow())
     return false;
-  aura::client::ActivationClient* client =
-      aura::client::GetActivationClient(window->GetRootWindow());
+  ActivationClient* client = GetActivationClient(window->GetRootWindow());
   return client && client->CanActivateWindow(window);
 }
 
@@ -122,14 +118,12 @@
 }
 
 aura::Window* GetActivatableWindow(aura::Window* window) {
-  aura::client::ActivationClient* client =
-      aura::client::GetActivationClient(window->GetRootWindow());
+  ActivationClient* client = GetActivationClient(window->GetRootWindow());
   return client ? client->GetActivatableWindow(window) : NULL;
 }
 
 aura::Window* GetToplevelWindow(aura::Window* window) {
-  aura::client::ActivationClient* client =
-      aura::client::GetActivationClient(window->GetRootWindow());
+  ActivationClient* client = GetActivationClient(window->GetRootWindow());
   return client ? client->GetToplevelWindow(window) : NULL;
 }
 
diff --git a/ui/wm/public/BUILD.gn b/ui/wm/public/BUILD.gn
new file mode 100644
index 0000000..2356a10
--- /dev/null
+++ b/ui/wm/public/BUILD.gn
@@ -0,0 +1,37 @@
+# Copyright 2017 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.
+
+component("public") {
+  output_name = "wm_public"
+
+  public = [
+    "activation_change_observer.h",
+    "activation_client.h",
+    "activation_delegate.h",
+    "animation_host.h",
+    "scoped_drag_drop_disabler.h",
+    "scoped_tooltip_disabler.h",
+    "tooltip_client.h",
+    "window_move_client.h",
+  ]
+
+  sources = [
+    "activation_change_observer.cc",
+    "activation_client.cc",
+    "activation_delegate.cc",
+    "animation_host.cc",
+    "scoped_drag_drop_disabler.cc",
+    "scoped_tooltip_disabler.cc",
+    "tooltip_client.cc",
+    "window_move_client.cc",
+    "wm_public_export.h",
+  ]
+
+  defines = [ "WM_PUBLIC_IMPLEMENTATION" ]
+
+  deps = [
+    "//ui/aura",
+    "//ui/base",
+  ]
+}
diff --git a/ui/wm/public/activation_change_observer.cc b/ui/wm/public/activation_change_observer.cc
index 6357a2d..3688588 100644
--- a/ui/wm/public/activation_change_observer.cc
+++ b/ui/wm/public/activation_change_observer.cc
@@ -7,23 +7,20 @@
 #include "ui/aura/window.h"
 #include "ui/base/class_property.h"
 
-DECLARE_UI_CLASS_PROPERTY_TYPE(aura::client::ActivationChangeObserver*)
+DECLARE_UI_CLASS_PROPERTY_TYPE(wm::ActivationChangeObserver*)
 
-namespace aura {
-namespace client {
+namespace wm {
 
 DEFINE_LOCAL_UI_CLASS_PROPERTY_KEY(
     ActivationChangeObserver*, kActivationChangeObserverKey, NULL);
 
-void SetActivationChangeObserver(
-    Window* window,
-    ActivationChangeObserver* observer) {
+void SetActivationChangeObserver(aura::Window* window,
+                                 ActivationChangeObserver* observer) {
   window->SetProperty(kActivationChangeObserverKey, observer);
 }
 
-ActivationChangeObserver* GetActivationChangeObserver(Window* window) {
+ActivationChangeObserver* GetActivationChangeObserver(aura::Window* window) {
   return window ? window->GetProperty(kActivationChangeObserverKey) : NULL;
 }
 
-}  // namespace client
-}  // namespace aura
+}  // namespace wm
diff --git a/ui/wm/public/activation_change_observer.h b/ui/wm/public/activation_change_observer.h
index 2616cce1..b242d09 100644
--- a/ui/wm/public/activation_change_observer.h
+++ b/ui/wm/public/activation_change_observer.h
@@ -5,14 +5,15 @@
 #ifndef UI_WM_PUBLIC_ACTIVATION_CHANGE_OBSERVER_H_
 #define UI_WM_PUBLIC_ACTIVATION_CHANGE_OBSERVER_H_
 
-#include "ui/aura/aura_export.h"
+#include "ui/wm/public/wm_public_export.h"
 
 namespace aura {
 class Window;
+}
 
-namespace client {
+namespace wm {
 
-class AURA_EXPORT ActivationChangeObserver {
+class WM_PUBLIC_EXPORT ActivationChangeObserver {
  public:
   // The reason or cause of a window activation change.
   enum class ActivationReason {
@@ -30,8 +31,8 @@
   // previous active window or NULL if there was no previously active
   // window. |reason| specifies the cause of the activation change.
   virtual void OnWindowActivated(ActivationReason reason,
-                                 Window* gained_active,
-                                 Window* lost_active) = 0;
+                                 aura::Window* gained_active,
+                                 aura::Window* lost_active) = 0;
 
   // Called when during window activation the currently active window is
   // selected for activation. This can happen when a window requested for
@@ -44,13 +45,12 @@
 
 // Gets/Sets the ActivationChangeObserver for a specific window. This observer
 // is notified after the ActivationClient notifies all registered observers.
-AURA_EXPORT void SetActivationChangeObserver(
-    Window* window,
+WM_PUBLIC_EXPORT void SetActivationChangeObserver(
+    aura::Window* window,
     ActivationChangeObserver* observer);
-AURA_EXPORT ActivationChangeObserver* GetActivationChangeObserver(
-    Window* window);
+WM_PUBLIC_EXPORT ActivationChangeObserver* GetActivationChangeObserver(
+    aura::Window* window);
 
-}  // namespace client
-}  // namespace aura
+}  // namespace wm
 
 #endif  // UI_WM_PUBLIC_ACTIVATION_CHANGE_OBSERVER_H_
diff --git a/ui/wm/public/activation_client.cc b/ui/wm/public/activation_client.cc
index fcf0173..8b5b8e7 100644
--- a/ui/wm/public/activation_client.cc
+++ b/ui/wm/public/activation_client.cc
@@ -7,37 +7,35 @@
 #include "ui/aura/window.h"
 #include "ui/base/class_property.h"
 
-DECLARE_EXPORTED_UI_CLASS_PROPERTY_TYPE(AURA_EXPORT, aura::Window*)
-DECLARE_UI_CLASS_PROPERTY_TYPE(aura::client::ActivationClient*)
+DECLARE_EXPORTED_UI_CLASS_PROPERTY_TYPE(WM_PUBLIC_EXPORT, aura::Window*)
+DECLARE_UI_CLASS_PROPERTY_TYPE(wm::ActivationClient*)
 
-namespace aura {
-namespace client {
+namespace wm {
 
 DEFINE_UI_CLASS_PROPERTY_KEY(
     ActivationClient*, kRootWindowActivationClientKey, NULL);
 DEFINE_UI_CLASS_PROPERTY_KEY(bool, kHideOnDeactivate, false);
 
-void SetActivationClient(Window* root_window, ActivationClient* client) {
+void SetActivationClient(aura::Window* root_window, ActivationClient* client) {
   root_window->SetProperty(kRootWindowActivationClientKey, client);
 }
 
-const ActivationClient* GetActivationClient(const Window* root_window) {
+const ActivationClient* GetActivationClient(const aura::Window* root_window) {
   return root_window ? root_window->GetProperty(kRootWindowActivationClientKey)
                      : nullptr;
 }
 
-ActivationClient* GetActivationClient(Window* root_window) {
+ActivationClient* GetActivationClient(aura::Window* root_window) {
   return root_window ? root_window->GetProperty(kRootWindowActivationClientKey)
                      : nullptr;
 }
 
-void SetHideOnDeactivate(Window* window, bool hide_on_deactivate) {
+void SetHideOnDeactivate(aura::Window* window, bool hide_on_deactivate) {
   window->SetProperty(kHideOnDeactivate, hide_on_deactivate);
 }
 
-bool GetHideOnDeactivate(Window* window) {
+bool GetHideOnDeactivate(aura::Window* window) {
   return window->GetProperty(kHideOnDeactivate);
 }
 
-}  // namespace client
-}  // namespace aura
+}  // namespace wm
diff --git a/ui/wm/public/activation_client.h b/ui/wm/public/activation_client.h
index 401ceb5..a2b5ee7 100644
--- a/ui/wm/public/activation_client.h
+++ b/ui/wm/public/activation_client.h
@@ -5,59 +5,61 @@
 #ifndef UI_WM_PUBLIC_ACTIVATION_CLIENT_H_
 #define UI_WM_PUBLIC_ACTIVATION_CLIENT_H_
 
-#include "ui/aura/aura_export.h"
+#include "ui/wm/public/wm_public_export.h"
 
 namespace aura {
 class Window;
+}
 
-namespace client {
+namespace wm {
 class ActivationChangeObserver;
 
 // An interface implemented by an object that manages window activation.
-class AURA_EXPORT ActivationClient {
+class WM_PUBLIC_EXPORT ActivationClient {
  public:
   // Adds/Removes ActivationChangeObservers.
   virtual void AddObserver(ActivationChangeObserver* observer) = 0;
   virtual void RemoveObserver(ActivationChangeObserver* observer) = 0;
 
   // Activates |window|. If |window| is NULL, nothing happens.
-  virtual void ActivateWindow(Window* window) = 0;
+  virtual void ActivateWindow(aura::Window* window) = 0;
 
   // Deactivates |window|. What (if anything) is activated next is up to the
   // client. If |window| is NULL, nothing happens.
-  virtual void DeactivateWindow(Window* window) = 0;
+  virtual void DeactivateWindow(aura::Window* window) = 0;
 
   // Retrieves the active window, or NULL if there is none.
-  Window* GetActiveWindow() {
-    return const_cast<Window*>(
+  aura::Window* GetActiveWindow() {
+    return const_cast<aura::Window*>(
         const_cast<const ActivationClient*>(this)->GetActiveWindow());
   }
-  virtual const Window* GetActiveWindow() const = 0;
+  virtual const aura::Window* GetActiveWindow() const = 0;
 
   // Retrieves the activatable window for |window|, or NULL if there is none.
   // Note that this is often but not always the toplevel window (see
   // GetToplevelWindow() below), as the toplevel window may not be activatable
   // (for example it may be blocked by a modal transient, or some other
   // condition).
-  virtual Window* GetActivatableWindow(Window* window) = 0;
+  virtual aura::Window* GetActivatableWindow(aura::Window* window) = 0;
 
   // Retrieves the toplevel window for |window|, or NULL if there is none.
-  virtual Window* GetToplevelWindow(Window* window) = 0;
+  virtual aura::Window* GetToplevelWindow(aura::Window* window) = 0;
 
   // Returns true if |window| can be activated, false otherwise. If |window| has
   // a modal child it can not be activated.
-  virtual bool CanActivateWindow(Window* window) const = 0;
+  virtual bool CanActivateWindow(aura::Window* window) const = 0;
 
  protected:
   virtual ~ActivationClient() {}
 };
 
 // Sets/Gets the activation client on the root Window.
-AURA_EXPORT void SetActivationClient(Window* root_window,
-                                     ActivationClient* client);
-AURA_EXPORT ActivationClient* GetActivationClient(Window* root_window);
-AURA_EXPORT const ActivationClient* GetActivationClient(
-    const Window* root_window);
+WM_PUBLIC_EXPORT void SetActivationClient(aura::Window* root_window,
+                                          ActivationClient* client);
+WM_PUBLIC_EXPORT ActivationClient* GetActivationClient(
+    aura::Window* root_window);
+WM_PUBLIC_EXPORT const ActivationClient* GetActivationClient(
+    const aura::Window* root_window);
 
 // Some types of transient window are only visible when active.
 // The transient parents of these windows may have visual appearance properties
@@ -66,10 +68,10 @@
 // TODO(beng): currently the UI framework (views) implements the actual
 //             close-on-deactivate component of this feature but it should be
 //             possible to implement in the aura client.
-AURA_EXPORT void SetHideOnDeactivate(Window* window, bool hide_on_deactivate);
-AURA_EXPORT bool GetHideOnDeactivate(Window* window);
+WM_PUBLIC_EXPORT void SetHideOnDeactivate(aura::Window* window,
+                                          bool hide_on_deactivate);
+WM_PUBLIC_EXPORT bool GetHideOnDeactivate(aura::Window* window);
 
-}  // namespace clients
-}  // namespace aura
+}  // namespace wm
 
 #endif  // UI_WM_PUBLIC_ACTIVATION_CLIENT_H_
diff --git a/ui/wm/public/activation_delegate.cc b/ui/wm/public/activation_delegate.cc
index a548d05..5c7f417 100644
--- a/ui/wm/public/activation_delegate.cc
+++ b/ui/wm/public/activation_delegate.cc
@@ -7,21 +7,19 @@
 #include "ui/aura/window.h"
 #include "ui/base/class_property.h"
 
-DECLARE_UI_CLASS_PROPERTY_TYPE(aura::client::ActivationDelegate*)
+DECLARE_UI_CLASS_PROPERTY_TYPE(wm::ActivationDelegate*)
 
-namespace aura {
-namespace client {
+namespace wm {
 
 DEFINE_LOCAL_UI_CLASS_PROPERTY_KEY(
     ActivationDelegate*, kActivationDelegateKey, NULL);
 
-void SetActivationDelegate(Window* window, ActivationDelegate* delegate) {
+void SetActivationDelegate(aura::Window* window, ActivationDelegate* delegate) {
   window->SetProperty(kActivationDelegateKey, delegate);
 }
 
-ActivationDelegate* GetActivationDelegate(Window* window) {
+ActivationDelegate* GetActivationDelegate(aura::Window* window) {
   return window->GetProperty(kActivationDelegateKey);
 }
 
-}  // namespace client
-}  // namespace aura
+}  // namespace wm
diff --git a/ui/wm/public/activation_delegate.h b/ui/wm/public/activation_delegate.h
index c14973be..9fc83f4 100644
--- a/ui/wm/public/activation_delegate.h
+++ b/ui/wm/public/activation_delegate.h
@@ -5,15 +5,17 @@
 #ifndef UI_WM_PUBLIC_ACTIVATION_DELEGATE_H_
 #define UI_WM_PUBLIC_ACTIVATION_DELEGATE_H_
 
-#include "ui/aura/aura_export.h"
+#include "ui/wm/public/wm_public_export.h"
 
 namespace aura {
 class Window;
-namespace client {
+}
+
+namespace wm {
 
 // An interface implemented by an object that configures and responds to changes
 // to a window's activation state.
-class AURA_EXPORT ActivationDelegate {
+class WM_PUBLIC_EXPORT ActivationDelegate {
  public:
   // Returns true if the window should be activated.
   virtual bool ShouldActivate() const = 0;
@@ -23,11 +25,11 @@
 };
 
 // Sets/Gets the ActivationDelegate on the Window. No ownership changes.
-AURA_EXPORT void SetActivationDelegate(Window* window,
-                                       ActivationDelegate* delegate);
-AURA_EXPORT ActivationDelegate* GetActivationDelegate(Window* window);
+WM_PUBLIC_EXPORT void SetActivationDelegate(aura::Window* window,
+                                            ActivationDelegate* delegate);
+WM_PUBLIC_EXPORT ActivationDelegate* GetActivationDelegate(
+    aura::Window* window);
 
-}  // namespace client
-}  // namespace aura
+}  // namespace wm
 
 #endif  // UI_WM_PUBLIC_ACTIVATION_DELEGATE_H_
diff --git a/ui/wm/public/animation_host.cc b/ui/wm/public/animation_host.cc
index c9b3b26..e766cf5 100644
--- a/ui/wm/public/animation_host.cc
+++ b/ui/wm/public/animation_host.cc
@@ -7,22 +7,20 @@
 #include "ui/aura/window.h"
 #include "ui/base/class_property.h"
 
-DECLARE_UI_CLASS_PROPERTY_TYPE(aura::client::AnimationHost*)
+DECLARE_UI_CLASS_PROPERTY_TYPE(wm::AnimationHost*)
 
-namespace aura {
-namespace client {
+namespace wm {
 
 DEFINE_UI_CLASS_PROPERTY_KEY(AnimationHost*, kRootWindowAnimationHostKey, NULL);
 
-void SetAnimationHost(Window* window, AnimationHost* animation_host) {
+void SetAnimationHost(aura::Window* window, AnimationHost* animation_host) {
   DCHECK(window);
   window->SetProperty(kRootWindowAnimationHostKey, animation_host);
 }
 
-AnimationHost* GetAnimationHost(Window* window) {
+AnimationHost* GetAnimationHost(aura::Window* window) {
   DCHECK(window);
   return window->GetProperty(kRootWindowAnimationHostKey);
 }
 
-}  // namespace client
-}  // namespace aura
+}  // namespace wm
diff --git a/ui/wm/public/animation_host.h b/ui/wm/public/animation_host.h
index 71f9f4d..5bd75a8 100644
--- a/ui/wm/public/animation_host.h
+++ b/ui/wm/public/animation_host.h
@@ -6,20 +6,22 @@
 #define UI_WM_PUBLIC_ANIMATION_HOST_H_
 
 #include "base/compiler_specific.h"
-#include "ui/aura/aura_export.h"
+#include "ui/wm/public/wm_public_export.h"
+
+namespace aura {
+class Window;
+}
 
 namespace gfx {
 class Vector2d;
 }
 
-namespace aura {
-class Window;
-namespace client {
+namespace wm {
 
 // Interface for top level window host of animation. Communicates additional
 // bounds required for animation as well as animation completion for deferring
 // window closes on hide.
-class AURA_EXPORT AnimationHost {
+class WM_PUBLIC_EXPORT AnimationHost {
  public:
   // Ensure the host window is at least this large so that transitions have
   // sufficient space.
@@ -38,11 +40,10 @@
   virtual ~AnimationHost() {}
 };
 
-AURA_EXPORT void SetAnimationHost(Window* window,
-                                  AnimationHost* animation_host);
-AURA_EXPORT AnimationHost* GetAnimationHost(Window* window);
+WM_PUBLIC_EXPORT void SetAnimationHost(aura::Window* window,
+                                       AnimationHost* animation_host);
+WM_PUBLIC_EXPORT AnimationHost* GetAnimationHost(aura::Window* window);
 
-}  // namespace client
-}  // namespace aura
+}  // namespace wm
 
 #endif  // UI_WM_PUBLIC_ANIMATION_HOST_H_
diff --git a/ui/wm/public/scoped_drag_drop_disabler.cc b/ui/wm/public/scoped_drag_drop_disabler.cc
index 2234227..4ca3572 100644
--- a/ui/wm/public/scoped_drag_drop_disabler.cc
+++ b/ui/wm/public/scoped_drag_drop_disabler.cc
@@ -7,10 +7,9 @@
 #include "ui/aura/client/drag_drop_client.h"
 #include "ui/aura/window.h"
 
-namespace aura {
-namespace client {
+namespace wm {
 
-class NopDragDropClient : public DragDropClient {
+class NopDragDropClient : public aura::client::DragDropClient {
  public:
   ~NopDragDropClient() override {}
   int StartDragAndDrop(const ui::OSExchangeData& data,
@@ -27,9 +26,9 @@
   }
 };
 
-ScopedDragDropDisabler::ScopedDragDropDisabler(Window* window)
+ScopedDragDropDisabler::ScopedDragDropDisabler(aura::Window* window)
     : window_(window),
-      old_client_(GetDragDropClient(window)),
+      old_client_(aura::client::GetDragDropClient(window)),
       new_client_(new NopDragDropClient()) {
   SetDragDropClient(window_, new_client_.get());
   window_->AddObserver(this);
@@ -42,11 +41,10 @@
   }
 }
 
-void ScopedDragDropDisabler::OnWindowDestroyed(Window* window) {
+void ScopedDragDropDisabler::OnWindowDestroyed(aura::Window* window) {
   CHECK_EQ(window_, window);
   window_ = NULL;
   new_client_.reset();
 }
 
-}  // namespace client
-}  // namespace aura
+}  // namespace wm
diff --git a/ui/wm/public/scoped_drag_drop_disabler.h b/ui/wm/public/scoped_drag_drop_disabler.h
index bbbd93c..13207b1 100644
--- a/ui/wm/public/scoped_drag_drop_disabler.h
+++ b/ui/wm/public/scoped_drag_drop_disabler.h
@@ -9,33 +9,37 @@
 
 #include "base/macros.h"
 #include "ui/aura/window_observer.h"
+#include "ui/wm/public/wm_public_export.h"
 
 namespace aura {
 class Window;
 
 namespace client {
 class DragDropClient;
+}
+}
+
+namespace wm {
 
 // ScopedDragDropDisabler is used to temporarily replace the drag'n'drop client
 // for a window with a "no-op" client. Upon construction, it installs a new
 // client on the window, and upon destruction, it restores the previous one.
-class AURA_EXPORT ScopedDragDropDisabler : public WindowObserver {
+class WM_PUBLIC_EXPORT ScopedDragDropDisabler : public aura::WindowObserver {
  public:
-  explicit ScopedDragDropDisabler(Window* window);
+  explicit ScopedDragDropDisabler(aura::Window* window);
   ~ScopedDragDropDisabler() override;
 
  private:
   // WindowObserver:
-  void OnWindowDestroyed(Window* window) override;
+  void OnWindowDestroyed(aura::Window* window) override;
 
-  Window* window_;
-  DragDropClient* old_client_;
-  std::unique_ptr<DragDropClient> new_client_;
+  aura::Window* window_;
+  aura::client::DragDropClient* old_client_;
+  std::unique_ptr<aura::client::DragDropClient> new_client_;
 
   DISALLOW_COPY_AND_ASSIGN(ScopedDragDropDisabler);
 };
 
-}  // namespace client
-}  // namespace aura
+}  // namespace wm
 
 #endif  // UI_WM_PUBLIC_SCOPED_DRAG_DROP_DISABLER_H_
diff --git a/ui/wm/public/scoped_tooltip_disabler.cc b/ui/wm/public/scoped_tooltip_disabler.cc
index 45a39ca..eb2d1c5 100644
--- a/ui/wm/public/scoped_tooltip_disabler.cc
+++ b/ui/wm/public/scoped_tooltip_disabler.cc
@@ -7,8 +7,7 @@
 #include "ui/aura/window.h"
 #include "ui/wm/public/tooltip_client.h"
 
-namespace aura {
-namespace client {
+namespace wm {
 
 ScopedTooltipDisabler::ScopedTooltipDisabler(aura::Window* window)
     : root_(window ? window->GetRootWindow() : NULL) {
@@ -38,6 +37,4 @@
   EnableTooltips();
 }
 
-
-}  // namespace client
-}  // namespace aura
+}  // namespace wm
diff --git a/ui/wm/public/scoped_tooltip_disabler.h b/ui/wm/public/scoped_tooltip_disabler.h
index c9dfd8f7..530aafd 100644
--- a/ui/wm/public/scoped_tooltip_disabler.h
+++ b/ui/wm/public/scoped_tooltip_disabler.h
@@ -7,12 +7,12 @@
 
 #include "base/macros.h"
 #include "ui/aura/window_observer.h"
+#include "ui/wm/public/wm_public_export.h"
 
-namespace aura {
-namespace client {
+namespace wm {
 
 // Use to temporarily disable tooltips.
-class AURA_EXPORT ScopedTooltipDisabler : aura::WindowObserver {
+class WM_PUBLIC_EXPORT ScopedTooltipDisabler : aura::WindowObserver {
  public:
   // Disables tooltips on |window| (does nothing if |window| is NULL). Tooltips
   // are reenabled from the destructor when there are no most outstanding
@@ -34,7 +34,6 @@
   DISALLOW_COPY_AND_ASSIGN(ScopedTooltipDisabler);
 };
 
-}  // namespace client
-}  // namespace aura
+}  // namespace wm
 
 #endif  // UI_WM_PUBLIC_SCOPED_TOOLTIP_DISABLER_H_
diff --git a/ui/wm/public/tooltip_client.cc b/ui/wm/public/tooltip_client.cc
index d30f474..822e5a5 100644
--- a/ui/wm/public/tooltip_client.cc
+++ b/ui/wm/public/tooltip_client.cc
@@ -7,46 +7,43 @@
 #include "ui/aura/window.h"
 #include "ui/base/class_property.h"
 
-DECLARE_EXPORTED_UI_CLASS_PROPERTY_TYPE(AURA_EXPORT,
-                                        aura::client::TooltipClient*)
-DECLARE_EXPORTED_UI_CLASS_PROPERTY_TYPE(AURA_EXPORT, void**)
+DECLARE_EXPORTED_UI_CLASS_PROPERTY_TYPE(WM_PUBLIC_EXPORT, wm::TooltipClient*)
+DECLARE_EXPORTED_UI_CLASS_PROPERTY_TYPE(WM_PUBLIC_EXPORT, void**)
 
-namespace aura {
-namespace client {
+namespace wm {
 
 DEFINE_UI_CLASS_PROPERTY_KEY(TooltipClient*, kRootWindowTooltipClientKey, NULL);
 DEFINE_UI_CLASS_PROPERTY_KEY(base::string16*, kTooltipTextKey, NULL);
 DEFINE_UI_CLASS_PROPERTY_KEY(void*, kTooltipIdKey, NULL);
 
-void SetTooltipClient(Window* root_window, TooltipClient* client) {
+void SetTooltipClient(aura::Window* root_window, TooltipClient* client) {
   DCHECK_EQ(root_window->GetRootWindow(), root_window);
   root_window->SetProperty(kRootWindowTooltipClientKey, client);
 }
 
-TooltipClient* GetTooltipClient(Window* root_window) {
+TooltipClient* GetTooltipClient(aura::Window* root_window) {
   if (root_window)
     DCHECK_EQ(root_window->GetRootWindow(), root_window);
   return root_window ?
       root_window->GetProperty(kRootWindowTooltipClientKey) : NULL;
 }
 
-void SetTooltipText(Window* window, base::string16* tooltip_text) {
+void SetTooltipText(aura::Window* window, base::string16* tooltip_text) {
   window->SetProperty(kTooltipTextKey, tooltip_text);
 }
 
-void SetTooltipId(Window* window, void* id) {
+void SetTooltipId(aura::Window* window, void* id) {
   if (id != GetTooltipId(window))
     window->SetProperty(kTooltipIdKey, id);
 }
 
-const base::string16 GetTooltipText(Window* window) {
+const base::string16 GetTooltipText(aura::Window* window) {
   base::string16* string_ptr = window->GetProperty(kTooltipTextKey);
   return string_ptr ? *string_ptr : base::string16();
 }
 
-const void* GetTooltipId(Window* window) {
+const void* GetTooltipId(aura::Window* window) {
   return window->GetProperty(kTooltipIdKey);
 }
 
-}  // namespace client
-}  // namespace aura
+}  // namespace wm
diff --git a/ui/wm/public/tooltip_client.h b/ui/wm/public/tooltip_client.h
index 2b0ebcf..9328f01db 100644
--- a/ui/wm/public/tooltip_client.h
+++ b/ui/wm/public/tooltip_client.h
@@ -5,31 +5,30 @@
 #ifndef UI_WM_PUBLIC_TOOLTIP_CLIENT_H_
 #define UI_WM_PUBLIC_TOOLTIP_CLIENT_H_
 
-#include "ui/aura/aura_export.h"
 #include "ui/aura/window.h"
 #include "ui/gfx/font.h"
+#include "ui/wm/public/wm_public_export.h"
 
 namespace gfx {
 class Point;
 }
 
-namespace aura {
-class Window;
-namespace client {
+namespace wm {
 
 class ScopedTooltipDisabler;
 
-class AURA_EXPORT TooltipClient {
+class WM_PUBLIC_EXPORT TooltipClient {
  public:
   // Returns the max width of the tooltip when shown at the specified location.
   virtual int GetMaxWidth(const gfx::Point& point) const = 0;
 
   // Informs the shell tooltip manager of change in tooltip for window |target|.
-  virtual void UpdateTooltip(Window* target) = 0;
+  virtual void UpdateTooltip(aura::Window* target) = 0;
 
   // Sets the time after which the tooltip is hidden for Window |target|. If
   // |timeout_in_ms| is <= 0, the tooltip is shown indefinitely.
-  virtual void SetTooltipShownTimeout(Window* target, int timeout_in_ms) = 0;
+  virtual void SetTooltipShownTimeout(aura::Window* target,
+                                      int timeout_in_ms) = 0;
 
  protected:
   // Enables/Disables tooltips. This is treated as a reference count. Consumers
@@ -40,24 +39,23 @@
   friend class ScopedTooltipDisabler;
 };
 
-AURA_EXPORT void SetTooltipClient(Window* root_window,
-                                  TooltipClient* client);
-AURA_EXPORT TooltipClient* GetTooltipClient(Window* root_window);
+WM_PUBLIC_EXPORT void SetTooltipClient(aura::Window* root_window,
+                                       TooltipClient* client);
+WM_PUBLIC_EXPORT TooltipClient* GetTooltipClient(aura::Window* root_window);
 
 // Sets the text for the tooltip. The id is used to determine uniqueness when
 // the text does not change. For example, if the tooltip text does not change,
 // but the id does then the position of the tooltip is updated.
-AURA_EXPORT void SetTooltipText(Window* window,
-                                base::string16* tooltip_text);
-AURA_EXPORT void SetTooltipId(Window* window, void* id);
-AURA_EXPORT const base::string16 GetTooltipText(Window* window);
-AURA_EXPORT const void* GetTooltipId(Window* window);
+WM_PUBLIC_EXPORT void SetTooltipText(aura::Window* window,
+                                     base::string16* tooltip_text);
+WM_PUBLIC_EXPORT void SetTooltipId(aura::Window* window, void* id);
+WM_PUBLIC_EXPORT const base::string16 GetTooltipText(aura::Window* window);
+WM_PUBLIC_EXPORT const void* GetTooltipId(aura::Window* window);
 
-AURA_EXPORT extern const aura::WindowProperty<void*>* const kTooltipIdKey;
-AURA_EXPORT extern const aura::WindowProperty<base::string16*>* const
+WM_PUBLIC_EXPORT extern const aura::WindowProperty<void*>* const kTooltipIdKey;
+WM_PUBLIC_EXPORT extern const aura::WindowProperty<base::string16*>* const
     kTooltipTextKey;
 
-}  // namespace client
-}  // namespace aura
+}  // namespace wm
 
 #endif  // UI_WM_PUBLIC_TOOLTIP_CLIENT_H_
diff --git a/ui/wm/public/window_move_client.cc b/ui/wm/public/window_move_client.cc
index cb918886..05818baa 100644
--- a/ui/wm/public/window_move_client.cc
+++ b/ui/wm/public/window_move_client.cc
@@ -7,22 +7,20 @@
 #include "ui/aura/window.h"
 #include "ui/base/class_property.h"
 
-DECLARE_UI_CLASS_PROPERTY_TYPE(aura::client::WindowMoveClient*)
+DECLARE_UI_CLASS_PROPERTY_TYPE(wm::WindowMoveClient*)
 
-namespace aura {
-namespace client {
+namespace wm {
 
 // A property key to store a client that handles window moves.
 DEFINE_LOCAL_UI_CLASS_PROPERTY_KEY(
     WindowMoveClient*, kWindowMoveClientKey, NULL);
 
-void SetWindowMoveClient(Window* window, WindowMoveClient* client) {
+void SetWindowMoveClient(aura::Window* window, WindowMoveClient* client) {
   window->SetProperty(kWindowMoveClientKey, client);
 }
 
-WindowMoveClient* GetWindowMoveClient(Window* window) {
+WindowMoveClient* GetWindowMoveClient(aura::Window* window) {
   return window->GetProperty(kWindowMoveClientKey);
 }
 
-}  // namespace client
-}  // namespace aura
+}  // namespace wm
diff --git a/ui/wm/public/window_move_client.h b/ui/wm/public/window_move_client.h
index 0761ec33..f709a882 100644
--- a/ui/wm/public/window_move_client.h
+++ b/ui/wm/public/window_move_client.h
@@ -5,12 +5,14 @@
 #ifndef UI_WM_PUBLIC_WINDOW_MOVE_CLIENT_H_
 #define UI_WM_PUBLIC_WINDOW_MOVE_CLIENT_H_
 
-#include "ui/aura/aura_export.h"
 #include "ui/gfx/geometry/vector2d.h"
+#include "ui/wm/public/wm_public_export.h"
 
 namespace aura {
 class Window;
-namespace client {
+}
+
+namespace wm {
 
 enum WindowMoveResult {
   MOVE_SUCCESSFUL,  // Moving window was successful.
@@ -24,13 +26,13 @@
 
 // An interface implemented by an object that manages programatically keyed
 // window moving.
-class AURA_EXPORT WindowMoveClient {
+class WM_PUBLIC_EXPORT WindowMoveClient {
  public:
   // Starts a nested run loop for moving the window. |drag_offset| is the
   // offset from the window origin to the cursor when the drag was started.
   // Returns MOVE_SUCCESSFUL if the move has completed successfully, or
   // MOVE_CANCELED otherwise.
-  virtual WindowMoveResult RunMoveLoop(Window* window,
+  virtual WindowMoveResult RunMoveLoop(aura::Window* window,
                                        const gfx::Vector2d& drag_offset,
                                        WindowMoveSource source) = 0;
 
@@ -42,11 +44,10 @@
 };
 
 // Sets/Gets the activation client for the specified window.
-AURA_EXPORT void SetWindowMoveClient(Window* window,
-                                     WindowMoveClient* client);
-AURA_EXPORT WindowMoveClient* GetWindowMoveClient(Window* window);
+WM_PUBLIC_EXPORT void SetWindowMoveClient(aura::Window* window,
+                                          WindowMoveClient* client);
+WM_PUBLIC_EXPORT WindowMoveClient* GetWindowMoveClient(aura::Window* window);
 
-}  // namespace client
-}  // namespace aura
+}  // namespace wm
 
 #endif  // UI_WM_PUBLIC_WINDOW_MOVE_CLIENT_H_
diff --git a/ui/wm/public/wm_public_export.h b/ui/wm/public/wm_public_export.h
new file mode 100644
index 0000000..90bcd609
--- /dev/null
+++ b/ui/wm/public/wm_public_export.h
@@ -0,0 +1,32 @@
+// Copyright 2017 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef UI_WM_PUBLIC_WM_PUBLIC_EXPORT_H_
+#define UI_WM_PUBLIC_WM_PUBLIC_EXPORT_H_
+
+// Defines WM_PUBLIC_EXPORT so that functionality implemented by the wm_public
+// module can be exported to consumers.
+
+#if defined(COMPONENT_BUILD)
+#if defined(WIN32)
+
+#if defined(WM_PUBLIC_IMPLEMENTATION)
+#define WM_PUBLIC_EXPORT __declspec(dllexport)
+#else
+#define WM_PUBLIC_EXPORT __declspec(dllimport)
+#endif  // defined(WM_PUBLIC_IMPLEMENTATION)
+
+#else  // defined(WIN32)
+#if defined(WM_PUBLIC_IMPLEMENTATION)
+#define WM_PUBLIC_EXPORT __attribute__((visibility("default")))
+#else
+#define WM_PUBLIC_EXPORT
+#endif
+#endif
+
+#else  // defined(COMPONENT_BUILD)
+#define WM_PUBLIC_EXPORT
+#endif
+
+#endif  // UI_WM_PUBLIC_WM_PUBLIC_EXPORT_H_