diff --git a/.gn b/.gn
index 648c4c4..6dac08f3 100644
--- a/.gn
+++ b/.gn
@@ -189,7 +189,6 @@
   "//content/browser/browser.gni",
   "//content/child/child.gni",
   "//content/common/common.gni",
-  "//content/content.gni",
   "//content/public/android/BUILD.gn",
   "//content/renderer/renderer.gni",
   "//content/test/BUILD.gn",
diff --git a/DEPS b/DEPS
index 277039a..b74a0b6 100644
--- a/DEPS
+++ b/DEPS
@@ -43,7 +43,7 @@
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling V8
   # and whatever else without interference from each other.
-  'v8_revision': '0f1adf590ad26ee3c33a50cbb4988cbb2615404b',
+  'v8_revision': '8e18e51a50775594c8cbda14fca898c2923ac30d',
   # 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.
diff --git a/build/config/posix/BUILD.gn b/build/config/posix/BUILD.gn
index 1abbceb..e862c50 100644
--- a/build/config/posix/BUILD.gn
+++ b/build/config/posix/BUILD.gn
@@ -11,7 +11,7 @@
 # that is Posix-only. Please see that target for advice on what should go in
 # :runtime_library vs. :compiler.
 config("runtime_library") {
-  if (!is_mac && sysroot != "") {
+  if (!is_mac && !is_ios && sysroot != "") {
     # Pass the sysroot to all C compiler variants, the assembler, and linker.
     cflags = [ "--sysroot=" + rebase_path(sysroot, root_build_dir) ]
     asmflags = cflags
diff --git a/chrome/browser/ui/views/frame/browser_view.cc b/chrome/browser/ui/views/frame/browser_view.cc
index 30a320de..bfb23b6 100644
--- a/chrome/browser/ui/views/frame/browser_view.cc
+++ b/chrome/browser/ui/views/frame/browser_view.cc
@@ -2215,18 +2215,32 @@
 }
 
 void BrowserView::SetBookmarkBarParent(views::View* new_parent) {
+  // Because children are drawn in order, the child order also affects z-order:
+  // earlier children will appear "below" later ones.  This is important for ink
+  // drops, which are drawn with the z-order of the view that parents them.  Ink
+  // drops in the toolbar can spread beyond the toolbar bounds, so if the
+  // bookmark bar is attached, we want it to be below the toolbar so the toolbar
+  // ink drops draw atop it.  This doesn't cause a problem for interactions with
+  // the bookmark bar, since it does not host any ink drops that spread beyond
+  // its bounds.  If it did, we would need to change how ink drops are drawn.
+  // TODO(bruthig): Consider a more general mechanism for manipulating the
+  // z-order of the ink drops.
+
   if (new_parent == this) {
-    // Add it underneath |top_container_| or at the end if top container isn't
-    // found.
-    int top_container_index = GetIndexOf(top_container_);
-    if (top_container_index >= 0)
-      AddChildViewAt(bookmark_bar_view_.get(), top_container_index);
-    else
-      AddChildView(bookmark_bar_view_.get());
-  } else if (new_parent) {
-    // No special stacking is required for other parents.
-    new_parent->AddChildView(bookmark_bar_view_.get());
+    // BookmarkBarView is detached.
+    const int top_container_index = GetIndexOf(top_container_);
+    DCHECK_GE(top_container_index, 0);
+    // |top_container_| contains the toolbar, so putting the bookmark bar ahead
+    // of it will ensure it's drawn before the toolbar.
+    AddChildViewAt(bookmark_bar_view_.get(), top_container_index);
+  } else if (new_parent == top_container_) {
+    // BookmarkBarView is attached.
+
+    // The toolbar is a child of |top_container_|, so making the bookmark bar
+    // the first child ensures it's drawn before the toolbar.
+    new_parent->AddChildViewAt(bookmark_bar_view_.get(), 0);
   } else {
+    DCHECK(!new_parent);
     // Bookmark bar is being detached from all views because it is hidden.
     bookmark_bar_view_->parent()->RemoveChildView(bookmark_bar_view_.get());
   }
diff --git a/chrome/installer/mini_installer/chrome.release b/chrome/installer/mini_installer/chrome.release
index 4574f89..1816869d 100644
--- a/chrome/installer/mini_installer/chrome.release
+++ b/chrome/installer/mini_installer/chrome.release
@@ -38,7 +38,6 @@
 resources.pak: %(VersionDir)s\
 snapshot_blob.bin: %(VersionDir)s\
 syzyasan_rtl.dll: %(VersionDir)s\
-xinput1_3.dll: %(VersionDir)s\
 #
 # Sub directories living in the version dir
 #
diff --git a/chrome/tools/build/win/FILES.cfg b/chrome/tools/build/win/FILES.cfg
index 9e4fcb8..5ba63fc 100644
--- a/chrome/tools/build/win/FILES.cfg
+++ b/chrome/tools/build/win/FILES.cfg
@@ -377,11 +377,6 @@
     'buildtype': ['dev', 'official'],
     'filegroup': ['default', 'symsrc'],
   },
-  # XInput files:
-  {
-    'filename': 'xinput1_3.dll',
-    'buildtype': ['dev', 'official'],
-  },
   # Native Client plugin files:
   {
     'filename': 'nacl_irt_x86_32.nexe',
diff --git a/content/browser/gamepad/gamepad_platform_data_fetcher_win.cc b/content/browser/gamepad/gamepad_platform_data_fetcher_win.cc
index 3983694..c761e838 100644
--- a/content/browser/gamepad/gamepad_platform_data_fetcher_win.cc
+++ b/content/browser/gamepad/gamepad_platform_data_fetcher_win.cc
@@ -53,10 +53,25 @@
   }
 }
 
+const WebUChar* XInputDllFileName() {
+  // Xinput.h defines filename (XINPUT_DLL) on different Windows versions, but
+  // Xinput.h specifies it in build time. Approach here uses the same values
+  // and it is resolving dll filename based on Windows version it is running on.
+  if (base::win::GetVersion() >= base::win::VERSION_WIN8) {
+    // For Windows 8 and 10, XINPUT_DLL is xinput1_4.dll.
+    return FILE_PATH_LITERAL("xinput1_4.dll");
+  } else if (base::win::GetVersion() >= base::win::VERSION_WIN7) {
+    return FILE_PATH_LITERAL("xinput9_1_0.dll");
+  } else {
+    NOTREACHED();
+    return nullptr;
+  }
+}
+
 }  // namespace
 
 GamepadPlatformDataFetcherWin::GamepadPlatformDataFetcherWin()
-    : xinput_dll_(base::FilePath(FILE_PATH_LITERAL("xinput1_3.dll"))),
+    : xinput_dll_(base::FilePath(XInputDllFileName())),
       xinput_available_(GetXInputDllFunctions()) {
   for (size_t i = 0; i < WebGamepads::itemsLengthCap; ++i) {
     platform_pad_state_[i].status = DISCONNECTED;
@@ -317,10 +332,8 @@
 bool GamepadPlatformDataFetcherWin::GetXInputDllFunctions() {
   xinput_get_capabilities_ = NULL;
   xinput_get_state_ = NULL;
-  xinput_enable_ = reinterpret_cast<XInputEnableFunc>(
+  XInputEnableFunc xinput_enable = reinterpret_cast<XInputEnableFunc>(
       xinput_dll_.GetFunctionPointer("XInputEnable"));
-  if (!xinput_enable_)
-    return false;
   xinput_get_capabilities_ = reinterpret_cast<XInputGetCapabilitiesFunc>(
       xinput_dll_.GetFunctionPointer("XInputGetCapabilities"));
   if (!xinput_get_capabilities_)
@@ -329,7 +342,10 @@
       xinput_dll_.GetFunctionPointer("XInputGetState"));
   if (!xinput_get_state_)
     return false;
-  xinput_enable_(true);
+  if (xinput_enable) {
+    // XInputEnable is unavailable before Win8 and deprecated in Win10.
+    xinput_enable(true);
+  }
   return true;
 }
 
diff --git a/content/browser/gamepad/gamepad_platform_data_fetcher_win.h b/content/browser/gamepad/gamepad_platform_data_fetcher_win.h
index f1efab3..53356698 100644
--- a/content/browser/gamepad/gamepad_platform_data_fetcher_win.h
+++ b/content/browser/gamepad/gamepad_platform_data_fetcher_win.h
@@ -49,10 +49,8 @@
   typedef DWORD (WINAPI *XInputGetStateFunc)(
       DWORD dwUserIndex, XINPUT_STATE* pState);
 
-  // Get functions from dynamically loaded xinput1_3.dll. We don't use
-  // DELAYLOAD because the import library for Win8 SDK pulls xinput1_4 which
-  // isn't redistributable. Returns true if loading was successful. We include
-  // xinput1_3.dll with Chrome.
+  // Get functions from dynamically loading the xinput dll.
+  // Returns true if loading was successful.
   bool GetXInputDllFunctions();
 
   // Scan for connected XInput and DirectInput gamepads.
@@ -71,7 +69,6 @@
 
   // Function pointers to XInput functionality, retrieved in
   // |GetXinputDllFunctions|.
-  XInputEnableFunc xinput_enable_;
   XInputGetCapabilitiesFunc xinput_get_capabilities_;
   XInputGetStateFunc xinput_get_state_;
 
diff --git a/content/content.gni b/content/content.gni
deleted file mode 100644
index e0834a3..0000000
--- a/content/content.gni
+++ /dev/null
@@ -1,12 +0,0 @@
-# Copyright 2014 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.
-
-if (is_win) {
-  directxsdk_exists =
-      exec_script("//build/dir_exists.py",
-                  [ rebase_path("//third_party/directxsdk", root_build_dir) ],
-                  "trim string") == "True"
-} else {
-  directxsdk_exists = false
-}
diff --git a/content/content.gyp b/content/content.gyp
index ff15c09..5c7a490 100644
--- a/content/content.gyp
+++ b/content/content.gyp
@@ -6,7 +6,6 @@
   'variables': {
     'chromium_code': 1,  # Use higher warning level.
     'chromium_enable_vtune_jit_for_v8%': 0,  # enable the vtune support for V8 engine.
-    'directxsdk_exists': '<!pymod_do_main(dir_exists ../third_party/directxsdk)',
   },
   'target_defaults': {
     'defines': ['CONTENT_IMPLEMENTATION'],
diff --git a/content/content_common.gypi b/content/content_common.gypi
index 2e08940c..281d6b5 100644
--- a/content/content_common.gypi
+++ b/content/content_common.gypi
@@ -1023,30 +1023,6 @@
         '<(DEPTH)/third_party/khronos',
       ],
     }],
-    ['OS=="win" and directxsdk_exists=="True"', {
-      'actions': [
-      {
-        'action_name': 'extract_xinput',
-        'variables': {
-          'input': 'APR2007_xinput_<(winsdk_arch).cab',
-          'output': 'xinput1_3.dll',
-        },
-        'inputs': [
-          '../third_party/directxsdk/files/Redist/<(input)',
-        ],
-        'outputs': [
-          '<(PRODUCT_DIR)/<(output)',
-        ],
-        'action': [
-          'python',
-        '../build/extract_from_cab.py',
-        '..\\third_party\\directxsdk\\files\\Redist\\<(input)',
-        '<(output)',
-        '<(PRODUCT_DIR)',
-        ],
-      },
-     ]
-    }],
     ['use_seccomp_bpf==0', {
       'sources!': [
         'common/sandbox_linux/android/sandbox_bpf_base_policy_android.cc',
diff --git a/content/gpu/BUILD.gn b/content/gpu/BUILD.gn
index a31e94fd..44db599 100644
--- a/content/gpu/BUILD.gn
+++ b/content/gpu/BUILD.gn
@@ -3,7 +3,6 @@
 # found in the LICENSE file.
 
 import("//build/config/ui.gni")
-import("//content/content.gni")
 import("//media/media_options.gni")
 
 # See //content/BUILD.gn for how this works.
diff --git a/third_party/WebKit/LayoutTests/TestExpectations b/third_party/WebKit/LayoutTests/TestExpectations
index c6fc0dd7..291757e 100644
--- a/third_party/WebKit/LayoutTests/TestExpectations
+++ b/third_party/WebKit/LayoutTests/TestExpectations
@@ -93,11 +93,6 @@
 crbug.com/524236 virtual/spv2/paint/invalidation/spv2/updating-scrolling-content-as-text.html [ Failure ]
 crbug.com/524236 virtual/spv2/paint/invalidation/spv2/scrolling-without-painting-as-text.html [ Failure ]
 
-crbug.com/597517 fast/borders/bidi-002.html [ NeedsRebaseline ]
-crbug.com/597517 fast/borders/bidi-009a.html [ NeedsRebaseline ]
-crbug.com/597517 svg/text/text-layout-crash.html [ NeedsRebaseline ]
-crbug.com/597517 css2.1/20110323/replaced-intrinsic-003.htm [ NeedsRebaseline ]
-
 crbug.com/527242 virtual/spv2/paint/invalidation/spv2/cached-cell-append.html [ Failure ]
 crbug.com/527242 virtual/spv2/paint/invalidation/spv2/cached-cell-remove.html [ Failure ]
 crbug.com/527242 virtual/spv2/paint/invalidation/spv2/cached-change-cell-border-width.html [ Failure ]
diff --git a/third_party/WebKit/LayoutTests/platform/android/css2.1/20110323/replaced-intrinsic-003-expected.png b/third_party/WebKit/LayoutTests/platform/android/css2.1/20110323/replaced-intrinsic-003-expected.png
new file mode 100644
index 0000000..3adbfc5
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/android/css2.1/20110323/replaced-intrinsic-003-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/android/css2.1/20110323/replaced-intrinsic-003-expected.txt b/third_party/WebKit/LayoutTests/platform/android/css2.1/20110323/replaced-intrinsic-003-expected.txt
new file mode 100644
index 0000000..fab3b834
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/android/css2.1/20110323/replaced-intrinsic-003-expected.txt
@@ -0,0 +1,16 @@
+layer at (0,0) size 800x600
+  LayoutView at (0,0) size 800x600
+layer at (0,0) size 800x268
+  LayoutBlockFlow {HTML} at (0,0) size 800x268 [color=#000080]
+    LayoutBlockFlow {BODY} at (8,16) size 784x236
+      LayoutBlockFlow {DIV} at (0,0) size 100x200
+        LayoutBlockFlow {P} at (0,0) size 100x200
+      LayoutBlockFlow {P} at (0,216) size 784x20
+        LayoutText {#text} at (0,0) size 409x19
+          text run at (0,0) width 409: "There should be a complete unbroken yin-yang symbol (\x{E2}\x{2DC}\x{AF}) above."
+layer at (8,16) size 200x200
+  LayoutEmbeddedObject {OBJECT} at (0,0) size 200x200
+    layer at (0,0) size 100x200
+      LayoutView at (0,0) size 100x200
+    layer at (0,0) size 100x200
+      LayoutSVGRoot {svg} at (0,0) size 0x0
diff --git a/third_party/WebKit/LayoutTests/platform/android/fast/borders/bidi-009a-expected.png b/third_party/WebKit/LayoutTests/platform/android/fast/borders/bidi-009a-expected.png
new file mode 100644
index 0000000..70a5573
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/android/fast/borders/bidi-009a-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/android/fast/borders/bidi-009a-expected.txt b/third_party/WebKit/LayoutTests/platform/android/fast/borders/bidi-009a-expected.txt
new file mode 100644
index 0000000..c5bdcf9
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/android/fast/borders/bidi-009a-expected.txt
@@ -0,0 +1,79 @@
+layer at (0,0) size 800x600
+  LayoutView at (0,0) size 800x600
+layer at (0,0) size 800x292
+  LayoutBlockFlow {HTML} at (0,0) size 800x292
+    LayoutBlockFlow {BODY} at (8,16) size 784x244
+      LayoutBlockFlow {P} at (0,0) size 784x20
+        LayoutText {#text} at (0,0) size 479x19
+          text run at (0,0) width 479: "The following two blocks should be identical, including overflow. (Force bidi: \x{D7}\x{90})"
+      LayoutBlockFlow {DIV} at (32,52) size 720x80 [color=#FFFF00] [bgcolor=#000000]
+        LayoutTable (anonymous) at (24,24) size 256x32
+          LayoutTableSection (anonymous) at (0,0) size 256x32
+            LayoutTableRow {P} at (0,0) size 256x32
+              LayoutTableCell (anonymous) at (0,0) size 256x32 [r=0 c=0 rs=1 cs=1]
+                LayoutInline {SPAN} at (0,0) size 14x36
+                  LayoutText {#text} at (0,-2) size 14x36
+                    text run at (0,-2) width 14: "a"
+                LayoutInline {SPAN} at (0,0) size 19x50 [color=#FF00FF] [border: (3px solid #FF00FF) none (3px solid #FF00FF)]
+                  LayoutText {#text} at (33,-2) size 16x36
+                    text run at (33,-2) width 16: "b"
+                LayoutInline {SPAN} at (0,0) size 17x50 [color=#00FFFF] [border: (3px solid #00FFFF) none (3px solid #00FFFF)]
+                  LayoutText {#text} at (68,-2) size 14x36
+                    text run at (68,-2) width 14: "c"
+                LayoutInline {SPAN} at (0,0) size 16x50 [color=#FF00FF] [border: (3px solid #FF00FF) none (3px solid #FF00FF) none]
+                  LayoutText {#text} at (82,-2) size 16x36
+                    text run at (82,-2) width 16: "d"
+                LayoutInline {SPAN} at (0,0) size 14x50 [color=#00FFFF] [border: (3px solid #00FFFF) none (3px solid #00FFFF) none]
+                  LayoutText {#text} at (98,-2) size 14x36
+                    text run at (98,-2) width 14: "e"
+                LayoutInline {SPAN} at (0,0) size 10x36
+                  LayoutText {#text} at (112,-2) size 10x36
+                    text run at (112,-2) width 10: "f"
+                LayoutInline {SPAN} at (0,0) size 15x36
+                  LayoutText {#text} at (122,-2) size 15x36
+                    text run at (122,-2) width 15: "g"
+                LayoutInline {SPAN} at (0,0) size 15x36
+                  LayoutText {#text} at (137,-2) size 15x36
+                    text run at (137,-2) width 15: "h"
+                LayoutInline {SPAN} at (0,0) size 9x50 [color=#FF00FF] [border: (3px solid #FF00FF) none (3px solid #FF00FF) none]
+                  LayoutText {#text} at (152,-2) size 9x36
+                    text run at (152,-2) width 9: "i"
+                LayoutInline {SPAN} at (0,0) size 12x50 [color=#00FFFF] [border: (3px solid #00FFFF) none]
+                  LayoutText {#text} at (161,-2) size 9x36
+                    text run at (161,-2) width 9: "j"
+                LayoutInline {SPAN} at (0,0) size 19x50 [color=#FF00FF] [border: (3px solid #FF00FF) none]
+                  LayoutText {#text} at (189,-2) size 16x36
+                    text run at (189,-2) width 16: "k"
+                LayoutInline {SPAN} at (0,0) size 9x36
+                  LayoutText {#text} at (224,-2) size 9x36
+                    text run at (224,-2) width 9: "l"
+                LayoutInline {SPAN} at (0,0) size 23x36
+                  LayoutText {#text} at (233,-2) size 23x36
+                    text run at (233,-2) width 23: "m"
+      LayoutBlockFlow {DIV} at (32,164) size 720x80 [color=#FFFF00] [bgcolor=#000000]
+        LayoutTable (anonymous) at (24,24) size 256x32
+          LayoutTableSection (anonymous) at (0,0) size 256x32
+            LayoutTableRow {P} at (0,0) size 256x32
+              LayoutTableCell (anonymous) at (0,0) size 256x32 [r=0 c=0 rs=1 cs=1]
+                LayoutText {#text} at (0,-2) size 233x36
+                  text run at (0,-2) width 14: "a"
+                  text run at (49,-2) width 0 LTR override: "\x{202D}"
+                  text run at (224,-2) width 9 RTL override: "\x{202E}l"
+                LayoutInline {SPAN} at (0,0) size 108x50 [color=#00FFFF] [border: (3px solid #00FFFF)]
+                  LayoutText {#text} at (68,-2) size 102x36
+                    text run at (68,-2) width 14 LTR override: "c"
+                    text run at (98,-2) width 14 LTR override: "\x{202D}e"
+                    text run at (152,-2) width 0 RTL override: "\x{202E}"
+                    text run at (161,-2) width 9 RTL override: "\x{202E}j"
+                LayoutText {#text} at (112,-2) size 40x36
+                  text run at (112,-2) width 10 RTL override: "\x{202C}f"
+                  text run at (122,-2) width 15 LTR override: "\x{202D}g"
+                  text run at (137,-2) width 15 RTL override: "h"
+                LayoutInline {SPAN} at (0,0) size 178x50 [color=#FF00FF] [border: (3px solid #FF00FF)]
+                  LayoutText {#text} at (33,-2) size 172x36
+                    text run at (33,-2) width 16 RTL override: "\x{202C}b"
+                    text run at (82,-2) width 16 RTL override: "\x{202C}d"
+                    text run at (152,-2) width 9 LTR override: "\x{202C}i"
+                    text run at (189,-2) width 16 LTR override: "\x{202C}k"
+                LayoutText {#text} at (233,-2) size 23x36
+                  text run at (233,-2) width 23: "\x{202C}m"
diff --git a/third_party/WebKit/LayoutTests/platform/linux/css2.1/20110323/replaced-intrinsic-003-expected.png b/third_party/WebKit/LayoutTests/platform/linux/css2.1/20110323/replaced-intrinsic-003-expected.png
index 3adbfc5..802d91c 100644
--- a/third_party/WebKit/LayoutTests/platform/linux/css2.1/20110323/replaced-intrinsic-003-expected.png
+++ b/third_party/WebKit/LayoutTests/platform/linux/css2.1/20110323/replaced-intrinsic-003-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/css2.1/20110323/replaced-intrinsic-003-expected.txt b/third_party/WebKit/LayoutTests/platform/linux/css2.1/20110323/replaced-intrinsic-003-expected.txt
index fab3b834..1b5c0b50 100644
--- a/third_party/WebKit/LayoutTests/platform/linux/css2.1/20110323/replaced-intrinsic-003-expected.txt
+++ b/third_party/WebKit/LayoutTests/platform/linux/css2.1/20110323/replaced-intrinsic-003-expected.txt
@@ -6,8 +6,8 @@
       LayoutBlockFlow {DIV} at (0,0) size 100x200
         LayoutBlockFlow {P} at (0,0) size 100x200
       LayoutBlockFlow {P} at (0,216) size 784x20
-        LayoutText {#text} at (0,0) size 409x19
-          text run at (0,0) width 409: "There should be a complete unbroken yin-yang symbol (\x{E2}\x{2DC}\x{AF}) above."
+        LayoutText {#text} at (0,0) size 403x19
+          text run at (0,0) width 403: "There should be a complete unbroken yin-yang symbol (\x{262F}) above."
 layer at (8,16) size 200x200
   LayoutEmbeddedObject {OBJECT} at (0,0) size 200x200
     layer at (0,0) size 100x200
diff --git a/third_party/WebKit/LayoutTests/platform/linux/fast/borders/bidi-002-expected.png b/third_party/WebKit/LayoutTests/platform/linux/fast/borders/bidi-002-expected.png
index 4f6b056..2411af37 100644
--- a/third_party/WebKit/LayoutTests/platform/linux/fast/borders/bidi-002-expected.png
+++ b/third_party/WebKit/LayoutTests/platform/linux/fast/borders/bidi-002-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/fast/borders/bidi-002-expected.txt b/third_party/WebKit/LayoutTests/platform/linux/fast/borders/bidi-002-expected.txt
index e02f4175..46a00d7 100644
--- a/third_party/WebKit/LayoutTests/platform/linux/fast/borders/bidi-002-expected.txt
+++ b/third_party/WebKit/LayoutTests/platform/linux/fast/borders/bidi-002-expected.txt
@@ -4,8 +4,10 @@
   LayoutBlockFlow {HTML} at (0,0) size 800x264
     LayoutBlockFlow {BODY} at (8,16) size 784x232
       LayoutBlockFlow {P} at (0,0) size 784x20
-        LayoutText {#text} at (0,0) size 479x19
-          text run at (0,0) width 479: "The following two blocks should be identical, including overflow. (Force bidi: \x{D7}\x{90})"
+        LayoutText {#text} at (0,0) size 478x19
+          text run at (0,0) width 465: "The following two blocks should be identical, including overflow. (Force bidi: "
+          text run at (464,0) width 9 RTL: "\x{5D0}"
+          text run at (472,0) width 6: ")"
       LayoutBlockFlow {DIV} at (0,36) size 784x196
         LayoutBlockFlow {P} at (16,0) size 294x90 [bgcolor=#FFFFCC] [border: (3px solid #000000)]
           LayoutInline {SPAN} at (0,0) size 115x39 [color=#000080] [border: (3px solid #000080) none (3px solid #000080)]
diff --git a/third_party/WebKit/LayoutTests/platform/linux/fast/borders/bidi-009a-expected.png b/third_party/WebKit/LayoutTests/platform/linux/fast/borders/bidi-009a-expected.png
index 70a5573..c6578a9 100644
--- a/third_party/WebKit/LayoutTests/platform/linux/fast/borders/bidi-009a-expected.png
+++ b/third_party/WebKit/LayoutTests/platform/linux/fast/borders/bidi-009a-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/fast/borders/bidi-009a-expected.txt b/third_party/WebKit/LayoutTests/platform/linux/fast/borders/bidi-009a-expected.txt
index c5bdcf9..5415b633 100644
--- a/third_party/WebKit/LayoutTests/platform/linux/fast/borders/bidi-009a-expected.txt
+++ b/third_party/WebKit/LayoutTests/platform/linux/fast/borders/bidi-009a-expected.txt
@@ -4,8 +4,10 @@
   LayoutBlockFlow {HTML} at (0,0) size 800x292
     LayoutBlockFlow {BODY} at (8,16) size 784x244
       LayoutBlockFlow {P} at (0,0) size 784x20
-        LayoutText {#text} at (0,0) size 479x19
-          text run at (0,0) width 479: "The following two blocks should be identical, including overflow. (Force bidi: \x{D7}\x{90})"
+        LayoutText {#text} at (0,0) size 478x19
+          text run at (0,0) width 465: "The following two blocks should be identical, including overflow. (Force bidi: "
+          text run at (464,0) width 9 RTL: "\x{5D0}"
+          text run at (472,0) width 6: ")"
       LayoutBlockFlow {DIV} at (32,52) size 720x80 [color=#FFFF00] [bgcolor=#000000]
         LayoutTable (anonymous) at (24,24) size 256x32
           LayoutTableSection (anonymous) at (0,0) size 256x32
diff --git a/third_party/WebKit/LayoutTests/platform/mac/css2.1/20110323/replaced-intrinsic-003-expected.png b/third_party/WebKit/LayoutTests/platform/mac/css2.1/20110323/replaced-intrinsic-003-expected.png
index 185de17..f82379f 100644
--- a/third_party/WebKit/LayoutTests/platform/mac/css2.1/20110323/replaced-intrinsic-003-expected.png
+++ b/third_party/WebKit/LayoutTests/platform/mac/css2.1/20110323/replaced-intrinsic-003-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac/css2.1/20110323/replaced-intrinsic-003-expected.txt b/third_party/WebKit/LayoutTests/platform/mac/css2.1/20110323/replaced-intrinsic-003-expected.txt
index b2be4107..4e142b0d 100644
--- a/third_party/WebKit/LayoutTests/platform/mac/css2.1/20110323/replaced-intrinsic-003-expected.txt
+++ b/third_party/WebKit/LayoutTests/platform/mac/css2.1/20110323/replaced-intrinsic-003-expected.txt
@@ -1,13 +1,13 @@
 layer at (0,0) size 800x600
   LayoutView at (0,0) size 800x600
-layer at (0,0) size 800x266
-  LayoutBlockFlow {HTML} at (0,0) size 800x266 [color=#000080]
-    LayoutBlockFlow {BODY} at (8,16) size 784x234
+layer at (0,0) size 800x267
+  LayoutBlockFlow {HTML} at (0,0) size 800x267 [color=#000080]
+    LayoutBlockFlow {BODY} at (8,16) size 784x235
       LayoutBlockFlow {DIV} at (0,0) size 100x200
         LayoutBlockFlow {P} at (0,0) size 100x200
-      LayoutBlockFlow {P} at (0,216) size 784x18
-        LayoutText {#text} at (0,0) size 432x18
-          text run at (0,0) width 432: "There should be a complete unbroken yin-yang symbol (\x{E2}\x{2DC}\x{AF}) above."
+      LayoutBlockFlow {P} at (0,216) size 784x19
+        LayoutText {#text} at (0,0) size 431x18
+          text run at (0,0) width 431: "There should be a complete unbroken yin-yang symbol (\x{262F}) above."
 layer at (8,16) size 200x200
   LayoutEmbeddedObject {OBJECT} at (0,0) size 200x200
     layer at (0,0) size 100x200
diff --git a/third_party/WebKit/LayoutTests/platform/mac/fast/borders/bidi-002-expected.png b/third_party/WebKit/LayoutTests/platform/mac/fast/borders/bidi-002-expected.png
index f2660856..b248860 100644
--- a/third_party/WebKit/LayoutTests/platform/mac/fast/borders/bidi-002-expected.png
+++ b/third_party/WebKit/LayoutTests/platform/mac/fast/borders/bidi-002-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac/fast/borders/bidi-002-expected.txt b/third_party/WebKit/LayoutTests/platform/mac/fast/borders/bidi-002-expected.txt
index 384bf1f..92b0c6944 100644
--- a/third_party/WebKit/LayoutTests/platform/mac/fast/borders/bidi-002-expected.txt
+++ b/third_party/WebKit/LayoutTests/platform/mac/fast/borders/bidi-002-expected.txt
@@ -1,12 +1,14 @@
 layer at (0,0) size 800x600
   LayoutView at (0,0) size 800x600
-layer at (0,0) size 800x258
-  LayoutBlockFlow {HTML} at (0,0) size 800x258
-    LayoutBlockFlow {BODY} at (8,16) size 784x226
-      LayoutBlockFlow {P} at (0,0) size 784x18
-        LayoutText {#text} at (0,0) size 520x18
-          text run at (0,0) width 520: "The following two blocks should be identical, including overflow. (Force bidi: \x{D7}\x{90})"
-      LayoutBlockFlow {DIV} at (0,34) size 784x192
+layer at (0,0) size 800x259
+  LayoutBlockFlow {HTML} at (0,0) size 800x259
+    LayoutBlockFlow {BODY} at (8,16) size 784x227
+      LayoutBlockFlow {P} at (0,0) size 784x19
+        LayoutText {#text} at (0,1) size 521x18
+          text run at (0,1) width 506: "The following two blocks should be identical, including overflow. (Force bidi: "
+          text run at (505,1) width 11 RTL: "\x{5D0}"
+          text run at (515,1) width 6: ")"
+      LayoutBlockFlow {DIV} at (0,35) size 784x192
         LayoutBlockFlow {P} at (16,0) size 294x88 [bgcolor=#FFFFCC] [border: (3px solid #000000)]
           LayoutInline {SPAN} at (0,0) size 118x38 [color=#000080] [border: (3px solid #000080) none (3px solid #000080)]
             LayoutText {#text} at (30,26) size 99x18
diff --git a/third_party/WebKit/LayoutTests/platform/mac/fast/borders/bidi-009a-expected.png b/third_party/WebKit/LayoutTests/platform/mac/fast/borders/bidi-009a-expected.png
index b686d33..59c9c4d 100644
--- a/third_party/WebKit/LayoutTests/platform/mac/fast/borders/bidi-009a-expected.png
+++ b/third_party/WebKit/LayoutTests/platform/mac/fast/borders/bidi-009a-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac/fast/borders/bidi-009a-expected.txt b/third_party/WebKit/LayoutTests/platform/mac/fast/borders/bidi-009a-expected.txt
index 4c9eb14..8b03cceb11a 100644
--- a/third_party/WebKit/LayoutTests/platform/mac/fast/borders/bidi-009a-expected.txt
+++ b/third_party/WebKit/LayoutTests/platform/mac/fast/borders/bidi-009a-expected.txt
@@ -1,12 +1,14 @@
 layer at (0,0) size 800x600
   LayoutView at (0,0) size 800x600
-layer at (0,0) size 800x290
-  LayoutBlockFlow {HTML} at (0,0) size 800x290
-    LayoutBlockFlow {BODY} at (8,16) size 784x242
-      LayoutBlockFlow {P} at (0,0) size 784x18
-        LayoutText {#text} at (0,0) size 520x18
-          text run at (0,0) width 520: "The following two blocks should be identical, including overflow. (Force bidi: \x{D7}\x{90})"
-      LayoutBlockFlow {DIV} at (32,50) size 720x80 [color=#FFFF00] [bgcolor=#000000]
+layer at (0,0) size 800x291
+  LayoutBlockFlow {HTML} at (0,0) size 800x291
+    LayoutBlockFlow {BODY} at (8,16) size 784x243
+      LayoutBlockFlow {P} at (0,0) size 784x19
+        LayoutText {#text} at (0,1) size 521x18
+          text run at (0,1) width 506: "The following two blocks should be identical, including overflow. (Force bidi: "
+          text run at (505,1) width 11 RTL: "\x{5D0}"
+          text run at (515,1) width 6: ")"
+      LayoutBlockFlow {DIV} at (32,51) size 720x80 [color=#FFFF00] [bgcolor=#000000]
         LayoutTable (anonymous) at (24,24) size 261x32
           LayoutTableSection (anonymous) at (0,0) size 261x32
             LayoutTableRow {P} at (0,0) size 261x32
@@ -50,7 +52,7 @@
                 LayoutInline {SPAN} at (0,0) size 26x37
                   LayoutText {#text} at (235,-3) size 26x37
                     text run at (235,-3) width 26: "m"
-      LayoutBlockFlow {DIV} at (32,162) size 720x80 [color=#FFFF00] [bgcolor=#000000]
+      LayoutBlockFlow {DIV} at (32,163) size 720x80 [color=#FFFF00] [bgcolor=#000000]
         LayoutTable (anonymous) at (24,24) size 261x32
           LayoutTableSection (anonymous) at (0,0) size 261x32
             LayoutTableRow {P} at (0,0) size 261x32
diff --git a/third_party/WebKit/LayoutTests/platform/win/css2.1/20110323/replaced-intrinsic-003-expected.png b/third_party/WebKit/LayoutTests/platform/win/css2.1/20110323/replaced-intrinsic-003-expected.png
index dbdf62c..d02d0d2 100644
--- a/third_party/WebKit/LayoutTests/platform/win/css2.1/20110323/replaced-intrinsic-003-expected.png
+++ b/third_party/WebKit/LayoutTests/platform/win/css2.1/20110323/replaced-intrinsic-003-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/win/css2.1/20110323/replaced-intrinsic-003-expected.txt b/third_party/WebKit/LayoutTests/platform/win/css2.1/20110323/replaced-intrinsic-003-expected.txt
index 7adaba2..703d8d54 100644
--- a/third_party/WebKit/LayoutTests/platform/win/css2.1/20110323/replaced-intrinsic-003-expected.txt
+++ b/third_party/WebKit/LayoutTests/platform/win/css2.1/20110323/replaced-intrinsic-003-expected.txt
@@ -1,13 +1,13 @@
 layer at (0,0) size 800x600
   LayoutView at (0,0) size 800x600
-layer at (0,0) size 800x266
-  LayoutBlockFlow {HTML} at (0,0) size 800x266 [color=#000080]
-    LayoutBlockFlow {BODY} at (8,16) size 784x234
+layer at (0,0) size 800x269
+  LayoutBlockFlow {HTML} at (0,0) size 800x269 [color=#000080]
+    LayoutBlockFlow {BODY} at (8,16) size 784x237
       LayoutBlockFlow {DIV} at (0,0) size 100x200
         LayoutBlockFlow {P} at (0,0) size 100x200
-      LayoutBlockFlow {P} at (0,216) size 784x18
-        LayoutText {#text} at (0,0) size 435x17
-          text run at (0,0) width 435: "There should be a complete unbroken yin-yang symbol (\x{E2}\x{2DC}\x{AF}) above."
+      LayoutBlockFlow {P} at (0,216) size 784x21
+        LayoutText {#text} at (0,3) size 428x17
+          text run at (0,3) width 428: "There should be a complete unbroken yin-yang symbol (\x{262F}) above."
 layer at (8,16) size 200x200
   LayoutEmbeddedObject {OBJECT} at (0,0) size 200x200
     layer at (0,0) size 100x200
diff --git a/third_party/WebKit/LayoutTests/platform/win/fast/borders/bidi-002-expected.png b/third_party/WebKit/LayoutTests/platform/win/fast/borders/bidi-002-expected.png
index ad159ec5..e1c181d 100644
--- a/third_party/WebKit/LayoutTests/platform/win/fast/borders/bidi-002-expected.png
+++ b/third_party/WebKit/LayoutTests/platform/win/fast/borders/bidi-002-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/win/fast/borders/bidi-002-expected.txt b/third_party/WebKit/LayoutTests/platform/win/fast/borders/bidi-002-expected.txt
index 8d09083d..a23558b 100644
--- a/third_party/WebKit/LayoutTests/platform/win/fast/borders/bidi-002-expected.txt
+++ b/third_party/WebKit/LayoutTests/platform/win/fast/borders/bidi-002-expected.txt
@@ -4,8 +4,10 @@
   LayoutBlockFlow {HTML} at (0,0) size 800x258
     LayoutBlockFlow {BODY} at (8,16) size 784x226
       LayoutBlockFlow {P} at (0,0) size 784x18
-        LayoutText {#text} at (0,0) size 521x17
-          text run at (0,0) width 521: "The following two blocks should be identical, including overflow. (Force bidi: \x{D7}\x{90})"
+        LayoutText {#text} at (0,0) size 519x17
+          text run at (0,0) width 506: "The following two blocks should be identical, including overflow. (Force bidi: "
+          text run at (505,0) width 9 RTL: "\x{5D0}"
+          text run at (513,0) width 6: ")"
       LayoutBlockFlow {DIV} at (0,34) size 784x192
         LayoutBlockFlow {P} at (16,0) size 294x88 [bgcolor=#FFFFCC] [border: (3px solid #000000)]
           LayoutInline {SPAN} at (0,0) size 118x37 [color=#000080] [border: (3px solid #000080) none (3px solid #000080)]
diff --git a/third_party/WebKit/LayoutTests/platform/win/fast/borders/bidi-009a-expected.png b/third_party/WebKit/LayoutTests/platform/win/fast/borders/bidi-009a-expected.png
index 48cad9cf..ea968777 100644
--- a/third_party/WebKit/LayoutTests/platform/win/fast/borders/bidi-009a-expected.png
+++ b/third_party/WebKit/LayoutTests/platform/win/fast/borders/bidi-009a-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/win/fast/borders/bidi-009a-expected.txt b/third_party/WebKit/LayoutTests/platform/win/fast/borders/bidi-009a-expected.txt
index 9022b4d..5a71694 100644
--- a/third_party/WebKit/LayoutTests/platform/win/fast/borders/bidi-009a-expected.txt
+++ b/third_party/WebKit/LayoutTests/platform/win/fast/borders/bidi-009a-expected.txt
@@ -4,8 +4,10 @@
   LayoutBlockFlow {HTML} at (0,0) size 800x290
     LayoutBlockFlow {BODY} at (8,16) size 784x242
       LayoutBlockFlow {P} at (0,0) size 784x18
-        LayoutText {#text} at (0,0) size 521x17
-          text run at (0,0) width 521: "The following two blocks should be identical, including overflow. (Force bidi: \x{D7}\x{90})"
+        LayoutText {#text} at (0,0) size 519x17
+          text run at (0,0) width 506: "The following two blocks should be identical, including overflow. (Force bidi: "
+          text run at (505,0) width 9 RTL: "\x{5D0}"
+          text run at (513,0) width 6: ")"
       LayoutBlockFlow {DIV} at (32,50) size 720x80 [color=#FFFF00] [bgcolor=#000000]
         LayoutTable (anonymous) at (24,24) size 261x32
           LayoutTableSection (anonymous) at (0,0) size 261x32
diff --git a/third_party/WebKit/Source/core/css/StylePropertySet.cpp b/third_party/WebKit/Source/core/css/StylePropertySet.cpp
index 79da67495..9531be6 100644
--- a/third_party/WebKit/Source/core/css/StylePropertySet.cpp
+++ b/third_party/WebKit/Source/core/css/StylePropertySet.cpp
@@ -48,12 +48,8 @@
 RawPtr<ImmutableStylePropertySet> ImmutableStylePropertySet::create(const CSSProperty* properties, unsigned count, CSSParserMode cssParserMode)
 {
     ASSERT(count <= MaxArraySize);
-#if ENABLE(OILPAN)
     void* slot = Heap::allocate<StylePropertySet>(sizeForImmutableStylePropertySetWithPropertyCount(count));
-#else
-    void* slot = WTF::Partitions::fastMalloc(sizeForImmutableStylePropertySetWithPropertyCount(count), "blink::ImmutableStylePropertySet");
-#endif // ENABLE(OILPAN)
-    return adoptRefWillBeNoop(new (slot) ImmutableStylePropertySet(properties, count, cssParserMode));
+    return new (slot) ImmutableStylePropertySet(properties, count, cssParserMode);
 }
 
 RawPtr<ImmutableStylePropertySet> StylePropertySet::immutableCopyIfNeeded() const
diff --git a/third_party/WebKit/Source/core/dom/ElementData.cpp b/third_party/WebKit/Source/core/dom/ElementData.cpp
index 5a277b9..3774cb6 100644
--- a/third_party/WebKit/Source/core/dom/ElementData.cpp
+++ b/third_party/WebKit/Source/core/dom/ElementData.cpp
@@ -163,12 +163,8 @@
 
 RawPtr<ShareableElementData> ShareableElementData::createWithAttributes(const Vector<Attribute>& attributes)
 {
-#if ENABLE(OILPAN)
     void* slot = Heap::allocate<ElementData>(sizeForShareableElementDataWithAttributeCount(attributes.size()));
-#else
-    void* slot = WTF::Partitions::fastMalloc(sizeForShareableElementDataWithAttributeCount(attributes.size()), WTF_HEAP_PROFILER_TYPE_NAME(ShareableElementData));
-#endif
-    return adoptRefWillBeNoop(new (slot) ShareableElementData(attributes));
+    return new (slot) ShareableElementData(attributes);
 }
 
 UniqueElementData::UniqueElementData()
@@ -203,12 +199,8 @@
 
 RawPtr<ShareableElementData> UniqueElementData::makeShareableCopy() const
 {
-#if ENABLE(OILPAN)
     void* slot = Heap::allocate<ElementData>(sizeForShareableElementDataWithAttributeCount(m_attributeVector.size()));
-#else
-    void* slot = WTF::Partitions::fastMalloc(sizeForShareableElementDataWithAttributeCount(m_attributeVector.size()), WTF_HEAP_PROFILER_TYPE_NAME(ShareableElementData));
-#endif
-    return adoptRefWillBeNoop(new (slot) ShareableElementData(*this));
+    return new (slot) ShareableElementData(*this);
 }
 
 DEFINE_TRACE_AFTER_DISPATCH(UniqueElementData)
diff --git a/third_party/WebKit/Source/core/layout/HitTestResult.cpp b/third_party/WebKit/Source/core/layout/HitTestResult.cpp
index 9420322..55fe0737 100644
--- a/third_party/WebKit/Source/core/layout/HitTestResult.cpp
+++ b/third_party/WebKit/Source/core/layout/HitTestResult.cpp
@@ -97,7 +97,7 @@
     , m_isOverWidget(other.isOverWidget())
 {
     // Only copy the NodeSet in case of list hit test.
-    m_listBasedTestResult = adoptPtrWillBeNoop(other.m_listBasedTestResult ? new NodeSet(*other.m_listBasedTestResult) : 0);
+    m_listBasedTestResult = other.m_listBasedTestResult ? new NodeSet(*other.m_listBasedTestResult) : nullptr;
 }
 
 HitTestResult::~HitTestResult()
@@ -143,7 +143,7 @@
     m_cacheable = other.m_cacheable;
 
     // Only copy the NodeSet in case of list hit test.
-    m_listBasedTestResult = adoptPtrWillBeNoop(other.m_listBasedTestResult ? new NodeSet(*other.m_listBasedTestResult) : 0);
+    m_listBasedTestResult = other.m_listBasedTestResult ? new NodeSet(*other.m_listBasedTestResult) : nullptr;
 }
 
 DEFINE_TRACE(HitTestResult)
@@ -152,9 +152,7 @@
     visitor->trace(m_innerPossiblyPseudoNode);
     visitor->trace(m_innerURLElement);
     visitor->trace(m_scrollbar);
-#if ENABLE(OILPAN)
     visitor->trace(m_listBasedTestResult);
-#endif
 }
 
 PositionWithAffinity HitTestResult::position() const
diff --git a/third_party/WebKit/Source/core/loader/BeaconLoader.cpp b/third_party/WebKit/Source/core/loader/BeaconLoader.cpp
index 077f05d..8e33dfe 100644
--- a/third_party/WebKit/Source/core/loader/BeaconLoader.cpp
+++ b/third_party/WebKit/Source/core/loader/BeaconLoader.cpp
@@ -97,9 +97,9 @@
         FetchInitiatorInfo initiatorInfo;
         initiatorInfo.name = FetchInitiatorTypeNames::beacon;
 
-        // Leak the loader, since it will kill itself as soon as it receives a response.
-        RawPtr<BeaconLoader> loader = new BeaconLoader(frame, request, initiatorInfo, AllowStoredCredentials);
-        loader->ref();
+        // The loader keeps itself alive until it receives a response and disposes itself.
+        BeaconLoader* loader = new BeaconLoader(frame, request, initiatorInfo, AllowStoredCredentials);
+        ASSERT_UNUSED(loader, loader);
         return true;
     }
 };
diff --git a/third_party/WebKit/Source/core/loader/PingLoader.cpp b/third_party/WebKit/Source/core/loader/PingLoader.cpp
index 1a6d4ac..e872627 100644
--- a/third_party/WebKit/Source/core/loader/PingLoader.cpp
+++ b/third_party/WebKit/Source/core/loader/PingLoader.cpp
@@ -125,9 +125,9 @@
     if (MixedContentChecker::shouldBlockFetch(frame, request, request.url()))
         return;
 
-    // Leak the ping loader, since it will kill itself as soon as it receives a response.
-    RawPtr<PingLoader> loader = new PingLoader(frame, request, initiatorInfo, credentialsAllowed);
-    loader->ref();
+    // The loader keeps itself alive until it receives a response and disposes itself.
+    PingLoader* loader = new PingLoader(frame, request, initiatorInfo, credentialsAllowed);
+    ASSERT_UNUSED(loader, loader);
 }
 
 PingLoader::PingLoader(LocalFrame* frame, ResourceRequest& request, const FetchInitiatorInfo& initiatorInfo, StoredCredentials credentialsAllowed)
@@ -135,6 +135,7 @@
     , m_timeout(this, &PingLoader::timeout)
     , m_url(request.url())
     , m_identifier(createUniqueIdentifier())
+    , m_keepAlive(this)
 {
     frame->loader().client()->didDispatchPingLoader(request.url());
 
@@ -164,7 +165,7 @@
         m_loader->cancel();
         m_loader = nullptr;
     }
-    deref();
+    m_keepAlive.clear();
 }
 
 void PingLoader::didReceiveResponse(WebURLLoader*, const WebURLResponse& response)
diff --git a/third_party/WebKit/Source/core/loader/PingLoader.h b/third_party/WebKit/Source/core/loader/PingLoader.h
index 3350441..056c3a5 100644
--- a/third_party/WebKit/Source/core/loader/PingLoader.h
+++ b/third_party/WebKit/Source/core/loader/PingLoader.h
@@ -57,7 +57,7 @@
 // The ping loader is used by audit pings, beacon transmissions and image loads
 // during page unloading.
 //
-class CORE_EXPORT PingLoader : public RefCountedGarbageCollected<PingLoader>, public LocalFrameLifecycleObserver, private WebURLLoaderClient {
+class CORE_EXPORT PingLoader : public GarbageCollectedFinalized<PingLoader>, public LocalFrameLifecycleObserver, private WebURLLoaderClient {
     USING_GARBAGE_COLLECTED_MIXIN(PingLoader);
     WTF_MAKE_NONCOPYABLE(PingLoader);
 public:
@@ -98,6 +98,7 @@
     Timer<PingLoader> m_timeout;
     String m_url;
     unsigned long m_identifier;
+    SelfKeepAlive<PingLoader> m_keepAlive;
 };
 
 } // namespace blink
diff --git a/third_party/WebKit/Source/platform/heap/HeapTest.cpp b/third_party/WebKit/Source/platform/heap/HeapTest.cpp
index ff399b503..2cbe177c 100644
--- a/third_party/WebKit/Source/platform/heap/HeapTest.cpp
+++ b/third_party/WebKit/Source/platform/heap/HeapTest.cpp
@@ -1360,11 +1360,11 @@
 
 class SuperClass;
 
-class PointsBack : public RefCountedWillBeGarbageCollectedFinalized<PointsBack> {
+class PointsBack : public GarbageCollectedFinalized<PointsBack> {
 public:
-    static PassRefPtrWillBeRawPtr<PointsBack> create()
+    static PointsBack* create()
     {
-        return adoptRefWillBeNoop(new PointsBack());
+        return new PointsBack;
     }
 
     ~PointsBack()
@@ -1391,16 +1391,16 @@
         ++s_aliveCount;
     }
 
-    RawPtrWillBeWeakMember<SuperClass> m_backPointer;
+    WeakMember<SuperClass> m_backPointer;
 };
 
 int PointsBack::s_aliveCount = 0;
 
-class SuperClass : public RefCountedWillBeGarbageCollectedFinalized<SuperClass> {
+class SuperClass : public GarbageCollectedFinalized<SuperClass> {
 public:
-    static PassRefPtrWillBeRawPtr<SuperClass> create(PassRefPtrWillBeRawPtr<PointsBack> pointsBack)
+    static SuperClass* create(PointsBack* pointsBack)
     {
-        return adoptRefWillBeNoop(new SuperClass(pointsBack));
+        return new SuperClass(pointsBack);
     }
 
     virtual ~SuperClass()
@@ -1411,9 +1411,8 @@
         --s_aliveCount;
     }
 
-    void doStuff(PassRefPtrWillBeRawPtr<SuperClass> targetPass, PointsBack* pointsBack, int superClassCount)
+    void doStuff(SuperClass* target, PointsBack* pointsBack, int superClassCount)
     {
-        RefPtrWillBeRawPtr<SuperClass> target = targetPass;
         conservativelyCollectGarbage();
         EXPECT_EQ(pointsBack, target->getPointsBack());
         EXPECT_EQ(superClassCount, SuperClass::s_aliveCount);
@@ -1428,7 +1427,7 @@
 
     static int s_aliveCount;
 protected:
-    explicit SuperClass(PassRefPtrWillBeRawPtr<PointsBack> pointsBack)
+    explicit SuperClass(PointsBack* pointsBack)
         : m_pointsBack(pointsBack)
     {
         m_pointsBack->setBackPointer(this);
@@ -1436,11 +1435,11 @@
     }
 
 private:
-    RefPtrWillBeMember<PointsBack> m_pointsBack;
+    Member<PointsBack> m_pointsBack;
 };
 
 int SuperClass::s_aliveCount = 0;
-class SubData : public NoBaseWillBeGarbageCollectedFinalized<SubData> {
+class SubData : public GarbageCollectedFinalized<SubData> {
 public:
     SubData() { ++s_aliveCount; }
     ~SubData() { --s_aliveCount; }
@@ -1454,9 +1453,9 @@
 
 class SubClass : public SuperClass {
 public:
-    static PassRefPtrWillBeRawPtr<SubClass> create(PassRefPtrWillBeRawPtr<PointsBack> pointsBack)
+    static SubClass* create(PointsBack* pointsBack)
     {
-        return adoptRefWillBeNoop(new SubClass(pointsBack));
+        return new SubClass(pointsBack);
     }
 
     ~SubClass() override
@@ -1472,24 +1471,24 @@
 
     static int s_aliveCount;
 private:
-    explicit SubClass(PassRefPtrWillBeRawPtr<PointsBack> pointsBack)
+    explicit SubClass(PointsBack* pointsBack)
         : SuperClass(pointsBack)
-        , m_data(adoptPtrWillBeNoop(new SubData()))
+        , m_data(new SubData)
     {
         ++s_aliveCount;
     }
 
 private:
-    OwnPtrWillBeMember<SubData> m_data;
+    Member<SubData> m_data;
 };
 
 int SubClass::s_aliveCount = 0;
 
-class TransitionRefCounted : public RefCountedWillBeRefCountedGarbageCollected<TransitionRefCounted> {
+class TransitionRefCounted : public RefCountedGarbageCollected<TransitionRefCounted> {
 public:
-    static PassRefPtrWillBeRawPtr<TransitionRefCounted> create()
+    static TransitionRefCounted* create()
     {
-        return adoptRefWillBeNoop(new TransitionRefCounted());
+        return new TransitionRefCounted;
     }
 
     ~TransitionRefCounted()
@@ -1690,7 +1689,7 @@
 TEST(HeapTest, Transition)
 {
     {
-        RefPtrWillBePersistent<TransitionRefCounted> refCounted = TransitionRefCounted::create();
+        Persistent<TransitionRefCounted> refCounted = TransitionRefCounted::create();
         EXPECT_EQ(1, TransitionRefCounted::s_aliveCount);
         preciselyCollectGarbage();
         EXPECT_EQ(1, TransitionRefCounted::s_aliveCount);
@@ -1698,10 +1697,10 @@
     preciselyCollectGarbage();
     EXPECT_EQ(0, TransitionRefCounted::s_aliveCount);
 
-    RefPtrWillBePersistent<PointsBack> pointsBack1 = PointsBack::create();
-    RefPtrWillBePersistent<PointsBack> pointsBack2 = PointsBack::create();
-    RefPtrWillBePersistent<SuperClass> superClass = SuperClass::create(pointsBack1);
-    RefPtrWillBePersistent<SubClass> subClass = SubClass::create(pointsBack2);
+    Persistent<PointsBack> pointsBack1 = PointsBack::create();
+    Persistent<PointsBack> pointsBack2 = PointsBack::create();
+    Persistent<SuperClass> superClass = SuperClass::create(pointsBack1);
+    Persistent<SubClass> subClass = SubClass::create(pointsBack2);
     EXPECT_EQ(2, PointsBack::s_aliveCount);
     EXPECT_EQ(2, SuperClass::s_aliveCount);
     EXPECT_EQ(1, SubClass::s_aliveCount);
@@ -2434,10 +2433,10 @@
 // These class definitions test compile-time asserts with transition
 // types. They are therefore unused in test code and just need to
 // compile. This is intentional; do not delete the A and B classes below.
-class A : public WillBeGarbageCollectedMixin {
+class A : public GarbageCollectedMixin {
 };
 
-class B : public NoBaseWillBeGarbageCollected<B>, public A {
+class B : public GarbageCollected<B>, public A {
     WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(B);
 public:
     DEFINE_INLINE_TRACE() { }
diff --git a/tools/checkbins/checkbins.py b/tools/checkbins/checkbins.py
index 9531f24..74ed0ae 100755
--- a/tools/checkbins/checkbins.py
+++ b/tools/checkbins/checkbins.py
@@ -31,8 +31,7 @@
 # Windows guru for advice.
 EXCLUDED_FILES = ['chrome_frame_mini_installer.exe',
                   'mini_installer.exe',
-                  'wow_helper.exe',
-                  'xinput1_3.dll' # Microsoft DirectX redistributable.
+                  'wow_helper.exe'
                   ]
 
 def IsPEFile(path):